Resolve wallet
Wallet P&L
Resolve Wallet
Instantly resolve any Polymarket wallet address, EOA, or username.
GET
Resolve wallet
Look up the full identity for any Polymarket user: preferred trading wallet, EOA (externally owned account), username, wallet type, deployment status, and related wallets. Accepts any identifier as input and returns all fields.
If the controlling EOA has a deployed deposit wallet,
safe returns that deposit wallet and type is "deposit_wallet" — even when you query the EOA, username, or an older wallet. If no deposit wallet is deployed, safe falls back to the existing Safe/proxy wallet. The safe field name is kept for backward compatibility; it means the preferred Polymarket trading wallet.string
required
One of:
- Wallet address — any Polymarket trading wallet: deposit wallet, Safe, or proxy wallet (
0x..., 42 chars) - EOA address — externally owned account (
0x..., 42 chars) - Username — Polymarket display name (case-insensitive)
Understanding Polymarket wallet types
Polymarket has used a few different wallet types over the years, depending on how an account signed up. You never need to know which one you’re dealing with — pass any address and the endpoint works it out — but here’s what thetype values mean:
“Deposit wallet” vs “beacon wallet”: if you’ve seen both terms, they’re the same thing. Newer deposit wallets are built so Polymarket can upgrade all of them at once — that upgradeable variant is what gets called a “beacon wallet”. There’s also an earlier standalone variant from before that change. Both behave identically and both resolve here; you never need to tell them apart.
One user can have more than one wallet — for example an old Safe from years ago plus a new deposit wallet.
Wallet type, deployment, and current wallet
These fields answer three separate questions:
The legacy
wallets object remains deployed-only: an address appears there only after its contract exists on Polygon. The additive wallet_details list includes the current address even if it is not deployed yet, plus the user’s other deployed wallets. This makes mixed accounts explicit without changing any existing field.
For example, this account’s current address is a deposit wallet, but its contract has not been deployed yet:
By wallet address (Safe)
Look up a Polymarket Safe to get the controlling EOA and username. If that EOA also has a deployed deposit wallet, the response returns the deposit wallet insafe instead.
By wallet address (deposit wallet)
Look up a deposit wallet to get the controlling EOA. Works for both deposit wallet variants.By EOA address
Look up an EOA to find its Polymarket trading wallet and username. Deposit wallets are prioritized when deployed:By wallet address (proxy wallet)
Resolve a Polymarket proxy wallet — the wallet type used by accounts created with email or social login. The endpoint returns the controlling EOA, recovered automatically.By username
Look up a Polymarket username to find the trading wallet and EOA. Case-insensitive.Response fields
string
required
Preferred Polymarket trading wallet address. The field name is kept for backward compatibility. If the controlling EOA has a deployed deposit wallet, this is the deposit wallet. Otherwise it is the existing Safe/proxy wallet.
string
Externally owned account that controls the trading wallet. This is the signer address. May be
null in rare cases where it cannot be determined.string
Polymarket display name.
null if the user has no profile set.string
Wallet type for the address returned in
safe. One of "deposit_wallet", "safe", or "proxy" — see wallet types above. null only when the resolver cannot verify the wallet’s implementation.object
Every Polymarket wallet this user has deployed, by type. Each field is an address or
null:wallets.deposit_wallet— their deposit wallet (either variant)wallets.safe— their Gnosis Safewallets.proxy_wallet— their proxy wallet
array
Status for the current wallet and every other deployed wallet associated with the EOA. Each item contains:
address— wallet addresswallet_type—"deposit_wallet","safe", or"proxy"; rarelynullwhen the implementation cannot be verifieddeployed—truewhen contract code currently exists on Polygoncurrent—truefor the selected trading-wallet address returned insafe
Error responses
404 — Not foundCoverage
The resolver supports every Polymarket wallet type on Polygon: deposit wallets (both variants), Gnosis Safes, and proxy wallets. Cached lookups are sub-millisecond. Uncached lookups resolve in real time, then prefer a deployed deposit wallet when one exists for the resolved EOA.Use cases
- Database enrichment — bulk-resolve trading wallets to EOAs for analytics pipelines
- Profile lookups — show usernames alongside wallet addresses in your UI
- Cross-referencing — match on-chain activity (EOA) to the preferred Polymarket trading wallet
- Whale tracking — identify the EOA behind a trading wallet to track activity across protocols
- Multi-wallet users — use
wallet_detailsto distinguish the current wallet from other deployed wallet types
Authorizations
Path Parameters
Wallet address, EOA address, or Polymarket username (case-insensitive)
Response
Resolved wallet identity
Preferred Polymarket trading wallet. Field name is kept for backward compatibility; deposit wallet is returned when deployed, otherwise Safe/proxy.
Externally owned account (signer)
Polymarket display name, or null
Wallet type for the address returned in safe
Available options:
safe, deposit_wallet, proxy Legacy deployed-only wallet map. An address is null until its contract exists on Polygon.
Current wallet plus other deployed wallets, with wallet type and status kept separate.

