Logo
Learn
  • Explore Course
Build
  • Explore Buildathon
  • Project Archive
Hack
Hack Coming Soon
  • Explore IRL Hackhouse
  • How to Qualify
  • Past Events

CargoFlow

Evidence-gated USDG working capital for physical trade, released milestone by milestone when the cargo's own signed sensor evidence clears an on-chain policy.

Videos

Description

CargoFlow

Evidence-gated working capital for physical trade finance

A financier's Paxos USDG reaches the exporter milestone by milestone, only when the cargo's own signed sensor evidence clears an on-chain policy. When something goes wrong the facility pauses itself, a zero-knowledge proof resumes it, and the buyer's single payment settles everyone and hands over the electronic bill of lading in one transaction. Live on Robinhood Chain Testnet, ten contracts source-verified. Production build, ready for use; mainnet release is next.

CargoFlow: the cast in front of a reefer container on the quay, five milestone pips along the route line

Links

  • Website and live app: cargoflow.adoranto737.workers.dev (portals: exporter, financier, buyer, ebl, market, arbiter)
  • Demo film (5:30): Watch the film
  • Pitch deck: animated HTML · PDF, 21 slides · PPTX
  • Source code: github.com/LSUDOKO/CargoFlow (MIT) · release v1.0.0
  • API: REST + WebSocket · interactive API reference · all contracts and services
  • MCP server for Claude: https://cargoflow-mcp.adoranto737.workers.dev/mcp (25 tools, holds no keys) · add it to claude.ai
  • Packages: @cargoflow/sdk · @cargoflow/mcp · @cargoflow/gateway · cargoflow (PyPI)
  • Telegram alerts: @Cargo_FlowBot

The problem

Daniel the financier sees paperwork, not the container: BLIND and DECLINED stamps

The Asian Development Bank puts the global trade finance gap at $2.5 trillion in 2025, about 10% of global trade, with 41% of SME applications rejected. In India half of B2B sales are on credit with 52-day average payment terms (Atradius, 2025), and biopharma loses about $35 billion a year to cold-chain failures (IQVIA). A lender advancing money against a reefer container sees paperwork, not the container, so it lends blind or not at all. CargoFlow lets the cargo's own sensor evidence decide how much capital is available, on chain, milestone by milestone.

Meet the cast

Meera the exporter, Daniel the financier, Wei Lin the buyer, the carrier, the insurer and the arbiter, each with their role

Meera ships vaccines from Pune through Nhava Sheva to Singapore at 2 to 8 °C. Daniel would lend against the shipment if he could see it. Wei Lin buys it. Everything they do below is a real contract call on Robinhood Chain Testnet.

How it works

Reference numbers: a 100,000 USDG invoice, a 40,000 USDG facility in five milestones of 8,000, a 3% fee. The live runs use the same mechanics at testnet scale.

1. The facility

1. The facility

Meera registers the shipment and reveals a commit-reveal cold-chain policy (2.0 to 8.0 °C, evidence score ≥ 75, conflict ≤ 30%, humidity ≤ 85%, shock ≤ 3 g). Daniel deposits the whole facility in USDG into the ReceivableVault. Milestones can be tied to a place on the route.

2. Evidence

2. Evidence

The reefer's logger signs every reading with its device key. Eight readings per sensor close an epoch; the probes are fused with Dempster-Shafer, their disagreement measured and the epoch scored out of 100. Only a salted Poseidon root and the score go on chain.

3. Release

3. Release

Pass the policy in the right place and a tranche goes to Meera. The FinancingController re-checks the committed epoch against the on-chain policy itself. Wrong place? The milestone waits: neither a failure nor a pause.

4. Excursion

4. Excursion

Off Sri Lanka probe-1 reaches 11.7 °C while probe-2 holds at 4.6. Conflict hits 74.8%, the score falls to 48 and the facility pauses: releases revert. The AI monitor can only make an outcome stricter, through a key that can do nothing but pause.

5. Zero-knowledge recovery

5. Zero-knowledge recovery

Once probe-2 has eight fresh in-band readings, the service proves in zero knowledge that they sit inside the band without revealing any of them. Meera gets a “Proof ready” alert and signs once; the contract verifies the Groth16 proof, bound to this exact pause, and releases resume.

6. Settlement

6. Settlement

Wei Lin confirms delivery and pays once. That payment runs the waterfall: principal plus fee to Daniel, the rest to Meera, in one transaction.

7. Title moves with the money

7. Title moves with the money

