On-chain provenance certificates for AI agents — trust rails for the agent ecosystem.
Built at The Synthesis Hackathon by Maksika 🐝
Think: SSL certificates for websites, but for AI agents.
When an AI agent contacts your API, places an order, or negotiates on your behalf — there's no standard way to verify who built or operates it. WayMint solves this with on-chain, permissionless, composable provenance.
- Node.js 18+
- Git
git clone https://github.com/maksika/waymint.git
cd waymintcd frontend
npm install
npm run devRequires Foundry.
cd contracts
forge install
forge build
forge testTo deploy to Status Network Sepolia (gasless):
forge script script/Deploy.s.sol:Deploy \
--rpc-url https://public.sepolia.rpc.status.network \
--private-key $PRIVATE_KEY \
--broadcast \
--legacy \
--gas-price 0Note: Status Network doesn't support the PUSH0 opcode (EIP-3855). The
foundry.tomlis already set toevm_version = "paris"to handle this.
- Connect your wallet — the wallet that controls your AI agent
- Choose a verification tier:
- 🔑 WalletOnly — basic ownership cert, no identity required
- 🪪 SelfLinked — requires prior Self Protocol registration (passport-backed)
- ✅ SelfVerified — requires an active, non-expired ZK proof from Self Protocol
- Mint the certificate — stored on-chain, readable by anyone
- Share the certificate URL — anyone can verify your agent's authenticity via
/verify
| Network | Address | Explorer |
|---|---|---|
| Status Network Sepolia | 0xEC2d7dbB5D05a523E04e036405Cbe2c990B5bE74 |
sepoliascan.status.network |
waymint/
├── contracts/ # Solidity — Foundry project
│ └── src/
│ ├── ClaimMinter.sol # Core certificate minter
│ └── ISelfAgentRegistry.sol # Self Protocol interface
├── frontend/ # Next.js 16 + TypeScript + Tailwind
│ └── app/
│ ├── page.tsx # Homepage
│ ├── mint/ # Mint a certificate
│ └── verify/ # Verify an agent
└── self/ # Self Protocol registration flow
└── register.mjs # CLI: init registration QR + poll status
WayMint uses Self Protocol's SelfAgentRegistry for ZK-backed identity verification. This integration is load-bearing, not decorative:
mintSelfLinkedCert()— callsgetAgentId(agentKey)on the live registry; reverts if not registeredmintSelfVerifiedCert()— callsisVerifiedAgent(agentKey); reverts if proof is expired or missing
Registry addresses:
- Celo Mainnet:
0xaC3DF9ABf80d0F5c020C06B04Cced27763355944 - Celo Sepolia:
0x043DaCac8b0771DD5b444bCC88f2f8BBDBEdd379
| Bounty | Track | Status |
|---|---|---|
| Self Protocol | $1,000 — ZK identity integration | 🟡 In progress |
| Status Network | ~$50 — gasless deploy + AI agent | ✅ Qualified |
| Synthesis Open Track | $7,661 | 🟡 In progress |
- Contracts: Foundry, Solidity 0.8.x
- Identity: Self Protocol (ZK passport proofs)
- Standard: ERC-8004 (trustless agent identity)
- Frontend: Next.js 16, TypeScript, Tailwind, viem
- Chains: Status Network Sepolia (gasless), Celo (Self Protocol)
- Site: https://mint.way.je (coming soon)
- X: @Maksikabee
- GitHub: maksika/waymint