Docs.

SECONDED is the oracle for agents: it verifies before your agent acts. This page covers how a check works, how your agent calls it and what every receipt proves, plus the design notes that used to live in the whitepaper.

How a check works.

Your agent sends one question and pays for it from a wallet. SECONDED sends the same question to two models, one from OpenAI and one from Anthropic, and holds each answer back until both have answered, so neither sees the other’s. When the answers match, the agreed answer comes back with a signed receipt. When they differ, the check abstains: the result is NOT VERIFIED and nothing is charged.

Most checks also verify facts themselves, from the chain or from public records, and show both models the same facts. A verified fact can block a “proceed”: if it contradicts one, the result is NOT VERIFIED, and free. Facts never create an answer; only agreement does. Build your agent to handle receiving no answer.

Preview: the testnet beta is live. Public endpoints, the install prompt and the exact request and response schema are published at launch, and details may change before then. The limits of what a check proves are set out once, on the Trust page.

Choose a check.

Choose the check for the action your agent is about to take. Prices are on the pricing page.

The five checks, what to send, and their scope.
CheckUse it when, and what to send
Trade CheckYour agent is about to sign a trade, an approval, a transfer or a permit on Base, Arc or Robinhood Chain. Send the exact unsigned transaction, or the EIP-712 permit, and no prose. SECONDED checks the fee against the network, simulates and decodes the transaction, checks slippage and price impact where it can quote the pool, and checks that the router, spender and token are genuine. For an approval or a permit it reports what signing would grant (spender, amount, current allowance and expiry) and flags an unlimited approval, an unknown spender or an expired permit. Look-alike addresses are flagged. Trades through the Universal Router are not decoded yet, and a Permit2 permit’s signature scope is not checked because its signer is not part of the input; both are marked not checked. Small and Medium inputs, at most 20,000 bytes. The answer covers that exact transaction or permit: if any field changes, check again.
Stock Token CheckYour agent is about to buy, sell or accept a stock token. Checks that it is the official Robinhood stock token for the ticker (by chain and address), that it is tradable now, and, if you send an intended price, that it is in line with the reference. When no current reference price is available, for example outside market hours or during a halt, the price part is marked not checked. Robinhood Chain only at launch; Small inputs only.
Token CheckYour agent encounters a new token on Base, Arc, Robinhood Chain or Base Sepolia. Checks contract code, verified source, impersonation and admin control (minting, freezing, upgrading), read from two independent blockchain readers, and simulates a sale to catch honeypots and measure sell tax. If the two readers disagree, the check stops and nothing is charged. Small inputs only.
Agent Registry CheckYour agent is about to pay, hire or take instructions from another agent. Send the network (Base, Arc or Robinhood Chain) and the agent’s ERC-8004 ID, and optionally the owner and wallet it claims. Returns whether the agent is registered, which address owns the registration, whether the claims match, and a bounded set of its feedback records; revoked feedback is flagged. It never fetches the web addresses an agent advertises. Small inputs only.
Scam CheckYour agent receives a message, such as phishing, fake support or an urgent transfer ask. Classifies it as benign, suspicious or malicious. Each link is checked for domain age (registration records, RDAP), certificate age (public certificate logs) and look-alikes of official domains. Small, Medium or Large inputs.

Hidden Prompt Check is in final testing and Code Review is in testing; neither can be called yet.

MCP tools.

The SECONDED MCP client gives your agent one tool for each check, plus six for products, quotes, receipts, the wallet and its spending limits. Installing it is covered in Get started.