The carrier's electronic bill of lading (ERC-721) is bound into escrow and leaves for Wei Lin inside her payment transaction: documents against payment, enforced by the contract.

8. Cover

8. Cover

An insurer's default cover pays min(cover, drawn principal). Parametric cover pays after N consecutive failed epochs, proven from the EvidenceRegistry's commit order.

9. Passkeys, live

9. Passkeys, live

Wei Lin signs in with a passkey (no extension) and pays from a ZeroDev Kernel smart account: three ERC-4337 user operations on the live testnet, using Robinhood Chain's RIP-7212 P-256 precompile.

10. Claude

10. Claude

Add the remote MCP server as a custom connector and ask. Claude reads the fleet, explains a pause and prepares unsigned transactions with a link to sign in the app. It never holds a key.

What makes it different:

  • Capital follows physical evidence. A failed milestone changes what can be drawn on chain, not in a dashboard.
  • No single oracle. Sources are fused with an explicit conflict factor and scored with documented penalties; the same input always yields the same score.
  • Privacy by construction. Raw telemetry never goes on chain, only Poseidon roots, scores and proof status; recovery is proved over readings that stay private.
  • An AI that cannot move money. The model may only make an outcome stricter, through a pause-only key; the policy gate decides alone whenever the model is absent or wrong.
  • Contracts hold final authority. Immutable core (no proxy); the pause stops new risk but never blocks an exit; eight invariants fuzz-tested.

Product tour

CargoFlow landing page: Capital that moves with your cargo

Paused, in plain words. Why the facility paused (score 48, conflict 74.8%) and what each party does next.

Paused, in plain words. Why the facility paused (score 48, conflict 74.8%) and what each party does next.

Recovered. “Groth16 proof verified on-chain”: eight hidden readings proven in band, none revealed.

Recovered. “Groth16 proof verified on-chain”: eight hidden readings proven in band, none revealed.

Settled with a passkey. CF-SG-VAX-0401, paid by Wei Lin's passkey smart account.

Settled with a passkey. CF-SG-VAX-0401, paid by Wei Lin's passkey smart account.

Also live: exporter wizard with cold-chain templates, financier portal with settlement preview, carrier bills of lading, a financing market with fee guidance, the arbiter console, settlement certificates (PDF), GS1 EPCIS 2.0 export and import, and an in-app notification centre.

Alerts on your phone: the Telegram bot

Phone recording: alerts on, RELEASED, RELEASED, PAUSED, then RECOVERY_READY with a link to the recovery page

Recorded on a real phone during a live testnet run: two RELEASED alerts and a PAUSED alert arrive with their transactions within seconds of the chain events, then RECOVERY_READY with a link that opens the shipment on the recovery card for Meera to sign. Also email, Slack and signed webhooks. Bot: @Cargo_FlowBot.

Use CargoFlow in Claude

Claude summarises fleet risk from live testnet data and explains the paused shipment

A public remote MCP server (25 tools) lets Claude read shipments, evidence, cover and the market, and prepare unsigned transactions with a link to sign them in the web app. Claude Code: claude mcp add --transport http cargoflow https://cargoflow-mcp.adoranto737.workers.dev/mcp

Architecture

Architecture: web app on Cloudflare Workers, Go evidence service on Render with Postgres, remote MCP server, contracts on Robinhood Chain Testnet, sponsor extensions on Arbitrum Sepolia

The chain is the financial source of truth. Each party signs its own money moves from the web app, straight to the contracts. The Go service scores evidence and acts on chain only through three role-limited keys (commit epochs, pause only, release and submit proofs). Postgres holds operational evidence and is reconciled from chain events; the facility view reads the chain directly, so a lagging indexer can never show money that did not move.

Stack: Solidity 0.8.28 + Foundry + OpenZeppelin 5.4 · Circom + Groth16 · Go 1.26 · Next.js 16 on Cloudflare Workers (wagmi, viem) · ZeroDev Kernel passkeys · Rust Stylus engine · TypeScript and Python SDKs.

Live on Robinhood Chain Testnet (46630)

