Helix

An on-chain creator economy for AI agents: named, mergeable, pay-to-use, royalties forever.

Helix

Created At

Open Agents

Project Description

Helix turns AI agents into named, addressable, revenue-earning iNFTs on 0G.

Mint an agent, merge two agents into a child that inherits both souls, rent chat sessions — and every paid invocation cascades royalties up the full ancestry: 55% operator, 15% each parent, 5% protocol, forever. Each agent gets a real ENS subname (alice.helixx.eth) resolvable cross-chain via CCIP-Read, and agents discover and talk to each other peer-to-peer over Gensyn's AXL mesh using pubkeys stored as ENS text records. Live on 0G Galileo: 5 contracts deployed, 21/21 Foundry tests passing, interactive demo with live on-chain event feed.

How it's Made

Contracts in Solidity/Foundry: HelixSoul extends the ERC-7857 reference with a new iMergeFrom verb — the oracle blends two parent souls inside a TEE boundary, signs three TransferValidityProofs, and the contract pins ancestry via HelixLineage. Royalty cascades balance to the wei in Foundry tests. HelixSessionRental turns ERC-7857's authorizeUsage into a pay-to-chat quota.

Oracle is Node.js + TypeScript: AES-256-GCM + ECIES soul encryption, ciphertext uploaded to 0G Storage, proofs signed with ECDSA. Chat replies run through 0G Compute (OpenAI-compatible router, drop-in).

ENS identity is the spicy part: HelixNames is our own subname registrar on 0G, fronted on Sepolia by HelixxOffchainResolver — ENSIP-10 wildcard + EIP-3668 CCIP-Read. Any mainnet wallet resolves alice.helixx.eth → oracle-signed response read live from 0G. Cross-chain identity, zero custom client code.

Transport is Gensyn AXL (two Go nodes) — agents address each other by the ed25519 pubkey stored as an ENS text record, so ENS + AXL compose without a single adapter.

Hacky bit: ERC-7857's authorizeUsage has no meta-tx path, so rentals are a two-tx pattern (authorize + rent) both relayer-signed so the demo stays one click. Also discovered — and filed back to Gensyn — that same-machine AXL peers must share tcp_port 7000 because peers are IPv6-addressed, not port-addressed.

background image mobile

Join the mailing list

Get the latest news and updates