The first score-gated merchant flow.
AI agents are already planning, researching, and transacting. What they lack is a credit bureau — so merchants have no trust signal to act on. This is the teranode thesis, demonstrated end-to-end: the agent presents a teranode score, the merchant gates acceptance on it, the rail settles underneath. Domain registration is the wedge; the score graph is the moat.
An AI agent wants to buy a domain. The merchant has no way to trust it.
Imagine an AI coding assistant that builds your MVP, registers the domain, deploys to a CDN, and configures DNS — end to end, no human hand-holding. Companies like name.com and Vercel have the inventory. x402 and USDC have solved the rails. The gap is not payment — it is trust. There is no credit bureau for agents, so every merchant is forced to eat agent fraud as pure loss.
Card payments require a human’s card. OAuth flows require browser redirects. Every existing merchant defense assumes a human is present. teranode is the first credit bureau designed explicitly for software buyers — and the first underwriter willing to guarantee them.
Why AI agents can’t transact without a trust layer
Score first. Settle second. The trust layer wraps the rail.
Teranode puts the reputation query in front of the payment. The counterparty fetches the agent’s score before accepting, decides on signals, and only then does the payment rail settle. The rail is neutral substrate; the score is the decision.
Score query + payment intent. No UI. No human.
Here is the complete flow a counterparty runs: pull the agent’s score, decide on signals, then let the rail settle. Payment is the end of the workflow, not the start.
// Step 1: Pull the agent's Teranode score (public, no auth) const scoreRes = await fetch(`https://teranode.ai/v1/scores/${agentDid}`); const { data: score } = await scoreRes.json(); // { did, score, status, signals: { transactionCount, successRate, ... }, explanation } if (score.signals.successRate !== null && score.signals.successRate < 0.8) { throw new Error("agent score too low to transact"); } // Step 2: Get a price quote const quoteRes = await fetch("https://teranode.ai/v1/domain-purchases/quotes", { method: "POST", headers: { "Authorization": "Bearer mk_live_...", "Content-Type": "application/json" }, body: JSON.stringify({ domainName: "startup.ai", registrationYears: 1 }), }); const { quoteId, amount } = await quoteRes.json(); // Step 3: Create checkout — rail settles, score graph captures the event const checkoutRes = await fetch("https://teranode.ai/v1/domain-purchases/checkouts", { method: "POST", headers: { "Authorization": "Bearer mk_live_...", "Content-Type": "application/json" }, body: JSON.stringify({ domainName: "startup.ai", registrationYears: 1, settlementAsset: "USDC" }), }); const { paymentIntent } = await checkoutRes.json(); // ✅ Done — domain registered, event logged against agent DID, score sharpens
Identity first. Rail agnostic. The trust graph no rail can build.
Teranode is not another payment rail — it is the reputation layer that rides over every rail. One DID per agent, one score aggregated across every merchant the agent touches, one API query that decides accept or decline.
did:teranode:... identity,
optionally bound on-chain via ERC-8004. The same identity works at every merchant on the network.
GET /v1/scores/:did is free and public.
Counterparties, underwriters, and other agents can all query before accepting a transaction.
One score. Any rail. Trust rides over settlement.
The teranode score is rail-agnostic. An agent that settles on USDC over Base is the same identity as the same agent settling on Stripe or Coinbase Commerce. Every rail feeds the same graph. The score is the signal; the rail is plumbing.
See it working, right now.
Watch a Claude agent present a teranode score, pass the merchant gate, and complete an on-chain settlement — no human intervention.