Documentation

How Polix reads the chain

PolixAgent is a read-only investigation tool. It performs public reads, records each one as evidence, and reports what came back. It never asks for a wallet connection or a signature.

Networks

NetworkChain IDCurrencyExplorer
Robinhood Chain 4663ETHrobinhoodchain.blockscout.com
Robinhood Chain Testnet TESTNET46630ETHexplorer.testnet.chain.robinhood.com

Configuration was checked against Robinhood Chain developer docs — Connecting on 2026-09-17. Before every inspection the server asks the RPC endpoint for its chain ID and refuses to continue if the answer differs from the selected network. No other network is ever substituted.

What each mode reads

Contract Inspector. eth_getCode (deployed code or none, including EIP-7702 delegation designators), native balance, name, symbol, decimals, totalSupply, ERC-165 probes for ERC-721, ERC-1155, ERC-721 Metadata and ERC-2981, the EIP-1967 implementation, admin and beacon slots, EIP-1167 minimal-proxy bytecode, owner(), and verified source plus ABI from Sourcify when it has a record.

NFT Reader. For ERC-721: ownerOf and tokenURI. For ERC-1155: uri with the {id} placeholder replaced by the 64-character lowercase hex token ID, and balanceOf(holder, id) when you supply a holder. ERC-1155 has no single owner. Metadata is resolved from HTTPS, IPFS, Arweave and data URIs and is always labelled as on-chain, embedded, or externally hosted.

Wallet Overview. Native balance, account nonce, whether the address has code, and balanceOf for the token contracts you enter. A standard RPC cannot list everything an address holds. Discovered tokens and recent activity appear only when an indexer answers; when the explorer refuses the server, your browser asks it directly and those records are marked as browser-retrieved.

Ask Polix. The server runs the reads first and gives the language model only the resulting report. The model must label each statement as observed, interpretation, or unavailable and cite evidence IDs, which the server validates. Contract names and metadata are treated as untrusted data, never as instructions. With no model configured, the panel says so and nothing is simulated.

Evidence model

Every record keeps the chain ID and network, the address and token ID, the operation, the returned value or the error, the source type and URL, the block it was pinned to when the source supports that, the retrieval time, and any coverage caveat.

  • ● Confirmed read: the named source returned this value at the stated time.
  • ◐ Partial data: the source answered but the result is known to be incomplete, such as the first page of an indexer list.
  • ✕ Unavailable: the read failed, reverted, timed out, or is not covered. A failed probe is not proof that a feature is absent.

“Confirmed read” describes an observed response. It says nothing about whether a contract or asset is safe, legitimate, audited, or valuable. PolixAgent gives no such verdicts.

How untrusted content is handled

  • Metadata and image URLs come from contracts. They are fetched server-side through a guard that blocks private and reserved addresses, internal hostnames, credentials in URLs and unusual ports, re-checks every redirect, pins the connection to the vetted IP, and caps size and time.
  • Only JSON documents and common image types are accepted. Images render inside <img> with a locked-down response policy, so an SVG cannot run scripts.
  • All third-party text is stripped of control characters, length-limited, and rendered as text.
  • RPC access is limited to read methods. API keys stay on the server, requests are rate limited, and inputs are validated on both sides.

History, saved addresses, and export

Recent inspections and saved addresses are stored in this browser only and are labelled “Saved on this device”. A saved address is a bookmark: there is no background monitoring and there are no alerts. Any report can be exported as JSON with all of its source references.

Self-hosting

Copy .env.example to .env.local. Everything is optional. Set POLIX_RPC_URL_MAINNET and POLIX_RPC_URL_TESTNET to use a dedicated RPC provider, ANTHROPIC_API_KEY to enable Ask Polix, and POLIX_INDEXER_API_URL_MAINNET to point wallet discovery at a Blockscout-compatible API that accepts server traffic. See the README for the full list.