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.
Agent Workbench
Agent workbench · 8 of 24 active · 412k events / 24h
| Agent | Principal | Scope | Capability · TTL | Doing | State |
|---|---|---|---|---|---|
tomatodid:agent:tomato/0x4f1… | acme:cfo | bean.journal.* | arsenal:act_jr9a4h 12m | drafting J-2026-04-29-04417 | running |
basildid:agent:basil/0x281… | acme:cfo | cabbage.invoices.* | arsenal:act_ce7d21m | issuing INV-2941 → ACME Holdings | running |
thymedid:agent:thyme/0x09a… | acme:treasurer | kale.sweep.execute | arsenal:act_kl121h 03m | evaluating sweep · JPM → Mercury · $80k | running |
mintdid:agent:mint/0x6e3… | acme:treasurer | kale.fx.hedge.* | arsenal:act_fx0455m | monitoring USD/EUR drift · 0.42% | idle |
sage-botdid:agent:sage/0x2c1… | acme:compliance | sage.screen.run | arsenal:act_sg8812m | screening counterparty · Northwood | running |
celerydid:agent:celery/0x501… | acme:controller | celery.case.resolve · max=$50 | arsenal:act_cl223h 41m | auto-resolving 14 drift cases | running |
chard-rdid:agent:chard/0x7a8… | acme:cfo | chard.payments.* | arsenal:act_pay7— | wire $14,820 → Northwood · step-up requested | step-up |
vinedid:agent:vine/0x4d2… | acme:ops | vine.events.subscribe | arsenal:act_vn55expired | (awaiting renewal) | blocked |
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.
Other companies are bolting agents onto their old products. Garden was built agent-down.
Brex Copilot, Ramp Intelligence, and Stripe MCP all ship the same shape: a chat box bolted onto a human-shaped product. Garden was designed in the opposite direction — actions first, with three matched surfaces (MCP, REST, palette) authorising under the same capability model.
| Capability | Brex Copilot | Ramp Intelligence | Stripe MCP | Crew AI / LangGraph | Garden |
|---|---|---|---|---|---|
| MCP server, every service | — | — | 1 service | you build it | ✓ 12 services |
| Typed REST + MCP in lockstep | — | — | partial | you build it | ✓ shared core |
| Agent identity (DID) | — | — | — | you build it | ✓ OAS DID |
| Capability tokens (scope + TTL) | — | — | API keys | you build it | ✓ Arsenal |
| Lineage proof to human root | — | — | — | — | ✓ multi-hop |
| Posts every action to ledger | — | — | — | — | ✓ Bean |
| Hardware step-up enforcement | — | — | — | — | ✓ scope-bound |
| x402 payments native | — | — | preview | you build it | ✓ Chard |
| Revoke cascades to actions | — | — | — | — | ✓ instant |
| Built-in spend caps + policy | card-only | card-only | — | you build it | ✓ all rails |
| Audit-chained authority | logs | logs | logs | — | ✓ blake3 + ed25519 |
| Multi-agent orchestration | — | — | — | ✓ | ✓ on signed events |
When the policy says wait, the agent waits.
Approvals are not a side-channel email — they’re a first-class queue in Garden. The agent drafts; the human signs with a hardware key; the seal is posted to Bean. Pending approvals expire and fail-closed, so an unattended request never becomes an unsupervised action.
Approvals queue · 3 pending · CFO present
| Age | Agent | Action | Reason approval needed | Step-up | State |
|---|---|---|---|---|---|
| now | chard-r | Wire payment$14,820.00 · Northwood Capital · EURchard.payments.* · max=$10k | amount > policy cap | YubiKey · CFO | pending |
| 12s ago | basil | Issue invoice$48,200.00 · Helsinki & Co · EURcabbage.invoices.issue · max=$50k | new counterparty · KYB not green | Passkey · controller | pending |
| 42s ago | tomato | Close periodbean.period.close | all closes require hardware | YubiKey · CFO | pending |
| 1m ago | thyme | Sweep to Mercury$80,000.00kale.sweep.execute · max=$80k | counterparty exposure > $2M | Passkey · treasurer | approved |
| 3m ago | sage-bot | Reverse OFAC false-positivesage.case.reopen | reversal of a screening decision | Quorum · 2 of 3 | approved |
| 5m ago | chard-r | Refund payment pi_8f1a$2,400.00chard.refunds.create | refund > 24h since capture | Passkey · CFO | rejected |
| 47m ago | celery | Resolve drift case$1,820.00celery.case.resolve | amount > auto-resolve threshold | Passkey · controller | expired |
94% of agent actions clear auto-policy without a human in the loop. The 6% that don’t get a name, a hardware step-up, and a sealed receipt.
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





















