PayPal sandbox · demo data · no real money

HandOff: agents propose, code pays, receipts prove

A creator's AI team plans and checks the work. Plain code pays people through PayPal Payouts, only inside the creator's signed mandate, and every step becomes a signed, hash-chained receipt that anyone can verify offline.

Open the AG Studio ledger → · download the ledger · verify it now

PayPal sandbox connectedwebhooks verified with PayPalAI: googleruns: Render Workflowsdatabase: postgres

Run a demo week

Maya signs a fresh mandate for this week. The ops agent plans tasks for Theo and Ana, simulated contractors deliver (one short comes back landscape, and one note tries to order a $5,000 payout), the verifier checks each file, and the policy engine decides.

Waiting for Maya's approval

Pay ana $150.00 for T-a64c-4 (thumb-pack-v1)

signs decision sha256:fee4ce089a50… · expires 15 minutes after approval

Pay ana $150.00 for T-0324-4 (thumb-pack-v1)

signs decision sha256:eac434cd37be… · expires 15 minutes after approval

Pay ana $150.00 for T-5f27-4 (thumb-pack-v1)

signs decision sha256:26107bc4e7c9… · expires 15 minutes after approval

This week's budget

Paid $80.00 · committed $80.00 · waiting for approval $150.00 · left $70.00 of $300.00

1 blocked this week · mandate m-maya-20261015-a64c

Tax running totals, 2026

PayeePaid1099-NEC line ($2,000)Payments
Theo R.$320.00
8
Ana P.$150.00
1
Sam K.$0.00
0

Running totals only, not a filing decision. Payments through PayPal are generally reported by PayPal on Form 1099-K; some states use lower thresholds.

Brand money in: PayPal Invoicing

Maya invoices a brand through PayPal Invoicing (sandbox). PayPal holds the money; HandOff only records what PayPal reports, as a signed receipt. The amount is the creator's deal, never an agent's.

InvoiceBrandAmountStatus
HO-20261111-4EC7Nova Audio$500.00paid $500.00 · receipt #92
HO-20261111-FD7DNova Audio$500.00paid $500.00 · receipt #90

Sandbox: the button records a payment against the invoice, the way an invoicer records money received elsewhere, so no funds move. A brand paying the invoice from a PayPal sandbox account is recorded the same way, within about a minute.

Policy decisions

TaskPayeeRate lineAmountStatusWhy
T-a64c-3theoshort-edit-v1—BLOCKEDverifier verdict #80 failed: aspect ratio · short-03.mp4: 16:9 (1920×1080); spec asks for 9:16; The aspect ratio is 16:9 instead of the required 9:16.
T-a64c-4anathumb-pack-v1$150.00NEEDS_APPROVALthumb-pack-v1 × 1 = $150.00 (from the signed rate card)
T-a64c-1theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-a64c-2theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-0324-4anathumb-pack-v1$150.00NEEDS_APPROVALthumb-pack-v1 × 1 = $150.00 (from the signed rate card)
T-0324-3theoshort-edit-v1—BLOCKEDverifier verdict #58 failed: aspect ratio · short-03.mp4: 16:9 (1920×1080); spec asks for 9:16; The video aspect ratio is 16:9 instead of the required 9:16.
T-0324-1theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-0324-2theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-5f27-1theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-5f27-4anathumb-pack-v1$150.00NEEDS_APPROVALthumb-pack-v1 × 1 = $150.00 (from the signed rate card)
T-5f27-3theoshort-edit-v1—BLOCKEDverifier verdict #36 failed: aspect ratio · short-03.mp4: 16:9 (1920×1080); spec asks for 9:16; The aspect ratio of short-03.mp4 is 16:9 instead of the required 9:16.
T-5f27-2theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-cb42-3theoshort-edit-v1—BLOCKEDverifier verdict #14 failed: aspect ratio · short-03.mp4: 16:9 (1920×1080); spec asks for 9:16; The video aspect ratio is 16:9 instead of the required 9:16.
T-cb42-1theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)
T-cb42-4anathumb-pack-v1$150.00NEEDS_APPROVALthumb-pack-v1 × 1 = $150.00 (from the signed rate card)
T-cb42-2theoshort-edit-v1$40.00APPROVEDshort-edit-v1 × 1 = $40.00 (from the signed rate card)

PayPal payouts

PayeeAmountBatchState
theo$40.00pr-58bf3fb97cf…SUCCEEDED
theo$40.00pr-58bf3fb97cf…SUCCEEDED
theo$40.00pr-922d73c7130…SUCCEEDED
theo$40.00pr-922d73c7130…SUCCEEDED
theo$40.00pr-ebae6a71388…SUCCEEDED
theo$40.00pr-ebae6a71388…SUCCEEDED
ana$150.00pr-9890102b7f7…SUCCEEDED
theo$40.00pr-dc954f2f588…SUCCEEDED
theo$40.00pr-dc954f2f588…SUCCEEDED

Proof

✓ 92 receipts: every signature and link verifies

Latest checkpoint covers 87 receipts, co-signed Ed25519 + ML-DSA-65: valid

Download the ledger and check it yourself, without trusting this server:

pnpm verify ledger.json

Receipts

Amber: an AI model acted. Blue: plain code acted. Black: a person (or a simulated contractor) signed.

