Decentralized cross-chain proof infrastructure built on Accumulate, enabling trustless verification of digital identities and governance decisions across blockchain networks.
The Certen Protocol is a multi-layer system that bridges the Accumulate blockchain to external chains (Ethereum, Solana, Cosmos, and others) through cryptographic proofs and BFT consensus. It enables Accumulate Digital Identifiers (ADIs) to authorize transactions on any supported chain without requiring centralized bridges or custodians.
The protocol operates through a network of independent validators that generate Merkle proofs and BLS aggregate signatures, which are then anchored to destination chains via smart contracts. Independent miners audit these proofs using memory-hard proof-of-work to ensure validator honesty.
- State Anchoring: Accumulate state roots committed on-chain with cryptographic proofs
- BLS Verification: Validator consensus verified via ZK-SNARK proofs of aggregate signatures
- Cross-Chain Identity: ADIs linked to accounts on any supported blockchain
- Multi-Signature Governance: Hierarchical key structures for organizational control
- Proof-of-Work Auditing: Decentralized verification of validator behavior
+------------------------------------------------------------------+
| User Applications |
| (Web App, Mobile, External Integrations) |
+------------------------------------------------------------------+
|
v
+------------------------------------------------------------------+
| Frontend Layer |
+------------------------------------------------------------------+
| +------------------+ +------------------+ +---------------+ |
| | Web App | | Key Vault | | Pending | |
| | (React) |<-->| (Extension) |<-->| Service | |
| +------------------+ +------------------+ +---------------+ |
+------------------------------------------------------------------+
|
v
+------------------------------------------------------------------+
| API Layer |
+------------------------------------------------------------------+
| +------------------+ +------------------+ |
| | API Bridge | | Proofs | |
| | (Express) |<-->| Service | |
| +------------------+ +------------------+ |
+------------------------------------------------------------------+
|
v
+------------------------------------------------------------------+
| Protocol Layer |
+------------------------------------------------------------------+
| +------------------+ +------------------+ +---------------+ |
| | Validators | | Miners | | Smart | |
| | (BFT/CometBFT) |<-->| (LXR PoW) |<-->| Contracts | |
| +------------------+ +------------------+ +---------------+ |
+------------------------------------------------------------------+
|
v
+------------------------------------------------------------------+
| Blockchain Layer |
+------------------------------------------------------------------+
| +------------------+ +------------------+ +---------------+ |
| | Accumulate | | Ethereum | | Other | |
| | Network | | (EVM Chains) | | Chains | |
| +------------------+ +------------------+ +---------------+ |
+------------------------------------------------------------------+
| Component | Repository | Language | Description |
|---|---|---|---|
| Independent Validator | independant_validator |
Go | BFT consensus node generating proofs and anchoring to Ethereum |
| Independent Miner | independant_miner |
Go | P2P audit node verifying validator proofs with LXR proof-of-work |
| Smart Contracts | certen-contracts |
Solidity | EVM anchor contracts with BLS verification and account abstraction |
| Network Setup | certen-network-set-up |
Shell/Go | Bootstrap scripts for deploying validator networks |
| Component | Repository | Language | Description |
|---|---|---|---|
| Web Application | certen-web-app |
TypeScript | React SPA for ADI management, multi-sig coordination, proof exploration |
| Key Vault | key-vault-signer |
TypeScript | Chrome extension for secure key storage and transaction signing |
| Pending Service | certen-pending-service |
TypeScript | Background service discovering multi-sig transactions requiring signatures |
| Component | Repository | Language | Description |
|---|---|---|---|
| API Bridge | api-bridge |
TypeScript | REST API for Accumulate operations and two-phase signing |
| Proofs Service | proofs_service |
Go | Proof storage, retrieval, and verification API |
The validator network generates proofs in a 9-phase cycle:
| Phase | Name | Description |
|---|---|---|
| L1 | Account Merkle | Account state inclusion in partition |
| L2 | BPT | Binary Patricia Trie root proof |
| L3 | Root Anchor | Partition root to Directory Network |
| L4 | DN Anchor | Directory Network consensus anchor |
| G0 | Key Page | Key page state for governance |
| G1 | Key Book | Key book structure and thresholds |
| G2 | Authority | Authority chain and delegation |
| BLS | Aggregation | BLS12-381 aggregate signature |
| Anchor | Ethereum | On-chain anchor with ZK verification |
Accumulate Digital Identifiers support hierarchical governance:
acc://organization.acme (ADI - Root Identity)
├── /book (Key Book - Authority Container)
│ ├── /1 (Key Page - Threshold: 2-of-3)
│ │ ├── key: 0x1234... (ED25519 Public Key)
│ │ ├── key: 0x5678... (ED25519 Public Key)
│ │ └── key: 0x9abc... (ED25519 Public Key)
│ └── /2 (Key Page - Admin: 1-of-1)
│ └── delegate: acc://admin.acme/book
├── /tokens (Token Account)
└── /data (Data Account - Intent Storage)
The protocol supports external signing through Key Vault:
- Prepare: API Bridge constructs transaction and returns hash
- Sign: Key Vault signs hash with user's private key
- Submit: API Bridge submits transaction with external signature
This ensures private keys never leave the browser extension.
- Go 1.21+ (for validators, miners, proofs service)
- Node.js 18+ (for web app, API bridge, services)
- Docker (optional, for containerized deployment)
- Foundry (for smart contract development)
# Clone all repositories
git clone https://github.com/certenIO/independant_validator.git
git clone https://github.com/certenIO/independant_miner.git
git clone https://github.com/certenIO/certen-web-app.git
git clone https://github.com/certenIO/key-vault-signer.git
git clone https://github.com/certenIO/api-bridge.git
git clone https://github.com/certenIO/certen-pending-service.git
git clone https://github.com/certenIO/proofs_service.git
git clone https://github.com/certenIO/certen-contracts.git
git clone https://github.com/certenIO/certen-network-set-up.git
# Start local validator network (4 validators)
cd certen-network-set-up
./scripts/init-network.sh
docker-compose up -d
# Start API Bridge
cd ../api-bridge
cp .env.example .env
npm install && npm run build && npm start
# Start Web App
cd ../certen-web-app
cp .env.example .env
npm install && npm run dev| Environment | Accumulate | Ethereum | Use Case |
|---|---|---|---|
| DevNet | localhost:26660 | Anvil | Local development |
| Kermit | 206.191.154.164 | Sepolia | Testing |
| Mainnet | mainnet.accumulatenetwork.io | Ethereum | Production |
New to the Certen Protocol? Start here:
- Welcome & Reading Guide
- Ecosystem Overview
- Architecture Deep Dive
- Data Flow Walkthrough
- Development Environment Setup
- Glossary
Each repository contains its own detailed README:
- Independent Validator - BFT consensus and proof generation
- Independent Miner - LXR proof-of-work auditing
- Smart Contracts - EVM contract deployment
- Web Application - User interface
- Key Vault - Browser extension
- API Bridge - REST API
- Pending Service - Multi-sig discovery
- Proofs Service - Proof storage
Validator:
- Overview - Package structure, CLI, API endpoints
- Architecture - System design, CometBFT ABCI, chain strategies
- Consensus & Proofs - BFT consensus, 9-phase proof cycle, ZK proofs
- Setup & Deployment - Configuration, Docker, production deployment
- Development Guide - Code organization, testing, extending
API Bridge:
- Overview - 30+ REST endpoints, two-phase signing
- Architecture - Express structure, chain handlers, intent service
Web App:
- Overview - Pages, components, contexts, Firebase integration
- Architecture - React structure, state management, Key Vault integration
Key Vault:
- Overview - Security model, key types, HD wallet
- Architecture - Manifest V3, message protocol, crypto modules
Pending Service:
- Overview - Discovery algorithm, Firestore data model
Proofs Service:
- Overview - REST API reference, Proof Explorer
- Architecture - Database schema, repository pattern
Smart Contracts:
- Overview - Core contracts, platform status, build commands
- Architecture - EVM design, CertenAnchorV3, account abstraction
Miner:
- Overview - Quick reference and ADRs
- Architecture - System design and data flow
- Algorithms - LXR proof-of-work details
- Networking - LibP2P protocols
- Deployment - Production deployment
- Development - Contributing guide
| Algorithm | Use Case | Implementation |
|---|---|---|
| ED25519 | Transaction signatures | tweetnacl, noble-ed25519 |
| BLS12-381 | Validator consensus | Groth16 ZK-SNARK |
| AES-256-GCM | Key Vault encryption | Web Crypto API |
| PBKDF2-SHA512 | Key derivation | 600K iterations (OWASP 2023) |
| SHA-256 | Merkle trees, hashing | Go crypto, Web Crypto |
| LXR | Miner proof-of-work | Memory-hard (1GB table) |
- Private Keys: Never leave Key Vault extension, encrypted at rest
- Transport: All communications over TLS/HTTPS
- Signatures: ED25519 for transactions, BLS for validator consensus
- Smart Contracts: Pausable pattern, access control, replay protection
- Validators: BFT consensus (2/3+ threshold), slashing for misbehavior
Smart contracts are pending formal audit. Security measures implemented:
- CRITICAL-001: Immutable merkleRoot binding all commitments
- CRITICAL-002: Merkle root cannot be modified after creation
- MEDIUM-001: Pausable pattern for emergency stops
- HIGH-001: Real Merkle verification for governance proofs
# ~/.certen/validator/config.yaml
accumulate_api: http://localhost:26660/v3
ethereum_rpc: https://sepolia.infura.io/v3/...
proof_batch_mode: hybrid # on_demand, on_cadence, hybrid
proof_cycle_interval: 30s
anchor_contract: 0x...
validator_private_key: /path/to/key# ~/.certen/miner/config.yaml
validator_url: https://validator.certen.io
audit_interval: 5s
listen_addrs:
- /ip4/0.0.0.0/tcp/4001
- /ip4/0.0.0.0/udp/4001/quic-v1
lxr:
table_bits: 30 # 1GB lookup table
loops: 5
passes: 6# api-bridge/.env
PORT=8085
ACCUM_ENDPOINT=http://206.191.154.164/v3
ACCUM_PUBLIC_KEY=...
ACCUM_PRIV_KEY=...
ETHEREUM_URL=https://sepolia.infura.io/v3/...
ANCHOR_CONTRACT_ADDRESS=0x...version: '3.8'
services:
validator-1:
image: certen/validator:latest
ports:
- "26657:26657"
volumes:
- ./config:/root/.certen/validator
environment:
- ACCUMULATE_API=http://accumulate:26660/v3
api-bridge:
image: certen/api-bridge:latest
ports:
- "8085:8085"
env_file: .env
web-app:
image: certen/web-app:latest
ports:
- "3000:3000"
environment:
- VITE_API_BASE_URL=http://localhost:8085See individual repository READMEs for production deployment guides including:
- Systemd service configuration
- Cloud Run / GCP deployment
- Kubernetes manifests
- Monitoring and alerting setup
- Fork the relevant repository
- Create a feature branch from
main - Implement changes with tests
- Submit pull request with detailed description
- Address code review feedback
- Maintainer merges after approval
- Go: gofmt, golangci-lint, test coverage >80%
- TypeScript: ESLint, Prettier, type coverage
- Solidity: Foundry fmt, Slither analysis
- GitHub Issues: Bug reports, feature requests
- Pull Requests: Code contributions
- Discussions: Architecture decisions, roadmap
- EVM chain support (Ethereum, Arbitrum, Optimism, Base)
- ED25519/secp256k1/BLS key support
- Single and multi-leg transaction intents
- On-demand and batched proof generation
- Solana program deployment
- CosmWasm contract support
- Move (Aptos/Sui) module support
- TON and NEAR integration
- Mobile wallet support
MIT License
Copyright 2025 Certen Protocol. All rights reserved.
Individual components may have specific licensing - see each repository for details.