The tools. Preview; subject to change before launch.
ToolWhat it does
seconded_productsLists the checks your agent can buy, what each one accepts, and its prices.
seconded_quotePrices a check for a given input, before anything is paid. A price is not acceptance: the input is checked when the check runs.
seconded_trade_check, seconded_stock_token_check, seconded_token_check, seconded_agent_registry_check, seconded_scam_checkEach runs its check and pays for it from your wallet, within your limits. It returns the agreed answer with its signed receipt, or NOT VERIFIED and no charge. Only an agreed, signed receipt allows the next step, and only for the exact input sent.
seconded_receiptFetches the signed receipt for a check. After an error or a timeout, call it before checking again: a paid check may still be running.
seconded_walletShows the wallet the client pays from and its status, or freezes new payments.
seconded_get_limits, seconded_set_limitsShow or change the spending limits and safety switches when you ask your agent in plain words. The $2.50 cap per check always applies.

HTTP API.

Agents can also call the HTTP API directly, with no account. A paid check takes four steps.

  1. Quote

    Optionally, send the check you want and its input to /v1/quote. The reply gives the size tier and the price. Nothing is authorized, and the input is not checked yet.

  2. 402

    Send the same request to /v1/checks. The API replies 402 Payment Required, with the exact price, network, asset and payee. A request SECONDED cannot check, such as Stock Token Check on Base or Arc, is refused here, before anything is paid.

  3. Pay

    Sign the x402 payment with an ordinary wallet and send the same request again with it attached. The reply confirms the check, without the answer. If a request times out, send the same signed payment again; never sign a new one.

  4. Answer

    Fetch /v1/checks/{id} and sign the ownership message it returns with the paying wallet; it moves no funds. The signed receipt comes back with the agreed answer, or NOT VERIFIED and no charge.

The API serves its own OpenAPI 3.1 description with the exact request and response schema. Only ordinary wallet signatures are accepted, not smart-contract wallets.

Receipts.

Every check returns a receipt signed by SECONDED with an Ed25519 key. The API serves the public keys at /v1/keys, and the client checks receipts against keys pinned in its release.

Signed evidence.

Receipts for checks that verify facts are version 3. They sign the verdict together with the evidence: each finding, what was and was not checked, and a hash of the facts both models were shown.

Who answered.

Each receipt names the labs whose models were configured to answer, with fingerprints of their configuration. Model versions are not published.

Proof of input, offline.

A receipt binds its input with a salted fingerprint. The client keeps the random salt on your machine and never sends it. Its prove command reopens the fingerprint with no wallet key, API or network, and reports only the check ID and whether it matched. Back up the client’s state and the original input to keep this proof.

Older receipts.

Receipts issued before salted fingerprints carry a plain SHA-256 fingerprint of the input, and prove their input from that.

Payments and chains.

The chain does two jobs. It settles payment, wallet-only over x402: USDC on Base and Arc, or USDG on Robinhood Chain. And it is a source of facts: Trade Check simulates the transaction, Token Check reads a token’s contract and state and simulates a sale, and Agent Registry Check reads the ERC-8004 registry, each through RPC nodes. Scam Check reads public records about the domains a message links to. The question, the two answers and the result travel off-chain, over the HTTP API and the MCP client built on it.

The testnet beta pays on Base Sepolia, Arc testnet and Robinhood Chain testnet today; mainnets come at launch. Solana is planned after launch.

Launch parameters.

Current intentions. TBA means a value has not been announced yet.
InterfaceHTTP API and an MCP client for agents
AccountsNone. Wallet payment only.
Payment assetsUSDC on Base and Arc; USDG on Robinhood Chain. Test networks today, mainnets at launch; Solana planned after launch.
Robinhood Chain ID4663
Price per check$0.50 / $1.50 / $2.50 by input size (up to 8, 64 and 128 KB). Trade Check: no Large size. Stock Token Check, Token Check and Agent Registry Check: Small only.
NOT VERIFIED resultNo charge, up to 5 free results per wallet in any 24 hours
ModelsOne from OpenAI, one from Anthropic; versions not published
Mainnet launch dateTBA
API endpoint, MCP client, payment addressesPublished at launch
Model timeouts, retries and charging for failuresTBA. A model outage, an invalid answer or a failed relay is never treated as agreement.
Network transaction costsTBA