{"uid":"cap_OMlZecCGmKiF3GnLk7dC-","slug":"skills-onesource-io-804bc89d","name":"ERC721 Token List by Owner (skills.onesource.io)","description":"Fetches ERC-721 token data on-chain for a given chain.","url":"https://skills.onesource.io/api/chain/erc721-tokens","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","required":["contract","address"],"properties":{"max":{"type":"integer","maximum":1000,"minimum":1},"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"network":{"enum":["ethereum","sepolia","robinhood"],"type":"string","default":"ethereum"},"contract":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"owner":{"type":"string"},"balance":{"type":"string"},"token_ids":{"type":"array","items":{"type":"string"}},"is_enumerable":{"type":"boolean"},"contract_address":{"type":"string"}},"description":"Endpoint-specific response payload"},"meta":{"type":"object","required":["endpoint","request_id"],"properties":{"endpoint":{"type":"string"},"cost_usdc":{"type":"string"},"request_id":{"type":"string"},"payment_chain":{"type":"string"},"payment_token":{"type":"string"}}},"error":{"type":["object","null"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}},"responseSchema":null,"example":{"request":{"max":100,"owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","network":"ethereum","contract":"0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"},"response":{"data":{"owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","balance":"1","token_ids":["940"],"is_enumerable":true,"contract_address":"0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"},"meta":{"endpoint":"/api/chain/erc721-tokens","request_id":"c324b6024f2dae79"}}},"exampleRequest":{"max":100,"owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","network":"ethereum","contract":"0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"},"tags":["x402"],"displayCostAmount":"0.008","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.008/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.008","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.008","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_FKbr8uspWW_hzVRKwLIrD","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.008","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Lists all ERC721 NFT token IDs owned by a wallet address within a specific collection using tokenOfOwnerByIndex via eth_call","exampleAgentPrompt":"Can you list all the ERC721 token IDs that wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 owns in the contract 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D on Ethereum — up to 1000 tokens?","exampleUseCases":null,"resultDescription":"An array of token IDs (integers) that the specified wallet address owns within the given ERC721 smart contract, retrieved via on-chain tokenOfOwnerByIndex calls. Results are bounded by the optional max parameter (up to 1000).","failureModes":["Invalid owner address format (must match ^0x[a-fA-F0-9]{40}$) returns validation error","Invalid contract address format returns validation error","Contract does not implement ERC721Enumerable / tokenOfOwnerByIndex — call may revert or return empty","Unsupported network value returns enum validation error","Wallet owns zero tokens in the collection — returns empty array","max parameter out of range (must be 1–1000) returns validation error","RPC node unavailability or timeout causes 5xx error"],"whenToPreferThis":"Use this endpoint when you need to enumerate the specific token IDs an address owns in a known ERC721 collection on Ethereum, Sepolia, Avalanche, Base, or MegaETH. It is ideal for building NFT portfolio views, gating access by token ownership, or feeding downstream metadata lookups. Prefer this over generic eth_call simulation when you specifically want the enumerated list of owned token IDs without writing raw ABI calldata.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T00:39:27.931Z","isFirstParty":false}