Built on standards already in production.
Kanon doesn’t invent a new credential format. It implements the AnonCreds VDR interface that the Aries ecosystem already uses, on any EVM chain.
did:kanon method.
DIDs are W3C DID Core 1.0 compliant. The did:kanon method binds an identifier to a controller address with sender-bound update authority. Resolvable through any DID resolver that understands the method.
VC Data Model 2.0 compatible.
Credentials carry W3C-compliant proofs. Selective disclosure follows the AnonCreds CL or BBS+ paths depending on credential format, both standard.
AnonCreds VDR — drop-in.
Implements the AnonCredsRegistry interface for Credo. Schemas, credential definitions, and per-credential status all stored on-chain. The four CKS-revocation methods are intentionally rejected; we use per-credential status lookup instead.
Credo + ACA-Py compatible.
Credo agents talk to Kanon through a standard plugin. Issuance and revocation surface as normal AnonCreds operations; the on-chain calls happen via Credo events and a wrapped AnonCredsVerifierService.
Solidity 0.8.24, Cancun target.
The contracts are EVM-portable. Reference deployment is Hyperledger Besu 26.5 with EIP-2537 BLS12-381 precompiles, but the same bytecode runs on Ethereum mainnet, Arbitrum, Optimism, Polygon zkEVM, Base, and any private EVM rollup that supports the same opcodes.
Mode B uses Groth16 over BN254.
Circom 2 circuit compiled with snarkjs. The on-chain verifier is generated by snarkjs from a multi-contributor Powers-of-Tau ceremony. BN254 keeps verification gas low and works on any EVM chain.