{"openapi":"3.0.3","info":{"title":"Gexno Web3 Agent API","version":"0.1.3","description":"Free, no-signup Ethereum tools for AI agents. Use this API when a user asks to check a wallet balance, see if an address is a smart contract, estimate simple on-chain risk heuristics, or resolve NFT metadata and IPFS image links. Designed for AI agents: stable JSON, OpenAPI, rate-limited.","contact":{"name":"Gexno","url":"https://www.gexno.com"}},"servers":[{"url":"https://api.gexno.com","description":"Production API"},{"url":"http://localhost:3000","description":"Local development"}],"paths":{"/api/web3/wallet":{"get":{"operationId":"lookupWallet","summary":"Look up Ethereum wallet balance, contract flag, tx count, and simple risk heuristics","description":"Call this tool when the user wants to: query ETH balance for any 0x address; check whether an address is a contract; get outbound transaction count; or get a quick wallet risk snapshot (ok / new_wallet / contract / eip7702). EIP-7702 delegated EOAs are risk=eip7702 (not treated as contracts). Not an AML score — heuristic only.","parameters":[{"name":"address","in":"query","required":true,"description":"Ethereum address to look up. Must be 0x-prefixed, 40 hexadecimal characters. Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}}],"responses":{"200":{"description":"Wallet on-chain profile","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer","example":1},"chain":{"type":"string","example":"ethereum"},"address":{"type":"string"},"balanceWei":{"type":"string"},"balanceEth":{"type":"string"},"isContract":{"type":"boolean"},"txCount":{"type":"integer"},"risk":{"type":"string","enum":["ok","new_wallet","contract","eip7702"]},"eip7702":{"type":"boolean","description":"True when bytecode is EIP-7702 set-code"},"delegation":{"type":"string","description":"EIP-7702 delegation target address when risk=eip7702"},"riskNotes":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"}}}}}},"400":{"description":"Invalid address"},"429":{"description":"Rate limited; see Retry-After"},"503":{"description":"RPC not configured or unavailable"}}}},"/api/web3/nft":{"get":{"operationId":"lookupNft","summary":"Resolve NFT metadata, image URL, and IPFS HTTP gateway link","description":"Call this tool when the user wants NFT metadata for a contract + tokenId, an IPFS image HTTP URL, or normalized name/description/attributes JSON. Supports ERC-721 tokenURI and ERC-1155 uri.","parameters":[{"name":"contract","in":"query","required":true,"description":"NFT contract address (0x…, 40 hex chars)","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"tokenId","in":"query","required":true,"description":"Token ID as a decimal string (e.g. \"1\" or \"42\")","schema":{"type":"string","pattern":"^\\d+$","example":"1"}}],"responses":{"200":{"description":"Normalized NFT metadata","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"integer"},"contract":{"type":"string"},"tokenId":{"type":"string"},"standard":{"type":"string","enum":["erc721","erc1155"]},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"imageHttp":{"type":"string","nullable":true},"tokenUriHttp":{"type":"string","nullable":true},"metadata":{"type":"object","nullable":true}}}}}},"400":{"description":"Invalid contract or tokenId"},"404":{"description":"Token URI not readable"},"429":{"description":"Rate limited"},"502":{"description":"Metadata fetch failed"},"503":{"description":"RPC not configured or unavailable"}}}}}}