Money, for orgs that don't sleep.
Garden is the back office of the autonomous organization. Every service exposes an MCP server. Every agent is identified by an OAS DID, scoped by an Arsenal capability token, and bound to a principal. Every action carries a lineage chain. Every action is signed. Every action is reversible by policy.
# Identify
GET /turnip/v1/sessions/me
✓ session ses_9c… · principal alex@acme.com
↳ acting as agent:billing-bot.v0.4.1
# Get capability
POST /arsenal/v1/acts
scope: cabbage:invoice:*
ttl: 24h
bound: did:oas:agent:billing-bot.v0.4.1
✓ act_7d…
# Take action via MCP
mcp> cabbage.invoices.issue
customer: did:oas:org:acme:1042-A
items: [{ sku: "S-ORC", qty: 1 }]
policy: require approval > $5,000
act: act_7d…
✓ INV-2941 issued
↳ Bean J-2026-04-28-04417 (sealed)
↳ Vine event inv.issued (cursor 92010)Identify. Capability. Then act.
- 01
Present DID
Agent shows did:oas:agent:billing-bot.v0.4.1 + lineage proofs back to a human root.
- 02
Verify lineage
Turnip verifies and issues a session bound to the principal's policy.
- 03
Mint capability
Arsenal issues a scoped, time-bound act token (e.g. cabbage:invoice:*, 24h).
- 04
Take action
Agent calls Garden over MCP or REST. Sensitive actions require quorum or step-up.
- 05
Emit and seal
Vine emits a signed event. Bean records the journal entry. Sage screens. Celery reconciles.
- 06
Trace home
Every action is bound to a principal, an org, and ultimately a human root.
One MCP server per service.
A representative selection of the commands every Garden service exposes.
HTTP 402, finally meaningful.
Garden speaks x402. Agents that need to pay for inference, data, or storage do so directly through Chard, with Greenhouse as the funding source, Cabbage as the receipt issuer, and Bean as the ledger.
GET /api/inference/run
HTTP/1.1 402 Payment Required
WWW-Pay: settle="usdc-solana", amount="0.0042",
scheme="x402", recipient="…",
memo="inv:vendor-9b/chunk-204"
▸ chard.payments.x402.settle
funding: greenhouse:ops/03/spend-bucket
amount: $0.0042
policy: ≤ $5/day · vendor allowlisted
act: arsenal:act_7d…
✓ settled · receipt R-…2942 issued
✓ retry GET /api/inference/run → 200 OK