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.

Garden Financial · v1.3.2 — DesktopLIVE
Search…⌘K
AACME Holdings

Agent Workbench

Updated Apr 29 at 14:02
GARDEN · /automation/agents

Agent workbench · 8 of 24 active · 412k events / 24h

all under capability
Active8 / 24
Step-up1 (CFO requested)
Blocked1 (token expired)
24h events412,088
AgentPrincipalScopeCapability · TTLDoingState
tomatodid:agent:tomato/0x4f1
acme:cfobean.journal.*
arsenal:act_jr9a4h 12m
drafting J-2026-04-29-04417running
basildid:agent:basil/0x281
acme:cfocabbage.invoices.*
arsenal:act_ce7d21m
issuing INV-2941 → ACME Holdingsrunning
thymedid:agent:thyme/0x09a
acme:treasurerkale.sweep.execute
arsenal:act_kl121h 03m
evaluating sweep · JPM → Mercury · $80krunning
mintdid:agent:mint/0x6e3
acme:treasurerkale.fx.hedge.*
arsenal:act_fx0455m
monitoring USD/EUR drift · 0.42%idle
sage-botdid:agent:sage/0x2c1
acme:compliancesage.screen.run
arsenal:act_sg8812m
screening counterparty · Northwoodrunning
celerydid:agent:celery/0x501
acme:controllercelery.case.resolve · max=$50
arsenal:act_cl223h 41m
auto-resolving 14 drift casesrunning
chard-rdid:agent:chard/0x7a8
acme:cfochard.payments.*
arsenal:act_pay7
wire $14,820 → Northwood · step-up requestedstep-up
vinedid:agent:vine/0x4d2
acme:opsvine.events.subscribe
arsenal:act_vn55expired
(awaiting renewal)blocked
every action posts to Bean with full lineage · revoke any capability instantly cascadesArsenal v2 · MCP · OAS DID
FIG. 0.A — GARDEN DESKTOP / DASHBOARDThe actual UI. No marketing simulator.
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.

Vs. the AI-finance pack

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.

CapabilityBrex CopilotRamp IntelligenceStripe MCPCrew AI / LangGraphGarden
MCP server, every service1 serviceyou build it✓ 12 services
Typed REST + MCP in locksteppartialyou build it✓ shared core
Agent identity (DID)you build it✓ OAS DID
Capability tokens (scope + TTL)API keysyou build it✓ Arsenal
Lineage proof to human root✓ multi-hop
Posts every action to ledger✓ Bean
Hardware step-up enforcement✓ scope-bound
x402 payments nativepreviewyou build it✓ Chard
Revoke cascades to actions✓ instant
Built-in spend caps + policycard-onlycard-onlyyou build it✓ all rails
Audit-chained authoritylogslogslogs✓ blake3 + ed25519
Multi-agent orchestration✓ on signed events
Where agents stop

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.

GARDEN · /automation/approvals

Approvals queue · 3 pending · CFO present

3 awaiting step-up
Pending3 · oldest 47s
Approved2 · last 1m ago
Rejected1 · 5m ago
Auto-OK ratio94% · 24h
AgeAgentActionReason approval neededStep-upState
nowchard-r
Wire payment$14,820.00 · Northwood Capital · EURchard.payments.* · max=$10k
amount > policy capYubiKey · CFOpending
12s agobasil
Issue invoice$48,200.00 · Helsinki & Co · EURcabbage.invoices.issue · max=$50k
new counterparty · KYB not greenPasskey · controllerpending
42s agotomato
Close periodbean.period.close
all closes require hardwareYubiKey · CFOpending
1m agothyme
Sweep to Mercury$80,000.00kale.sweep.execute · max=$80k
counterparty exposure > $2MPasskey · treasurerapproved
3m agosage-bot
Reverse OFAC false-positivesage.case.reopen
reversal of a screening decisionQuorum · 2 of 3approved
5m agochard-r
Refund payment pi_8f1a$2,400.00chard.refunds.create
refund > 24h since capturePasskey · CFOrejected
47m agocelery
Resolve drift case$1,820.00celery.case.resolve
amount > auto-resolve thresholdPasskey · controllerexpired
every approval is signed and posted to Bean · expired requests fail closedpolicy v2 · auto-OK threshold $50 · 94% of cases never reach humans

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.

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.