# 2s.io NFT Lookup

> 2s.io NFT Lookup is a paid API for AI agents from 2s.io, paid per call via x402, $0.0036/call, status unknown (last checked 2026-09-15).

Fetches live ERC-721 NFT ownership, collection info, and token metadata across Base, Ethereum, Polygon, Arbitrum, and Optimism from a contract address and token ID

## Facts

- Endpoint: GET https://2s.io/api/crypto/nft
- Price: $0.0036/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-nft-lookup-2aa28ecf
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wY5vIIv2FS7eNwrYYRZfR

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-nft-lookup-2aa28ecf
```

Example prompt: Who owns token ID 5281 on the contract 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13d on Ethereum, and can you also pull the full token metadata including its image and attributes?

## When to prefer this

Use this endpoint when you need live, on-chain ERC-721 NFT data — current ownership, tokenURI, or full metadata — across multiple EVM chains without needing an API key. Prefer over block explorer scraping or manual IPFS resolution when you need normalized, ready-to-render NFT data with automatic IPFS gateway resolution.

## Known failure modes

- Invalid or non-existent contract address returns an error
- Token ID does not exist on the contract returns not-found error
- Unsupported chain returns validation error
- IPFS metadata fetch failure if token URI is unreachable
- Rate limiting or payment failure returns 402

## How this service works

Live ERC-721 NFT read (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Given a contract + tokenId: returns current owner, collection name/symbol, and tokenURI (IPFS auto-resolved to a gateway URL). Pass metadata=1 to also fetch and normalize the token's JSON metadata (name, description, image, attributes). For NFT provenance, ownership checks, and gallery rendering.

## Output

Returns the current owner wallet address, collection name and symbol, the tokenURI (with IPFS auto-resolved to an HTTP gateway URL), and optionally the full normalized JSON metadata including token name, description, image URL, and attributes array.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "address",
      "tokenId"
     ],
     "properties": {
      "chain": {
       "enum": [
        "base",
        "ethereum",
        "polygon",
        "arbitrum",
        "optimism"
       ],
       "type": "string",
       "description": "Default ethereum."
      },
      "address": {
       "type": "string",
       "description": "NFT contract address."
      },
      "tokenId": {
       "type": "string",
       "maxLength": 80,
       "description": "Token id (decimal)."
      },
      "metadata": {
       "enum": [
        "0",
        "1",
        "true",
        "false"
       ],
       "type": "string",
       "description": "1 to also fetch token JSON metadata."
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-nft-lookup-2aa28ecf/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