#TypeSigned byTimeWhat happened
92INCOMEwebhook-handler2026-11-11 17:57:48 UTCPayPal reports invoice HO-20261111-4EC7 paid: $500.00 received · verified by PayPal
91INVOICEcreator2026-11-11 17:57:22 UTCInvoice HO-20261111-4EC7 sent to Nova Audio through PayPal Invoicing: $500.00 for "Sponsored integration: episode 12"
90INCOMEwebhook-handler2026-11-11 02:58:22 UTCPayPal reports invoice HO-20261111-FD7D paid: $500.00 received · status read from the PayPal API
89INVOICEcreator2026-11-11 02:58:15 UTCInvoice HO-20261111-FD7D sent to Nova Audio through PayPal Invoicing: $500.00 for "Sponsored integration: episode 12"
88PROPOSALassistant2026-10-16 00:06:09 UTCdemo-token:gate-mcp proposed 1 × caption-v1 for sam through the MCP door (pending review)
87CONFIRMATIONwebhook-handler2026-10-15 06:52:54 UTCSUCCEEDED · dk-51dd067c… · verified by PayPal
86CONFIRMATIONwebhook-handler2026-10-15 06:52:47 UTCSUCCEEDED · dk-edd172bc… · verified by PayPal
85PAYOUTpolicy-engine2026-10-15 06:52:03 UTCPayPal Payouts batch T2UGRJELXDMQ4 · $80.00 · 2 item(s)
84DECISIONpolicy-engine2026-10-15 06:51:58 UTCT-a64c-3: BLOCKED · blocked by verdict_pass
83DECISIONpolicy-engine2026-10-15 06:51:58 UTCT-a64c-4: NEEDS_APPROVAL · $150.00
82DECISIONpolicy-engine2026-10-15 06:51:58 UTCT-a64c-1: APPROVED · $40.00
81DECISIONpolicy-engine2026-10-15 06:51:58 UTCT-a64c-2: APPROVED · $40.00
80VERDICTverifier2026-10-15 06:51:54 UTCT-a64c-3: fail · aspect ratio · short-03.mp4: 16:9 (1920×1080); spec asks for 9:16
79VERDICTverifier2026-10-15 06:51:54 UTCT-a64c-4: pass · All measurements matched the specifications successfully.
78VERDICTverifier2026-10-15 06:51:53 UTCT-a64c-1: pass · All measurable requirements met successfully.
77VERDICTverifier2026-10-15 06:51:53 UTCT-a64c-2: pass · All measurable specifications for file count, aspect ratio, duration, and width were successfully met.
76DELIVERYcontractor2026-10-15 06:51:51 UTCT-a64c-4: thumb-pack-v1-4.zip 1920×1080
75DELIVERYcontractor2026-10-15 06:51:51 UTCT-a64c-3: short-03.mp4 1920×1080
74DELIVERYcontractor2026-10-15 06:51:51 UTCT-a64c-1: short-01.mp4 1080×1920
73DELIVERYcontractor2026-10-15 06:51:51 UTCT-a64c-2: short-02.mp4 1080×1920 · note stored as untrusted data
72TASKops-agent2026-10-15 06:51:47 UTCT-a64c-4 → ana · thumb-pack-v1 · planned by gemini-3.8-flash
71TASKops-agent2026-10-15 06:51:47 UTCT-a64c-3 → theo · short-edit-v1 · planned by gemini-3.8-flash
70TASKops-agent2026-10-15 06:51:47 UTCT-a64c-2 → theo · short-edit-v1 · planned by gemini-3.8-flash
69TASKops-agent2026-10-15 06:51:47 UTCT-a64c-1 → theo · short-edit-v1 · planned by gemini-3.8-flash
68PROPOSALassistant2026-10-15 06:51:02 UTCGoal proposed through the gateway: "Ship 3 short videos this week (one task per short, quantity 1 each) and one thumbnail pack."
67MANDATEcreator2026-10-15 06:51:02 UTCSigned mandate m-maya-20261015-a64c: rate card, $300.00 weekly cap, approval over $100.00
66CONFIRMATIONwebhook-handler2026-10-15 06:47:34 UTCSUCCEEDED · dk-7a0df8ae… · status read from the PayPal API
65CONFIRMATIONwebhook-handler2026-10-15 06:47:34 UTCSUCCEEDED · dk-dbed2033… · status read from the PayPal API
64PAYOUTpolicy-engine2026-10-15 06:47:02 UTCPayPal Payouts batch 7MZE7D3VBJGXC · $80.00 · 2 item(s)
63DECISIONpolicy-engine2026-10-15 06:46:58 UTCT-0324-4: NEEDS_APPROVAL · $150.00
62DECISIONpolicy-engine2026-10-15 06:46:58 UTCT-0324-3: BLOCKED · blocked by verdict_pass
61DECISIONpolicy-engine2026-10-15 06:46:58 UTCT-0324-1: APPROVED · $40.00
60DECISIONpolicy-engine2026-10-15 06:46:58 UTCT-0324-2: APPROVED · $40.00
59VERDICTverifier2026-10-15 06:46:55 UTCT-0324-4: pass · All measurable specifications met successfully.
58VERDICTverifier2026-10-15 06:46:55 UTCT-0324-3: fail · aspect ratio · short-03.mp4: 16:9 (1920×1080); spec asks for 9:16
57VERDICTverifier2026-10-15 06:46:55 UTCT-0324-1: pass · All measurable requirements met.
56VERDICTverifier2026-10-15 06:46:54 UTCT-0324-2: pass · All measurable requirements from the spec are fully met.
55DELIVERYcontractor2026-10-15 06:46:51 UTCT-0324-3: short-03.mp4 1920×1080
54DELIVERYcontractor2026-10-15 06:46:51 UTCT-0324-1: short-01.mp4 1080×1920
53DELIVERYcontractor2026-10-15 06:46:51 UTCT-0324-2: short-02.mp4 1080×1920 · note stored as untrusted data

Sandbox only: PayPal moves all money and funds never sit with this app. The server holds every signing key, so receipts give tamper evidence and attribution, not legal non-repudiation. Screening uses a fictional demo list. Source: github.com/createnexxusvision/Agent-Two-Hand-HandOff