Contracts v3, deployed 3 October 2026, every source verified on the explorer:

  • FinancingController: facility state machine, place-based milestones, pause, ZK resume, title binding. 0x06DaF9462eCF2434ED0314a005Bf762cCDEd7Fe1
  • ReceivableVault: escrow and the settlement waterfall. 0x167783DB96E27f36f78C8E5F6f1575b0c45a8151
  • EvidenceRegistry: committed epochs: Poseidon root, score, source devices. 0x3930f06dC9Deb7b7587AD5a04B05350CaACc7BA2
  • PolicyEngine: commit-reveal cold-chain policy. 0x74be1E30bEeDc004447F0427Dd6EBC62CCDabA25
  • ShipmentRegistry: shipments, parties, invoice hash, route commitment. 0x2B9E2B70b6fF48DaD9847944bbEcE16c9f4396F3
  • Groth16Verifier: on-chain verification of the recovery proof. 0xF00eE4c686cE4EaC0B161dEe757e19A1C600d0f6
  • CoverPool: default and parametric cover. 0x4e4f09Da01f466275b586b0cc32613a90b1B69e5
  • DeviceRegistry: evidence devices and their class. 0xD176E4e02f97F12462e68014F92B2A13A664552e
  • EBLRegistry: electronic bills of lading (ERC-721). 0x72278056f6537e4F3437b96898BB439ab7BF68A9
  • CargoFlowAccess: roles (AccessControlDefaultAdminRules). 0x6b334b4C73c27CB297470140c86311075408b050
  • USDG (Paxos): the only money CargoFlow moves. 0x7E955252E15c84f5768B83c41a71F9eba181802F

Arbitrum Sepolia extensions (Sourcify-verified):

  • Fhenix ConfidentialInvoiceTerms: encrypted invoice margin and penalty terms. 0x5c1C12448D27c2E8519c1E471078Bf42E685D207
  • GMX GMXHedgeVault: financier's own hedge on GMX v2. 0xE0E90F3E57e3a040AD99FE4384bE96Dd97002f74
  • Stylus EvidenceEngine: Rust evidence fusion, benchmarked against Solidity. 0x2f7cac603654ec106da242cd0b16044b31f7608d

Live runs, every transaction linked:

  • CF-SG-VAX-0202, the film's shipment through the live website: register, deposit, bill of lading, two releases, excursion and pause, resume with a Groth16 proof, three more releases, settlement.
  • CF-SG-VAX-0401, a passkey payment: smart account 0xBCf2…5E56 deployed, confirmed delivery, approved and settled as three ERC-4337 user operations, paying 0 gas.
  • CF-LIVE-1791029236301, the v3 reference run through the hosted API: open the settled dashboard.

Terminal capture: the three passkey user operations and their transactions for CF-SG-VAX-0401

Sponsor and partner integrations

Sponsor integrations and their status

  • Robinhood Chain: all core contracts, settlement and evidence commitments; the RIP-7212 P-256 precompile makes passkey signatures cheap
  • Paxos USDG: escrow, tranches, invoice payment, the waterfall and cover all move real testnet USDG
  • ZeroDev: passkey smart accounts (Kernel v3.1, WebAuthn validator) that confirmed delivery and paid an invoice live; a CargoFlow-only sponsorship policy is built and tested
  • OpenZeppelin: v5.4 AccessControlDefaultAdminRules, SafeERC20, ReentrancyGuard, Pausable, ERC721
  • Alchemy and QuickNode: RPC failover and a signed indexer webhook
  • Fhenix: encrypted invoice margin and penalty terms computed under FHE, complementing the ZK proof
  • GMX: a hedge vault for a financier's own collateral; escrowed USDG is never leveraged
  • Dune: queries for volume, pause and recovery rates and lender yield, plus a 15-minute uploader

Measured, not claimed

366 contract tests, 25 circuit, 296 frontend unit, 18 end-to-end; SDK 92, MCP 27, gateway 36, Python 25

366 contract tests (unit, fuzz, eight invariants, real-proof integration) · 25 circuit tests · 296 frontend unit and 18 Playwright end-to-end tests · SDK 92, MCP 27, gateway 36, Python 25, Fhenix 19, GMX 20 · circuit of 13,494 constraints proving in about 1 s · ZK resume about 0.25 M gas · Slither triaged.

Why CargoFlow is fundable

Market slide: TAM, SAM and SOM with stated assumptions

  • Market: a $2.5T trade finance gap. First corridor: India's pharmaceutical exports (USD 30.47B in FY 2024-25) at 2 to 8 °C. SAM about $15.2B a year sold on credit; SOM about $152M financed a year at a 1% share by year 3.
  • Traction: ten verified contracts, full lifecycles settled on chain (including a passkey payment and an automatic ZK recovery), four published packages and a public MCP server used from claude.ai.
  • Moat: the chain of mechanisms: signed device readings, evidence fusion with a published score, a context-bound Groth16 recovery proof, a controller-only vault, title that moves inside the payment, and parametric cover proven from commit order.
  • Business model (planned): 30 to 50 bps on financed volume inside the waterfall, a share of cover premiums, and SaaS and data for financiers, insurers and logger vendors.
  • Roadmap: M1 audit and public ZK ceremony · M2 real logger pilots · M3 Robinhood Chain mainnet with real USDG and the first outside financier · M4 MLETR legal opinion on the bill of lading · M5 calibrated scoring and a second corridor. Each milestone has an exit test.
  • Use of funds (plan): 35% audit and ZK ceremony, 25% pilots and logger hardware, 20% mainnet and first facilities, 10% legal, 10% team and infrastructure, released milestone by milestone.

