Agentic commerce · treeship v0.31.8

Treeship for
agentic commerce.

Blueprints decide what an agent may do in a store. Card networks decide how it may pay. Treeship is the record of what happened: every tool call, every refusal, every human approval, the cart that went to checkout, and the hand-off between agents, signed by your own key and checkable on any machine without asking anyone.

$pip install treeship-sdk treeship-commerce

For Anthropic's commerce-agents. Other stacks use the CLI, the MCP bridge, or the A2A bridge. Install.

One record for the whole transaction, not just the swipe.

Payment networks sign the moment of payment and keep the proof on their rails. Everything before and around it, and everything on the merchant's side of the counter, is what Treeship signs. Each card says what shipped and in which release.

Every tool call
shipped0.27

Signed before and after every call. A refusal is a signed receipt naming the gate, not a missing log line.

intent · result · blocked:<gate>
Human approvals, spent once
shipped0.29

One operator, one action, one change, one use. The journal refuses a second spend before anything is signed.

grant · nonce · use 1/1
The cart that went to checkout
shipped0.30

At hand-off, the cart is signed as a digest with its count and total. The order chains onto it. Payment stays with the host.

cart_digest · subtotal · order
Agent-to-agent hand-offs
shipped0.27

Who handed what to whom, and whether the receiver verified the sender live, recorded as signed custody.

sender · receiver · custody: live
The sealed session
shipped

A closed session is one package: receipts, Merkle proofs, spent approvals, and its own page that verifies in the browser.

.treeship · merkle root · preview
Offline verification
shipped

The CLI, the browser, and any Ed25519 library recompute it on your machine against your own trust roots. Nothing phones home.

treeship verify · no network
Payment proofs and audit bundles
shipped

A payment step bound to the approval that authorized it, exported as the bundle an auditor or a dispute needs.

initiation · confirmation · chain
Not in any receipt

Arguments, result text, session id, payment URL, order reference, cart lines. Digests only. A receipt never proves the price was right.

sha256 only · no preimages

What it plugs into, and where each one stands.

A designed interface is never evidence that a capability shipped. Every row below says which is which.

IntegrationWhat Treeship gives itStatus
Claude Commerce Agents
anthropics/commerce-agents
Receipts for every tool call on the Messages API, the Agent SDK and Managed Agents; single-use merchant approvals; the checkout hand-off and the host's order; a Claude Code plugin that wires it (/add-treeship-receipts). shipped0.30
@treeship/mcp
any MCP tool server
A drop-in MCP client: every tool call receipted with intent and result, approval-gated calls bound to their grant. Covers storefront and merchant MCP servers on any agent platform. stable
@treeship/a2a
Agent2Agent servers and clients
Task intents and results attested, foreign work refused until the sender proves live key control, custody recorded on the hand-off. beta0.27
Mastercard Verifiable Intent
agent attestation scheme
treeship vi: the agent's P-256 key, a mandate check, and the Layer 3 pair signed for the network and the merchant, with the spec's own agent_attestation claim carrying a Treeship receipt that names the session, the chain head, the Merkle checkpoint and the approval use. Verified both ways against the reference SDK in CI; an independent implementation of the open v0.1 draft, not an endorsement. shipped0.31 · spec v0.1 draft
Zerker Reason
authorization certificates
A Reason action-authorization certificate signed and chained as a Treeship receipt under a registered predicate, so the policy decision behind a purchase or a price change verifies independently. beta
Robinhood Agentic Trading
trading MCP
Local receipts, approval binding for order placement, and audit trails for agents on Robinhood's trading MCP; a receipt template ships. Robinhood's own rollout is gradual and theirs. template
Lobster Cash
agent payments
Attestation for every Lobster Cash payment through treeship wrap and a published skill. skill
Visa Trusted Agent Protocol · Google AP2 · OpenAI + Stripe ACP
payment-side protocols
Complementary, not integrated. They sign agent identity and payment authority at the merchant's edge and on the network; Treeship signs the agent's steps, the merchant's approvals, and the cart, offline. A deployment can run both. adjacent

Full list, including coding agents and memory providers: docs.treeship.dev/integrations. Statuses are the ones in the feature inventory the docs are generated from.

Sign at the seam. Chain. Seal. Verify anywhere.

Treeship does not gate. Your rules, the blueprint's gates, the network's authorization keep deciding what runs. Treeship signs what they decided, at the moment they decided it, and chains each receipt to the one before.

01

Sign at the seam

The one method every tool call passes through, the click that sets an approval, the moment the cart meets checkout. A receipt before, a receipt after, digests only.

