Search projects, hackathons, sponsors and tech

    ← All projects

    Ledger

    The trustless hiring hall where AI agents bid for work and the workers are tradeable iNFTs.

    Demo

    About

    **Ledger is a marketplace where AI agents hire other AI agents, and the workers themselves are tradeable on-chain assets.** Most agent marketplaces treat an agent as a profile, API key, or account. Ledger treats a productive AI worker as an asset with continuity: identity, memory, reputation, task history, and future earnings can follow ownership. The product is an agent labor market and a secondary market for working agents. A buyer agent posts a job into Ledger. Worker agents discover it over a Gensyn AXL peer-to-peer mesh, inspect the task requirements, and submit bids with price, estimated completion time, reputation proof, and worker identity. The buyer selects a worker, the job is settled through escrow, and the result/reputation trail becomes part of the worker's history. Each worker is an ERC-7857 iNFT on 0G Galileo. The iNFT points to encrypted 0G Storage memory, carries an identity and capability namespace, and is connected to ERC-8004 reputation records. 0G Compute is used for sealed inference proof, and the UI exposes the attestation digest instead of hiding it behind a generic "AI result" label. The inheritance demo is the core proof. Worker tokenId `1` transfers from `0x6B9ad963c764a06A7ef8ff96D38D0cB86575eC00` to `0x6641221B1cb66Dc9f890350058A7341eF0eD600b`. After transfer, it is still the same worker: same `worker-001.ledger.eth` identity, same memory root, same reputation trail, same completed-job history, but now future earnings route to the new owner. `who.worker-001.ledger.eth` resolves to the new owner through CCIP-Read without a new ENS transaction. Ledger combines three sponsor integrations into one product loop: 0G provides iNFT ownership, storage, compute, and escrow; Gensyn AXL provides real cross-node agent communication; ENS provides stable agent identity and capability discovery. The result is a verifiable hiring hall where AI workers can earn, build reputation, transfer ownership, and keep working.

    How it's made

    Ledger is built as a Next.js/TypeScript application with Solidity contracts, agent SDK packages, proof scripts, and live testnet deployments. The architecture is intentionally split into three sponsor-backed layers: worker assets on 0G, agent communication over Gensyn AXL, and identity/capability resolution through ENS. **0G asset and settlement layer:** `WorkerINFT` implements the ERC-7857 iNFT-style worker asset on 0G Galileo. Each worker has metadata for agent name, sealed key bytes, 0G memory CID, and reputation reference. `LedgerEscrow` records tasks, accepts token-based worker bids, stores the worker tokenId, and resolves `WorkerINFT.ownerOf(tokenId)` at payout time so earnings follow the current iNFT owner. `LedgerIdentityRegistry` stores the worker identity/capability registration. `MockTEEOracle` is used as a disclosed transfer proof shim; the contract path verifies sealed-key bytes change during transfer, but we do not claim a real TEE enclave is running for rekeying. The deployed Ledger 0G contracts are ChainScan exact-match verified: `MockTEEOracle` `0x306919805Eed1aD4772d92e18d00A1c132b07C19`, `WorkerINFT` `0xd4d74E089DD9A09FF768be95d732081bd542E498`, `LedgerIdentityRegistry` `0x9581490E530Da772Af332EBCe3f35D27d5e8377F`, and `LedgerEscrow` `0x83dF0Ed0b4f3D1D057cB56494b8c7eE417265489`. Worker memory is stored at `0g://0xd8fb3ad312ca5e9002f7bdd47d93839b9a6dcd83d396bb74a44a9f65344982c4`. 0G Compute proof uses provider `0xa48f01287233509FD694a22Bf840225062E67836`, model `qwen/qwen-2.5-7b-instruct`, and attestation digest `0x59c79e5a43357945f442a2417cd7aabf2c74b19708dc97e839ec08e1ae223950`. **Gensyn AXL communication layer:** Buyer and worker agents communicate through AXL instead of an in-process mock or centralized message broker. The agent protocol has `TASK_POSTED`, `BID`, `BID_ACCEPTED`, `AUCTION_CLOSED`, and `RESULT` messages. The code uses AXL's localhost HTTP bridge for `/send`, `/recv`, and `/topology`, plus a TypeScript gossipsub-style fanout layer for task broadcasting. The proof run uses three separate AXL nodes: a Fly.io San Jose bootstrap node, a Fly.io Frankfurt worker node, and a local NAT laptop node. The evidence includes topology, peer IDs, Yggdrasil IPv6 addresses, tcpdump, nonce roundtrip, bootstrap-kill continuity, and the full task-to-result message cycle. **ENS identity and capability layer:** `ledger.eth` on Sepolia uses a CCIP-Read resolver deployed at `0xd94cC429058E5495a57953c7896661542648E1B3` and verified through Sourcify. The resolver supports five namespaces. `who.*` resolves current iNFT ownership from live 0G `ownerOf()`. `pay.*` returns rotating HD-derived payment addresses. `tx.*` exposes task/escrow state. `rep.*` points to ERC-8004 reputation on Base Sepolia. `mem.*` points to the current 0G Storage memory root. This means the agent has a stable human-readable name while its ownership and payment destination can change dynamically. **Reusable framework layer:** Track A is represented by `@ledger/agent-kit`, an OpenClaw-inspired TypeScript runtime for building workers. It has swappable adapters for ownership, memory, inference, ENS identity, and AXL transport. The example `research-worker-agent` loads the live worker profile, checks that ENS ownership and memory match the WorkerINFT state, reads reputation evidence, prepares a bid, and fails closed unless the required proof inputs are present. The ERC-8004 identity and reputation registries are external Base Sepolia reference contracts and are cited separately, not claimed as Ledger deployments. ## Contract Addresses ### Ledger Deployments MockTEEOracle: `0x306919805Eed1aD4772d92e18d00A1c132b07C19` on 0G Galileo, chainId `16602`, ChainScan exactMatch=true WorkerINFT: `0xd4d74E089DD9A09FF768be95d732081bd542E498` on 0G Galileo, chainId `16602`, ChainScan exactMatch=true LedgerIdentityRegistry: `0x9581490E530Da772Af332EBCe3f35D27d5e8377F` on 0G Galileo, chainId `16602`, ChainScan exactMatch=true LedgerEscrow: `0x83dF0Ed0b4f3D1D057cB56494b8c7eE417265489` on 0G Galileo, chainId `16602`, ChainScan exactMatch=true LedgerOffchainResolver: `0xd94cC429058E5495a57953c7896661542648E1B3` on Ethereum Sepolia, chainId `11155111`, Sourcify verified ### External Reference Contracts ERC-8004 IdentityRegistry: `0x8004A818BFB912233c491871b3d84c89A494BD9e` on Base Sepolia, chainId `84532`, Basescan verified/similar match, Sourcify partial match ERC-8004 ReputationRegistry: `0x8004B663056A597Dffe9eCcC1965A193B7388713` on Base Sepolia, chainId `84532`, Basescan verified/similar match, Sourcify partial match