Portfolio endpoints help integrators show holdings without running their own multicall infrastructure. Amounts are on-chain integers — format decimals in your UI.

Balances

GET /v2/portfolio/{address}?network=polygon&tokens=0x…,0x…
Query paramRequiredDescription
networkNo (default polygon)Network slug
tokensYesComma-separated ERC-20 addresses
tokenAlternative to tokensSame semantics
includeNativeNoWhen true, includes chain native token (POL, ETH, etc.)

Example

curl -sS 'https://api.dfb.network/v2/portfolio/0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb?network=polygon&tokens=0x4eD141110F6EeeAbA9A1df36d8c26f684d2475Dc,0xc2132D05D31c914a87C6611C10748AEb04B58e8F&includeNative=true'
{
  "wallet": "0x742d35cc6634c0532925a3b844bc9e7595f0beb",
  "network": { "id": "polygon", "chainId": 137 },
  "balances": [
    { "token": "0x4ed141110f6eeeaba9a1df36d8c26f684d2475dc", "balance": "1234567890123456789" },
    { "token": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f", "balance": "1000000" },
    { "token": "0x0000000000000000000000000000000000000000", "balance": "500000000000000000", "native": true }
  ]
}
Balances are strings in atomic units (wei). Your app applies token decimals for display.

Positions (rolling out)

GET /v2/portfolio/{address}/positions
Returns aggregated LP and vault positions across DFB-supported pools and vaults — useful for portfolio screens without N+1 pool calls.

Network support

Portfolio reads roll out network by network. If a network is not enabled yet, the API returns 503 provider_unavailable. Supported networks will appear in Roadmap updates and via successful responses from GET /v2/portfolio/{address} on each chain.

Limits

  • Up to 100 tokens per balance request
  • Wallet must be a valid 20-byte hex address
  • Unsupported network400

USD valuation

Fiat values are not included in v2 portfolio responses today. Integrators should pair balances with their own price feeds or wait for a future valuation layer.