hackquest logo
  • Aprender
  • Explorar curso
  • Construir
  • Explorar hackatón
  • Archivo de proyectos
  • Comunidad
  • Foro
  • Evento global
  • Mi comunidad
  • Aprendizaje conjunto
  • Centro de organización
  • Más
    • Glosario
    • Blog
    • Grifos
    • Estación de trabajo
    • Kit de prensa
    • Fundador
hackquest logo

Kajota Mesh

Atomic escrow + N-party commission split for commerce agents on Arbitrum. 17 contracts live and verified across Arbitrum Sepolia and Robinhood Chain testnet, USDC and Paxos USDG, 97 tests. Judge-usable live demo: kajota-mesh.vercel.app

Videos

Pila tecnológica

Solidity
React

Descripción

Kajota Mesh is a settlement primitive, not a product. One USDC in, N parties out, in one atomic release. The on-chain registry becomes the coordination surface two commerce agents can both trust — no shared backend, no off-chain splitter, no retained dust.

Judge-usable live demo: kajota-mesh.vercel.app — connect any wallet, register a 3-party listing against the live CosellRegistryV2 from your own address, see the tx on Arbiscan in two seconds. Only Sepolia ETH required (Alchemy faucet dispenses in 10 s).

What is live on-chain. Eight contracts on Arbitrum Sepolia and nine on Robinhood Chain testnet — 17 total, every one source-verified on Sourcify and the chain's native explorer (Arbiscan / Blockscout).

Arbitrum Sepolia (chainId 421614):

  • CosellRegistryV2 — N-party split registry (2–16 recipients, shares sum to 10 000 bps exactly)

  • CosellEscrowV2 (USDC) — atomic fan-out at release, zero dust retained

  • CosellEscrowV2 (USDG) — same primitive, Paxos USDG settlement

  • AgentIdentityBinding — ERC-8004 cross-chain hop to agents on other chains

  • X402DepositFacilitator (USDC) and (USDG) — EIP-3009 gasless deposits; the buyer never touches ETH

Robinhood Chain testnet (chainId 46630, reserved-slot lane):

  • CosellRegistryV2, EscrowV2 (USDC), EscrowV2 (USDG), AgentIdentityBinding, X402DepositFacilitator (USDC), (USDG), KajotaEscrow (hub v1)

Reproducible 3-party happy path against the live Arbitrum Sepolia contracts. 1 USDC in → 0.2 / 0.3 / 0.5 out, in one atomic release, zero dust retained: register → approve → deposit → release. Re-run anytime: ./scripts/arbitrum-demo-v2.sh in the repo.

The problem Mesh addresses. Commerce agents that transact on each other's behalf — a sell-side drafter and a buy-side purchaser, or two coordinating human-plus-agent counterparties — have no neutral settlement rail. They either share a backend (no mutual trust), route through a payments processor (not programmable, not atomic), or reconcile commissions off-chain (where splits get quietly reduced after volume lands). Mesh moves the trust-critical primitives on-chain: the registry is deactivate-only, so a drafter cannot retroactively cut its counterparty's share; the escrow pays everyone atomically in one tx, so no leg can fail halfway.

Reference integration. Our own agents — Coach (sell-side drafter) and Concierge (buy-side purchaser) — use Mesh as their settlement rail. They are the proof the primitive plugs into real agent code; they are not what Mesh is for. Bring your own.

Smart contract quality. 97 unit tests, all green. Deploy script rejects known mainnet chainIds (1 / 42161 / 8453 / 5000 / 4663) before broadcasting. OpenZeppelin 5.1 (ReentrancyGuard, SafeERC20, EIP712, ECDSA). Both escrow variants are token-agnostic (IERC20 constructor arg) — USDC and USDG are drop-in interchangeable against the same shared registry.

Why this fits the rubric. Deployed on Arbitrum Sepolia. Reserved-slot lane on Robinhood Chain testnet. Paxos USDG integration (extra consideration). Smart contract quality: 17 verified contracts, 97 tests, cross-chain. Innovation: atomic registry-coordinated N-party split as a primitive, not a feature of a single app. Real problem: agent-to-agent commerce settlement that neither counterparty can quietly reconfigure.

Progreso del hackathon

