> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polynode.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Resolve Wallet

> Instantly resolve any Polymarket wallet address, EOA, or username.

Look up the full identity for any Polymarket user: preferred trading wallet, EOA (externally owned account), username, and wallet type. Accepts any of the three identifiers as input and returns all fields.

Supports both Polymarket's original Safe proxy wallets and the newer deposit wallets. The response format is unchanged: `safe` is kept for backward compatibility, but it means the preferred Polymarket trading wallet.

<Note>
  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 older Safe wallet. If no deposit wallet is deployed, `safe` falls back to the existing Safe/proxy wallet.
</Note>

<ParamField path="query" type="string" required>
  One of:

  * **Wallet address** — Polymarket trading wallet: Safe proxy, deposit wallet, or proxy wallet (`0x...`, 42 chars)
  * **EOA address** — externally owned account (`0x...`, 42 chars)
  * **Username** — Polymarket display name (case-insensitive)
</ParamField>

## By wallet address (Safe, no deposit wallet)

Look up a Polymarket Safe proxy wallet to get the controlling EOA and username. If that EOA also has a deployed deposit wallet, the response returns the deposit wallet in `safe` instead.

```bash theme={null}
curl "https://api.polynode.dev/v1/resolve/0xfa85349327a63aa563029737f0492a79dca8f95d" \
  -H "x-api-key: YOUR_KEY"
```

```json theme={null}
{
  "safe": "0xfa85349327a63aa563029737f0492a79dca8f95d",
  "eoa": "0xc2783891b1d2287345e30f75e0f1ecd189a967d0",
  "username": "Letsgetit6969",
  "type": "safe"
}
```

## By wallet address (deposit wallet)

Look up a Polymarket deposit wallet to get the controlling EOA. Deposit wallets are a newer wallet type introduced by Polymarket for new accounts.

```bash theme={null}
curl "https://api.polynode.dev/v1/resolve/0x8b60bf0f650bf7a0d93f10d72375b37de18f8c40" \
  -H "x-api-key: YOUR_KEY"
```

```json theme={null}
{
  "safe": "0x8b60bf0f650bf7a0d93f10d72375b37de18f8c40",
  "eoa": "0xa60601a4d903af91855c52bfb3814f6ba342f201",
  "username": null,
  "type": "deposit_wallet"
}
```

## By EOA address

Look up an EOA to find its preferred Polymarket trading wallet and username. Deposit wallets are prioritized when deployed.

```bash theme={null}
curl "https://api.polynode.dev/v1/resolve/0xc2783891b1d2287345e30f75e0f1ecd189a967d0" \
  -H "x-api-key: YOUR_KEY"
```

```json theme={null}
{
  "safe": "0x8b60bf0f650bf7a0d93f10d72375b37de18f8c40",
  "eoa": "0xa60601a4d903af91855c52bfb3814f6ba342f201",
  "username": null,
  "type": "deposit_wallet"
}
```

## By wallet address (magic-link proxy)

Resolve a Polymarket magic-link wallet — the wallet type used by accounts created with email or social login. The endpoint returns the controlling EOA, recovered automatically.

```bash theme={null}
curl "https://api.polynode.dev/v1/resolve/0x16cbe223607a6513ae76d1e3751c78e4eabc2704" \
  -H "x-api-key: YOUR_KEY"
```

```json theme={null}
{
  "safe": "0x16cbe223607a6513ae76d1e3751c78e4eabc2704",
  "eoa": "0xbe5ba588ab7173b34efc0706b881794951014293",
  "username": "MRF",
  "type": "proxy"
}
```

## By username

Look up a Polymarket username to find the preferred trading wallet. Case-insensitive.

```bash theme={null}
curl "https://api.polynode.dev/v1/resolve/Fredi9999" \
  -H "x-api-key: YOUR_KEY"
```

```json theme={null}
{
  "safe": "0x1f2dd6d473f3e824cd2f8a89d9c69fb96f6ad0cf",
  "eoa": null,
  "username": "Fredi9999",
  "type": "safe"
}
```

## Response fields

<ResponseField name="safe" type="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.
</ResponseField>

<ResponseField name="eoa" type="string">
  Externally owned account that controls the trading wallet. This is the signer address. May be `null` for some magic-link wallets where the EOA cannot be determined.
</ResponseField>

<ResponseField name="username" type="string">
  Polymarket display name. `null` if the user has no profile set.
</ResponseField>

<ResponseField name="type" type="string">
  Wallet type for the address returned in `safe`. One of:

  * `"safe"` — Gnosis Safe proxy wallet (most existing Polymarket accounts)
  * `"deposit_wallet"` — deposit wallet (newer Polymarket accounts)
  * `"proxy"` — magic-link wallet (accounts created via email or social login)
</ResponseField>

## Error responses

**404 — Not found**

```json theme={null}
{"error": "Address not found."}
```

```json theme={null}
{"error": "Username not found."}
```

## Coverage

The resolver supports every Polymarket wallet type on Polygon, including Safe proxy wallets and the newer deposit wallets. Cached lookups are sub-millisecond. Uncached lookups resolve on-chain 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
* **Wallet type detection** — use the `type` field to determine how a user's account is set up


## OpenAPI

````yaml GET /v1/resolve/{query}
openapi: 3.1.0
info:
  title: PolyNode API
  description: >-
    Real-time Polymarket data API with decoded mempool settlements, OHLCV
    candles, and full Polygon JSON-RPC proxy.
  contact:
    name: PolyNode
    url: https://polynode.dev
  license:
    name: ''
  version: 2.0.0
servers:
  - url: https://api.polynode.dev
    description: Production
security:
  - api_key: []
paths:
  /v1/resolve/{query}:
    get:
      tags:
        - Wallets
      summary: Resolve wallet
      description: >-
        Instantly resolve any Polymarket wallet address, EOA, or username.
        Returns the preferred Polymarket trading wallet in the legacy safe
        field, plus EOA, username, and wallet type. If the resolved EOA has a
        deployed deposit wallet, safe returns the deposit wallet.
      operationId: resolve_wallet
      parameters:
        - name: query
          in: path
          description: >-
            Wallet address, EOA address, or Polymarket username
            (case-insensitive)
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Resolved wallet identity
          content:
            application/json:
              schema:
                type: object
                properties:
                  safe:
                    type: string
                    description: >-
                      Preferred Polymarket trading wallet. Field name is kept
                      for backward compatibility; deposit wallet is returned
                      when deployed, otherwise Safe/proxy.
                  eoa:
                    type: string
                    nullable: true
                    description: Externally owned account (signer)
                  username:
                    type: string
                    nullable: true
                    description: Polymarket display name, or null
                  type:
                    type: string
                    enum:
                      - safe
                      - deposit_wallet
                      - proxy
                    description: Wallet type for the address returned in safe
              example:
                safe: '0x8b60bf0f650bf7a0d93f10d72375b37de18f8c40'
                eoa: '0xa60601a4d903af91855c52bfb3814f6ba342f201'
                username: null
                type: deposit_wallet
        '401':
          description: Missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - api_key: []
components:
  schemas:
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: x-api-key

````