Research preview · v0.9.4

Agent commerce, without the chaos.

One SDK. One call. Your agent discovers a provider, gets identified, pays on the right rail, and walks away with a signed receipt — instead of burning spend on sketchy APIs, card failures, and "let a human do it."

Get API key See it run npm i @truecom/sdk
6 primitives 10 settlement rails 7 dispute states 14 scopes Ed25519 signed receipts
Without TrueCom agent on the open web
With TrueCom agent on the trust layer

Live · four scenarios on loop · no network calls made

The problem · why this exists

A $847 charge. Who made it?

Agents already spend money. They hit APIs, burn credits, book travel, buy compute. But when a charge shows up and the customer asks "what is this?" — most stacks don't know. TrueCom does.

without raw agent calls

with TrueCom receipts

Primitive 01 · Discovery

Agents don't need a bigger registry. They need a better one.

Both panels answer the same query. One scrapes an open bazaar — spam, dead endpoints, typo-squats. The other hits TrueCom's ranked capability index with trust, telemetry, and receipts baked in.

agent >
bazaar open registry 14 results · unranked
truecom capability index 3 ranked matches
Primitive 02 · Capability abstraction

Documentation agents can actually consume.

Most APIs ship human-readable docs and leak implementation. TrueCom turns them into typed capability cards — inputs, budget, consent, rail support — and serves them to agents with the same schema every time.

raw human docs

flight-search-pro / docs
hi, to search flights send POST /search with a query string. auth is [unclear], the response is [varies], and prices are [call to confirm].

⚠ no schema
⚠ no rate card
⚠ no agent-readable scopes

truecom capability card

CAPABILITY · FLIGHTS.BOOK v3.1.0
Inputs { origin, dest, date, seat } ✓ typed
Budget $1,200 · USD · declared per-call
Consent user-approved · scope travel:book
Trust 0.96 · 1.2M calls/wk
Rails
ucpx402agentpaytapa2a
× agent vs raw docs
agent vs capability card
Install · 60 seconds

Drop it into the agent you already have.

No rewrite. No infra. Pick your language and framework — the SDK is a 3–6 line diff. Already on OpenAI, Anthropic, LangChain, CrewAI, or a raw HTTP loop? We've got an adapter.

01

Install

One dependency. Zero peer requirements.

$ npm install @truecom/sdk
02

Authenticate

Bind a DPoP key to your agent identity. Issued once, rotates on a schedule.

import { TrueCom } from "@truecom/sdk";

const tc = new TrueCom({
  apiKey: process.env.TRUECOM_KEY,
  did:    "did:webvh:acme.ai/agent-flights",
  scopes: ["travel:book", "inference:wrap"]
});
03

Call

Discover → select → pay → receipt. One primitive covers the whole loop.

// One call. Same shape for every rail and every vendor.
const result = await tc.transact({
  intent: "book flight SFO→NRT, aisle, ≤ $1,200",
  budget: { max: 120000, currency: "USD" },
  consent: "user-approved"
});

// → result.receipt  ed25519-signed, anchored, auditable
// → result.provider "kayak-agent" (trust 0.92)
// → result.rail     "agentpay"
Works with anything you're already using
openai tools[] injection
anthropic tool_use + mcp
langchain BaseTool subclass
crewai Tool decorator
llamaindex ToolSpec
mastra action registry
vercel ai zod schema
raw http curl / fetch
How it works · one call, four stages

Discover. Negotiate. Settle. Reconcile.

Each stage produces a signed, auditable event. Your agent writes code against one verb — tc.transact() — and TrueCom runs the entire commerce cycle underneath.

01

Discover

Intent in, ranked capabilities out. Trust-weighted, budget-aware.
02

Negotiate

Agent and provider converge on price and rail, inside your ceiling.
bid$0.08
ask$0.12
settle$0.10
↲ ceiling ok · rail: x402 ↳
03

Settle

Pick a rail, pay, receive an Ed25519-signed receipt anchored to an audit chain.
04

