Base URL
Authentication
Every request requires a paid PolyNode API key.Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /v3/polymarket/profiles/username-available | Check whether a username is available |
POST | /v3/polymarket/profiles/username/challenge | Create the two wallet-signing payloads |
POST | /v3/polymarket/profiles/username/complete | Submit signatures and create or change the username |
GET | /v3/polymarket/profiles/{address} | Read public profile state |
Flow
- Check the username.
- Create a challenge for
{address, username, action}. - User signs the Polymarket SIWE message with
personal_sign. - User signs the PolyNode consent typed data with
eth_signTypedData_v4. - Complete the action from your backend.
Error shape
| Code | Meaning |
|---|---|
invalid_address | Invalid EVM address |
invalid_username | Username failed local validation |
username_taken | Username is unavailable |
challenge_not_found | Challenge expired, already consumed, or missing |
challenge_expired | Challenge is older than 10 minutes |
challenge_mismatch | Challenge fields or API key do not match |
signature_invalid | Wallet signature did not recover to the requested EOA |
polymarket_compliance_blocked | Polymarket rejected the action for compliance or eligibility reasons |
upstream_unavailable | Polymarket, Gamma, or Polygon RPC failed |
rate_limited | Profile-specific rate limit exceeded |