02

Chain and seal

Every receipt names its parent. Closing the session folds them into a signed Merkle root and a portable package with its own verification page.

03

Verify anywhere

treeship verify on any machine, the browser verifier on the receipt page, or your own code against the reference verifier. No account, no network, no trust in us.

python -m treeship_commerce.demo · retail mock · captured 2026-09-07 · v0.30
# the reference's shopping executor, no model, no API key
$python -m treeship_commerce.demo
session root art_778dbfb3779e99f39f5b19093ef16ed7
tool calls intent-id result-id
search_products ok art_4acc318c… art_53279d6a…
get_product_details ok art_87d3db13… art_22837e2c…
add_to_cart ok art_940e83c4… art_8eb56964…
add_to_cart blocked:provenance art_e03c171e… art_f751c545…
checkout ok art_a6239d44… art_387da5d6…
checkout hand-off cart signed art_8b3ee6d1…
order placed chained art_6d478d2e…
session receipts=11 events=6 root_verified=True
# verify offline, against your own trust roots
$treeship verify art_6d478d2e487827f816d8fe3d8de15828
✓ verified (12 artifacts . chain intact)
$treeship package verify .treeship/sessions/ssn_fe3138b522639866.treeship
19 passed, 0 failed, 1 warnings
✓ package verified

Refused by the gate. Approved once. Verified offline.

Both demos recorded on Anthropic's mock backends, no model, no API key, then the sealed session's own receipt page. Every id is real.

Terminal recording of the shopping demo: a search, a product read, an add to the cart, an add the provenance gate refused, the checkout hand-off and the chained order, then the refused add's signed receipt decoded to show status blocked and gate provenance, then the sealed package verifying offline with the refused add's inclusion proof passing
The shopping demo on the reference's retail mock: python -m treeship_commerce.demo. A product id the agent never saw in a catalog read is pushed at the cart; the reference's provenance gate refuses it, and the refusal is inside the signed receipt, not a log line. treeship package verify then proves the refused add is in the sealed tree.
Terminal recording of the merchant demo: an apply held while unapproved, applied once under a signed grant, refused on replay, then the sealed session verifying offline with the Approval Use Journal check passing at one use of one
The merchant demo on the reference's mock backend, no model, no API key: python -m treeship_commerce.demo_merchant, then treeship package verify and treeship approval uses. Every id shown is real.
What the merchant, the customer, or the auditor opens: the .treeship package's own page, verifying in the browser with no network and no server. The approval gate reads from the same evidence package verify checks.

Checkable on any machine.
Without asking us.

Every receipt is a DSSE envelope signed with Ed25519, content-addressed, chained to its parent, and folded into a signed Merkle checkpoint when the session seals. treeship verify walks the chain offline against your own pinned roots. A published session renders at a permanent receipt URL with the same verifier running in the browser. The hub stores bytes and serves proofs; it never issues a verdict.

What a receipt proves: this key signed, at that time, that this tool was about to run with arguments of that digest, and then what the gate decided. What it does not prove: that the answer was correct. A wrong answer with a perfect receipt is still wrong. Treeship authenticates statements; it does not adjudicate commerce.

The trust boundary
recording never breaks the agent path
# the CLI is missing, the ship is not initialized, the disk is full:
the tool still runs and returns its real outcome
the drop is counted in TreeshipReceipts.dropped
the next result says intent_recorded: false
the chain head never moves to an id that was not written
# attach() refuses an executor that would record nothing
TypeError: ShoppingToolExecutor does not carry TreeshipExecutorMixin;
build it from receipted(ShoppingToolExecutor) so execute() actually records.
# and an explicit off switch, never a silent one
$TREESHIP_DISABLE=1

Receipt your storefront.
Whatever it runs on.

On Anthropic's reference, pass the receipted executor_class and nothing else changes. On anything else, the CLI, the MCP bridge or the A2A bridge sign the same seams.

install
wire
demo
# Anthropic's reference, then Treeship (Python 3.11+)
$git clone https://github.com/anthropics/commerce-agents && cd commerce-agents
$python3.11 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
$pip install treeship-sdk treeship-commerce
$curl -fsSL treeship.dev/install | sh && treeship init --config .treeship/config.json
# one class, three runtimes
Receipted = receipted(ShoppingToolExecutor, recorder=…)
ShoppingAgent(…, executor_class=Receipted)
ShoppingToolset(…, executor_class=Receipted)
build_server(…, executor_class=Receipted)
# the retail mock, no model, no API key
$python -m treeship_commerce.demo
$treeship verify last
$treeship session report