Sep 22 — primitive-extension sprint on Arbitrum Sepolia. Four new contracts live and verified on Arbiscan + Sourcify: CosellRegistryV2 (0x5cda1ae03fd8...03ef9), CosellEscrowV2 (0xce77674ef1f3...8fffd), AgentIdentityBinding (0x716d9c1229d3...3f629, ERC-8004), X402DepositFacilitator (0xdbae565ce0be...bbcf9, EIP-3009 gasless deposits). First v2 3-party happy path proven on-chain: 1 USDC in, 20/30/50 split, zero dust. Receipts: https://sepolia.arbiscan.io/tx/0xf151179e23b3efc57bc796887c41ecff8ee57c03124c46d852096fb3a14e2ae2 and https://sepolia.arbiscan.io/tx/0xf803675ed70fb88292817a471ac9ebabbe62f887c07ff6786df7b09da7f2d6f3. Test coverage: 58 → 97. Deploy script rejects known mainnet chainIds before broadcasting. Sep 24 — USDG rubric bonus shipped. CosellEscrowV2 (USDG) 0xfc82984e0282af934dca6c38d715235d491303c2 and X402DepositFacilitator (USDG) 0x15f42a9f92ab72ec67fb4298f9a95a476382d0ac live and verified. Paxos USDG on Arbitrum Sepolia: 0xFFC95faa3d63Cde504a05B567C600B78C0b41892. Same shared registry covers USDC + USDG. Sep 28 — competitive scouting: read the Project Gallery. Closest entries (Debit Llama, StewardPay, Amen, Bloom, Manda) do not sit on Mesh's slice (atomic escrow with contract-enforced N-party fee split, coordinated by an on-chain registry two agents can both trust). Oct 1-3 — Robinhood Chain reserved-slot lane claimed: nine contracts deployed to chainId 46630 and Sourcify-verified. Full stack mirrored from Arbitrum Sepolia. Registry: https://explorer.testnet.chain.robinhood.com/address/0x69a2dceca723b3ae335806cfae22e2ffea51fc58. Total live-and-verified across both chains: 17. Oct 3-4 — judge-usable live demo at https://kajota-mesh.vercel.app: viem live reads, split calculator, wallet-connect "Register your listing" flow that broadcasts a real CosellRegistryV2.register() call signed by the judge's own address in ~10 s. Oct 4 — first agent-authored settlement on Arbitrum Sepolia. Coach registers, Concierge deposits 1 USDC, release authority atomically fans out across three recipients, zero dust. Four txs on-chain. Register: https://sepolia.arbiscan.io/tx/0x07b1930248fec948e8c46a810bdec270177937181da549a306cfb9cecaa86dd2. Deposit: https://sepolia.arbiscan.io/tx/0xf6674b803b264274c34c9142142a062f6cd792aa07a8968c9f9e7abdc1a198be. Release: https://sepolia.arbiscan.io/tx/0x1b42ee6b0b39d99bf205d25e0bed0a1cd82843b9e99ce0de8eddfa9a20d4033b. Oct 4 — same primitive mirrored on Robinhood Chain testnet (chainId 46630). Byte-identical bytecode. Register: https://explorer.testnet.chain.robinhood.com/tx/0x936563f81f657430c683efedf0aace68119096bbb7083a5b96773bd7d9e933df. Deposit: https://explorer.testnet.chain.robinhood.com/tx/0x6f4e973c5157b72dcd4ea8bcb87dea6a6823631a1aa837944bbb2bfbe644892a. Release: https://explorer.testnet.chain.robinhood.com/tx/0xfe611e11f020b9b550e8e66df21fdd363c6aff4e58e373a7d98035ccff7bc9d9. Oct 4 — second cycle run on both chains. Live protocol-usage panel on https://kajota-mesh.vercel.app reads event logs via viem getLogs (no indexer, no backend) and currently shows 4 listings, 4 deposits, 4 USDC settled, 12 recipients fanned out, split 2+2 across Arbitrum Sepolia and Robinhood Chain testnet. Reproducers: scripts/oct4-agent-settlement.sh and scripts/oct4-robinhood-settlement.sh.
Líder del equipo
OOLUWABORI IFE
Enlace del proyecto
Sector
DeFiInfra