For agents

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)
Trust ladder

Identify. Capability. Then act.

  1. 01

    Present DID

    Agent shows did:oas:agent:billing-bot.v0.4.1 + lineage proofs back to a human root.

  2. 02

    Verify lineage

    Turnip verifies and issues a session bound to the principal's policy.

  3. 03

    Mint capability

    Arsenal issues a scoped, time-bound act token (e.g. cabbage:invoice:*, 24h).

  4. 04

    Take action

    Agent calls Garden over MCP or REST. Sensitive actions require quorum or step-up.

  5. 05

    Emit and seal

    Vine emits a signed event. Bean records the journal entry. Sage screens. Celery reconciles.

  6. 06

    Trace home

    Every action is bound to a principal, an org, and ultimately a human root.

MCP surface

One MCP server per service.

A representative selection of the commands every Garden service exposes.

bean.journal.postBooks
bean.period.closeBooks
cabbage.invoices.issueMoney
cabbage.subscriptions.upgradeMoney
chard.payments.chargeMoney
chard.refunds.createMoney
kale.policy.evaluateMoney
greenhouse.transfers.signCustody
greenhouse.recovery.beginCustody
sage.screening.runPeople
sage.disputes.respondPeople
turnip.session.elevatePeople
branches.statements.fetchMoney
vine.events.subscribeSignals
celery.recon.draftBooks
basil.documents.renderSurface
figs.workspace.switchSurface
garden.health.reportSignals
Agent payments

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

If your org runs on agents, it should run on Garden.