Reconcile

Reputation updates. Webhooks fan out. Trust scores shift by tiny deltas.
expedia.flights0.96+0.004
travelport.uAPI0.91+0.002
duffel.api0.88-0.001
evt_01JH7F…A11P stage discover
Ten rails · one call

Settlement is a configuration, not a rewrite.

Tap a rail. The call shape stays identical. What changes is currency, finality, fees, and which counterparty on the other side can actually settle against it. Pick by constraint — not by integration effort.

tc.pay() same signature · all rails
// Same line for every rail below.
// TrueCom picks the counterparty on its side.
const r = await tc.pay({
  rail:     "ucp",
  intent:   "buy 500 usb-c cables · NET-30",
  budget:   { max: 240000, currency: "USD" },
  consent:  "procurement:auto"
});
// → r.receipt   ed25519-signed · anchored
// → r.finality  T+0 · PO confirmation
// → r.provider  monoprice-b2b
Use cases · 5 shapes of agent commerce

Same SDK. Five different worlds of work.

Click any scenario to see the exact call, the rail that runs it, and the receipt that comes back. Agent commerce isn't one thing — it's a substrate that settles B2B procurement, travel, inference spend, in-app micropayments, and agent-to-agent delegation against the same receipt format.

The full loop · end to end

A contract's life, end to end.

Scrub the timeline. Watch state change, events fire, and webhook deliveries hit subscribers — or press PLAY to watch one contract flow from hire through settle in real time.

Ledger state
Event emitted
Webhook deliveries
Disputes · finite-state, not a ticket queue

Seven states. No ambiguity.

Every dispute sits in exactly one state. Every transition is signed. Click a state to see who can move it, what evidence is required, and the downstream webhook payload. The whole graph is a spec — not a playbook in a PDF.

Try it · right here in your browser

Verify a receipt in your browser.

Paste any commerce event. We show the Merkle proof path, verify the signature, and resolve to the anchored root — client-side, against a pinned test vector. The same verifier runs in the SDK.

Paste event JSONinput
Verification outputawaiting
statusawaiting input
illustrative · pinned root is a test vector
Trust scoring · how providers earn standing

How a provider earns trust.

TrueCom's trust score is a 7-component composite. Drag any weight to see how the final score changes and which tier a provider qualifies for. Weights normalize to 1.0 — you always see the whole picture.

Composite score 0.88 default weights
Sovereign
Certified
Verified
Listed
Illustrative Component scores use a Bayesian Wilson lower bound. New agents with few data points can't be gamed to the top. Trust is earned with real signal over time.
Protocols · one attestation surface

Six protocols. One surface.

AP2 · Visa TAP · Mastercard VI L3 · x402 · UCP · ACP. Pick one to see how TrueCom translates the same agent intent into each protocol's native wire format — same input, different payload.

Agent intent · constantinput
{ agent_did: "did:web:alice.example", vendor_did: "did:web:merchant.example", capability: "checkout:purchase", max_amount_cents: 5000, currency: "USD", scope: "single-purchase" }
AP2 — Google Agent Payment Protocoltranslated
The stack

Six primitives. Composable from day one.

TrueCom is built as a flat substrate, not a tower. Each primitive has its own endpoint and can be used independently — discover without settling, verify without having issued, reconcile receipts from elsewhere.

01

Discovery

Ranked capability index. Trust floors, latency SLOs, budget-aware.

tc.find(query)
02

Identity & consent

DID + DPoP per agent. Scopes declared, consent replayable.

tc.auth(did, scopes)
03

Negotiation

Budget ceiling in, agreed price + rail out. No back-channel.

tc.quote(intent)
04

Settlement

10 rails: UCP, x402, AgentPay, TAP, A2A, card, wire, ACH, RTP, escrow.

tc.pay(quote)
05

Receipts & audit

Ed25519-signed events. Anchored. Exportable. One lookup per dispute.

tc.verify(receipt)
06

Reconciliation

