{
  "opencollection": "1.0.0",
  "info": {
    "name": "Hermod DEX Wallet API",
    "version": "sha-80d3407"
  },
  "items": [
    {
      "info": {
        "name": "Wallet",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Aggregated Wallet Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/wallet/detail",
            "params": [
              {
                "name": "address",
                "value": "",
                "type": "query",
                "description": "Wallet address (0x hex for EVM, base58 for Solana)"
              },
              {
                "name": "chain",
                "value": "",
                "type": "query",
                "description": "Chain filter for `tokens`, `nft`, and `approvals`. When omitted, inferred from address format: 0x addresses query all EVM chains, base58 addresses query Solana."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "Comma-separated sub-resources to include. Valid: `balance`, `tokens`, `labels`, `nft`, `approvals`. The `active_chains` field is always returned. `approvals` is opt-in (not in default) as it triggers additional upstream calls."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns a wallet's cross-chain portfolio with selectable sub-resources (balance, tokens, labels, NFTs). Always includes per-chain USD breakdown across 15+ EVM chains.\n\n**Available fields** (via `fields`): `balance`, `tokens`, `labels`, `nft`.\n\n**Lookup:** by `address`. Partial failures return available fields with per-field error info. Returns 422 if `fields` is invalid."
        },
        {
          "info": {
            "name": "Wallet Transaction History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/wallet/history",
            "params": [
              {
                "name": "address",
                "value": "",
                "type": "query",
                "description": "Wallet address — must be a raw 0x-prefixed hex address, not an ENS name"
              },
              {
                "name": "chain",
                "value": "",
                "type": "query",
                "description": "Chain filter. Can be `ethereum`, `polygon`, `bsc`, `avalanche`, `arbitrum`, `optimism`, `fantom`, or `base`."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Results per page"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Pagination offset. This feed is cursor-paginated upstream and only the most recent ~1000 transactions are reachable; a larger offset returns an empty page with meta.empty_reason rather than an error. For deep history prefer the `before` cursor — its upstream cost is bounded by `limit` and independent of depth, whereas a large offset is emulated by walking the whole feed."
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Cursor for efficient deep pagination: return transactions strictly older than this Unix-seconds timestamp (exclusive). Pass the `timestamp` of the last item from the previous page; if items may share a second, pass that timestamp + 1 and de-duplicate on `tx_hash`. Unlike `offset` (which walks the feed), the number of upstream fetches is bounded by `limit` (DeBank returns up to 20 per page) and independent of how far back you page. Mutually exclusive with `offset`."
              },
              {
                "name": "sort_by",
                "value": "",
                "type": "query",
                "description": "Field to sort results by. The cursor-paginated upstream feed only supports `timestamp` correctly; unsupported values are rejected by the handler for correctness."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order. The cursor-paginated upstream feed only supports `desc` correctly; unsupported values are rejected by the handler for correctness."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "Comma-separated enrichments to attach to each item. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for each counterparty address."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns all on-chain transactions for a wallet, classified by type (send, receive, swap, approve) with native token value. For ERC-20 token transfers with token identity and USD value, use `wallet-transfers` instead.\n\n**Lookup:** by `address`. Filter by `chain` — supports `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `avalanche`, `fantom`, `base`."
        },
        {
          "info": {
            "name": "Wallet Labels (Batch)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/wallet/labels/batch",
            "params": [
              {
                "name": "addresses",
                "value": "",
                "type": "query",
                "description": "Comma-separated wallet addresses to look up, max 100"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns entity labels for multiple wallet addresses.\n\nPass up to 100 comma-separated addresses via the `addresses` query parameter.\n\n**Included fields:** entity name, type, and labels per address."
        },
        {
          "info": {
            "name": "Wallet Net Worth History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/wallet/net-worth",
            "params": [
              {
                "name": "address",
                "value": "",
                "type": "query",
                "description": "Wallet address — must be a raw 0x-prefixed hex address (EVM only). Solana and ENS names are not supported."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns a time-series of the wallet's total net worth in USD.\n\nReturns ~288 data points at 5-minute intervals covering the last 24 hours. Fixed window — no custom time range supported.\n\n**Lookup:** by `address` (EVM only — 0x-prefixed hex). Solana addresses are not supported."
        },
        {
          "info": {
            "name": "Wallet DeFi Protocol Positions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/wallet/protocols",
            "params": [
              {
                "name": "address",
                "value": "",
                "type": "query",
                "description": "Wallet address — must be a raw 0x-prefixed hex address, not an ENS name"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Results per page"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Pagination offset"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns all DeFi protocol positions for a wallet — lending, staking, LP, and farming with token breakdowns and USD values.\n\n**Lookup:** by `address` (EVM only — 0x-prefixed hex). Solana addresses are not supported."
        },
        {
          "info": {
            "name": "Wallet Transfer History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "/gateway/v1/wallet/transfers",
            "params": [
              {
                "name": "address",
                "value": "",
                "type": "query",
                "description": "Wallet address — must be a raw address (0x-prefixed hex for EVM, base58 for Solana). ENS names like `vitalik.eth` are not supported; resolve to a 0x address first."
              },
              {
                "name": "chain",
                "value": "",
                "type": "query",
                "description": "Chain. Can be `ethereum`, `base`, `solana`, `tron`, `bsc`, or `arbitrum`."
              },
              {
                "name": "flow",
                "value": "",
                "type": "query",
                "description": "Filter by transfer direction relative to the queried wallet. `in` for incoming, `out` for outgoing. Omit for both directions."
              },
              {
                "name": "token",
                "value": "",
                "type": "query",
                "description": "Filter by token contract address. Use `0x0000000000000000000000000000000000000000` for native token transfers. Omit for all tokens."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Results per page. Default 20, max 100. NOTE: Solana (`chain=solana`) is hard-capped at 40 per call by the upstream Solscan API — values above 40 return at most 40 items. Check `meta.has_more` and paginate with `offset` to fetch beyond the first page."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Pagination offset. For Solana, this maps to Solscan's 1-indexed `page` parameter (page = offset/page_size + 1)."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "Comma-separated enrichments to attach to each transfer. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for each counterparty address."
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Returns ERC-20/SPL token transfers with token identity, USD value, and flow direction (in/out). Unlike `wallet-history` which shows all tx types in native value, this focuses on token-level transfer activity.\n\nPass the **wallet address** in `address` — returns all ERC-20/SPL token transfers where this wallet is the sender or receiver.\n\n**Included fields:** token contract, token symbol, amount USD, counterparty, flow direction.\n\nFilter by specific token or flow direction (in/out).\n\n**Lookup:** `a"
        }
      ]
    }
  ],
  "bundled": true
}