Built for Arbitrum Open House Singapore

  • Deployed on an Arbitrum chain: all ten core contracts on Robinhood Chain Testnet; Stylus, Fhenix and GMX extensions on Arbitrum Sepolia.
  • Smart contract quality: 366 tests with fuzzing and invariants, immutable core, OpenZeppelin 5.4, Slither triaged, an authority matrix of what each role cannot do.
  • Real problem, real product: sourced problem, portals for every party, a market, and end-to-end runs on the public testnet.
  • Paxos USDG: the only money CargoFlow moves.
  • Robinhood Chain first: USDG native, and the P-256 precompile carries the passkey flow.

Demo film

Watch the CargoFlow film

▶ Watch the film (5:30): the cast, the real source pages, the mechanisms animated, the live website recorded end to end, the Telegram alerts on a phone, CargoFlow inside claude.ai, and the proof on chain. Built in code with Remotion.

Team

Arpit Singh, founder. Designed and built CargoFlow end to end: contracts, ZK circuit, Go evidence service, web app, SDKs, MCP server and the film.

MIT licensed. Full README, docs and role guides on GitHub.

Progress During Hackathon

<p>Built from scratch during the Buildathon (30 Sep to 4 Oct 2026, 278 commits). Everything below was designed, built, deployed and tested in that window:</p><ol><li><p>Smart contracts v1 to v3 on Robinhood Chain Testnet: 10 contracts source-verified (FinancingController, ReceivableVault, EvidenceRegistry, PolicyEngine, ShipmentRegistry, Groth16Verifier, CoverPool, DeviceRegistry, EBLRegistry, CargoFlowAccess), settling in Paxos USDG; 366 tests incl. fuzz and eight invariants.</p></li><li><p>Zero-knowledge recovery: Circom circuit (13,494 constraints, ~1 s proofs) verified on chain in ~0.25M gas; proofs are prepared automatically and the exporter signs once.</p></li><li><p>Go evidence service on Render: signed telemetry, Dempster-Shafer fusion and scoring, a stricter-only AI monitor, prover worker, outbox, indexer, REST + WebSocket API (OpenAPI 3.1).</p></li><li><p>Next.js 16 web app on Cloudflare Workers: exporter, financier, buyer, carrier, arbiter and market portals; ZeroDev passkey smart accounts (a live passkey payment via 3 ERC-4337 user operations).</p></li><li><p>Developer platform: remote MCP server (25 tools) used from claude.ai; @cargoflow/sdk, @cargoflow/mcp, @cargoflow/gateway on npm and cargoflow on PyPI; Telegram, email, Slack and webhook alerts.</p></li><li><p>Arbitrum Sepolia extensions: Stylus EvidenceEngine (Rust) 0x2f7cac603654ec106da242cd0b16044b31f7608d, Fhenix ConfidentialInvoiceTerms 0x5c1C12448D27c2E8519c1E471078Bf42E685D207, GMX GMXHedgeVault 0xE0E90F3E57e3a040AD99FE4384bE96Dd97002f74.</p></li><li><p>Proof: full lifecycles settled live on testnet (excursion, pause, Groth16 resume, settlement, bill of lading to the buyer) with every transaction linked; v1.0.0 release, a 5:30 film and a 21-slide funding deck.</p></li></ol>

Tech Stack

NextReactWeb3GoSolidityRustPythonNode

Fundraising Status

<p>Not raised yet: bootstrapped by the founder, pre-revenue. Applying for the Buildathon prize and a milestone-based Arbitrum grant. Plan for the funds: 35% audit and public ZK ceremony, 25% real logger pilots and hardware, 20% Robinhood Chain mainnet launch and first facilities, 10% legal (MLETR opinion on the bill of lading), 10% team and infrastructure, released milestone by milestone. A pre-seed round follows the first mainnet facilities with an outside financier.</p>

Team Leader
AArpit Singh
GitHub Link
github

GitHub

https://github.com/LSUDOKO/CargoFlow
Product Category
RWADeFiInfraAI