Reputation + webhooks. Fraud deltas. Disputes in 7 defined states.

tc.dispute(receipt)
Good Ventures Lab portfolio · native integration

You don't have to pick us alone.

TrueCom is the commerce substrate for the broader Good Ventures Lab stack. If you're running R1, CloudSwarm, RelayGate, or RelayOne, TrueCom is already wired in — receipts, rails, scopes, and identity flow through the same event bus you're already paying into. One substrate, four natural surfaces.

R1
r1.run agent runtime · OSS

R1 agents transact natively.

R1's skill pipeline auto-injects TrueCom alongside STOKE. Any skill that touches external money — procurement, inference, travel — emits a signed receipt into the R1 ledger graph. The supervisor treats a missing receipt as a governance violation, not a warning.

// R1 skill · receipt is auto-attached to the ledger
skill("procure.cables", async () => {
  const r = await tc.transact({ intent: "500 usb-c · NET-30" });
  return stoke.attest(r.receipt);  // enters L2 ledger
});
STOKE-signed supervisor-gated 30 governance rules
CS
cloudswarm.app managed R1 fleets · templates

Swarm-wide budgets, swarm-wide receipts.

CloudSwarm template agents get a TrueCom budget pool per tenant. Each agent in the fleet draws from it under its own DID — so you see which agent spent what, not just which tenant. The sovereign CanadianClaw instance runs the same rails against BC-resident settlement.

// CloudSwarm template · pool-level budget, per-agent receipts
swarm.template("research-100", {
  pool:   { budget: 50000, currency: "USD" },
  agents: 100,
  rail:   "x402",   // per-call inference spend
  on: { receipt: tc.ledger.attach }
});
per-agent DID pool budgets BC-sovereign option
RG
relaygate.ai programmable middleware

ContextWorkers enforce commerce policy.

RelayGate's ContextWorkers intercept every agent egress. TrueCom's scope + budget policy runs inline — block a call, require HITL for >$100, or rewrite to a cheaper rail. The policy is the ContextWorker; the ContextWorker can embed inline R1 if it needs to reason.

// RelayGate ContextWorker · budget + scope enforcement
worker("commerce.guard", (req) => {
  if (req.amount > 10000)
    return tc.requireHITL(req);        // FIDO2 approver
  if (!tc.scope(req).has("travel:book"))
    return deny("scope-violation");
  return tc.rewrite(req, { preferRail: "tap" });
});
inline enforcement HITL gates rail rewriting
R1ne
relay.one gateway · router · firewall

Board-ready evidence, on every outbound call.

RelayOne is where enterprise agent traffic terminates. TrueCom receipts become the financial exhibits in its audit reports — paired with the routing and policy record RelayOne already collects. Sovereignty tags travel with the receipt, so settlement stays within the agreed jurisdiction.

// RelayOne audit export · receipts + routing in one row
relayone.export({
  window:   "2025-Q1",
  include:  ["routing", "policy", "tc.receipts"],
  format:   "board-evidence",
  filter: r => r.tc.sovereignty === "EU-only"
});
fleet governance sovereignty tags audit-ready exports
How it fits together

TrueCom sits between the traffic layer (RelayOne / RelayGate) and the runtime layer (R1 / Heroa). Every agent egress that touches money flows through the same receipt surface, regardless of which product invoked it.

Consumers ActiumCodeR1CloudSwarm templates3rd-party apps
Agent commerce TrueComdiscovery · identity · trust · settlement · disputes · receipts
Traffic control RelayOneRelayGategateway / firewall · programmable middleware
Trust & research DeepTapVeritize
Agent runtime R1 + STOKE
Execution hosting Heroa
Start · research preview

Your agent is going to spend money this quarter.
Decide whether it leaves a trail.

The research preview is free for the first 10,000 transactions. No sales call. No "book a demo." Drop the SDK in, spend against the sandbox rails, ship a signed receipt back to your auditor.

Managed tier for >100k tx/mo · on-prem audit anchors · talk to eng