{"ok":true,"node":"payroll/escrow — Trustless Work Multi-Release","network":"testnet","status":"proven end-to-end on testnet, 2-sep-2026: deploy (human-signed) → allowlist gate confirmed blocking then permitting → approve-milestone/execute + release-milestone/execute, both agent-signed, both SUCCESS","proof":"https://stellar.expert/explorer/testnet/tx/8c89ede21a7b2246c2d0bef3d7ee0a4e7218f7ec7a07b2b3d3cc150d05921f13","blocker":"TRUSTLESS_WORK_API_KEY not set — requires a human to request one at dapp.trustlesswork.com (wallet connect + sign, no self-serve API)","deploy":"always human-signed — fixing who each milestone pays is not something this fast-signer path automates","fastSigner":{"routes":["POST /approve-milestone/execute","POST /release-milestone/execute"],"gate":"ESCROW_ALLOWLIST env var, empty by default — enforced in code before touching the network, not just documented","whyItCanSign":"approve_milestone/release_funds take a milestone index and who signs, never a receiver — the payout address is fixed at deploy by a human and neither call can rewrite it (verified against the real Trustless Work contract source, not just its docs)"},"mainnet":"not enabled — this router is testnet-only by design (assertTrustlessWorkTestnetOnly()). A separate, unrelated test verified the raw deploy path's timing on mainnet with self-owned wallets (see README); that did not exercise this router or the fast-signer, and rollout of this flow to mainnet Payouts remains undecided.","trustlessWorkFee":"0.3% fixed, not configurable — separate from Nirium's own platformFee","model":"each milestone carries its own receiver address, released independently once approved","docs":"https://docs.trustlesswork.com/trustless-work/api-rest/deploy-1.md"}