โš–
AEQUITAS
PROOF OF HUMANITY
LIVE
โ— GHOSTDAG
โ—† KNIGHTDAG
๐Ÿ” Register
๐Ÿ” Explorer
โš–๏ธ Equality
๐ŸŒ Network
๐Ÿ”„ Exchange
๐Ÿ” Register as a Verified Human
Join the Aequitas network and receive your 1,000 AEQ Universal Basic Income grant. Registration is one-time, permanent, and completely gasless. No personal data is ever stored โ€” only a cryptographic proof that you control a device key.
โš– DOWNLOAD AEQUITAS APP
Android APK ยท direct download
For the first time in history โ€” everyone starts equal
If you own an Android smartphone, you qualify. No bank, no crypto background, no investment needed.
0.00 Start Investment
Registration is completely gasless. No ETH, no MATIC, no credit card. The protocol pays all fees on your behalf.
1,000 AEQ for every human
Billionaire or subsistence farmer โ€” everyone gets exactly 1,000 AEQ. Not more, not less. Equal start, guaranteed by math.
Accessible to all
No bank account, no credit card, no government ID, no extra hardware to buy โ€” just the screen-unlock already built into your Android phone.
Daily UBI forever
Once registered, you receive a daily share of UBI payouts automatically โ€” every day, no action required.
๐Ÿ“ฑ
REGISTRATION VIA ANDROID APP
Registration generates a cryptographic key inside your phone's secure hardware (Secure Enclave / StrongBox), gated behind your device's own screen-unlock โ€” no separate sensor, no raw biometric data is ever produced, processed, or transmitted. A Groth16 Zero-Knowledge Proof proves you hold that device key without revealing it. Your 1,000 AEQ will be credited automatically upon successful verification. Note: this currently proves control of one device, not biological uniqueness across devices โ€” see the FAQ below.
1
Device Key
Your phone's secure hardware generates a private key behind your existing screen-unlock (fingerprint/face/PIN, whichever you already use). No separate sensor kit, no raw biometric data ever leaves the device.
2
ZK Proof Generation
A Groth16 Zero-Knowledge Proof commits your device key into a single commitment and nullifier without revealing the key itself. This cryptographically proves you hold this device's key โ€” see the FAQ for what that does and doesn't guarantee.
3
Connect Wallet
The app opens MetaMask on this page. Connect your Ethereum wallet โ€” this is the address that will receive your 1,000 AEQ grant. The proof is cryptographically bound to your wallet.
4
1,000 AEQ Granted
Your registration is confirmed on the Aequitas BlockDAG within 1 second. 1,000 AEQ is credited to your wallet instantly, gasless. Your identity is permanently recorded as verified human.
๐Ÿ”’ Device-bound cryptographic key ยท Groth16 ZKP ยท Data never leaves device ยท One registration per device
๐Ÿ“ฑ MetaMask Mobile: if AEQ balance shows 0 after registration, go to Settings โ†’ Networks โ†’ delete Aequitas Chain โ†’ re-add via this website
CONNECTED WALLET
โ€”
โšก ZK PROOF RECEIVED
Connect wallet to register
// Open Aequitas Android App to generate your proof, then return here...
Registration Details
NetworkAequitas Chain (BlockDAG)
Chain ID1926 (0x786)
UBI Grant1,000 AEQ per human
Gas FeeFREE โ€” completely gasless
RegistrationsOnce per device ยท permanent ยท immutable
Device KeyNever leaves your device โ€” no biometric data is produced or stored
Proof SystemGroth16 ZKP (Zero-Knowledge)
ConfirmationWithin 1 second (1 block)
Sybil ProtectionOne identity per device ยท permanent lock (device-bound, not yet body-bound)
Explore Aequitas
โš–๏ธ
Equality Score
Live Gini coefficient ยท Aequitas Index ยท wealth distribution in real time
๐Ÿ’ธ
UBI & Redistribution Pools
Daily UBI countdown ยท 4 on-chain pools ยท demurrage ยท Protocol Phases
๐Ÿ“ˆ
Charts & History
Gini history ยท Lorenz curve ยท Wealth Cap bootstrap slider ยท The story of Aequitas
๐Ÿ“œ
Protocol V7 Docs
AequitasV7 contract ยท 6 mechanisms ยท ZK proof ยท wealth cap ยท demurrage ยท immutable code
๐Ÿ”
Block Explorer
Live BlockDAG ยท click any block to see validator, hash, transactions, parent hashes
๐ŸŒ
Network & Nodes
Node topology ยท run your own node ยท technical specs ยท Chain ID 1926
๐Ÿ”—
Consensus: GHOSTDAG + KnightDAG
How every node agrees on one order ยท the 2026 KnightDAG upgrade explained
Latest Block
โ€”
BlockDAG ยท Parallel production
Verified Humans
โ€”
Device-bound ZK proof ยท one registration per device
Total Supply
โ€”
Always = Humans ร— 1,000 AEQ
Uptime
โ€”
Multi-validator network
Active Validators
โ€”
Distinct proposers, recent blocks
GHOSTDAG DAG View ยท KnightDAG-secured
โ€”
selected parent chain GHOSTDAG blue โ€” counted GHOSTDAG red โ€” excluded, still merged not yet classified KnightDAG-secured โ€” block infers its own K Fill = GHOSTDAG verdict ยท thin ring = proposer ยท one column per height. Hover any block for details.
Latest Blocks
โ€”
One row per height โ€” the canonical winner GHOSTDAG selected, not every validator that produced at that height. A run of the same proposer here doesn't mean the others are idle: check โŸN next to a block # (parallel blocks merged at that height) or Active Validators above for the real count.
Block #AgeTxnsProposerTypeโ˜… Score
Loading blocks...
Latest Transactions
โ€”
Hash / WalletBlockTypeAmount
Loading transactions...
Block #โ€”
โœ• Close
๐Ÿ”’
What is a Verified Human?
A Verified Human is currently a wallet address cryptographically proven to control one specific device's secure hardware key. Verification generates that key inside the phone's Secure Enclave/StrongBox, gated behind the device's own screen-unlock โ€” no separate sensor kit. Only a Groth16 Zero-Knowledge Proof is transmitted; no biometric data ever leaves the device. Today this verifies one device, not yet one unique person โ€” see the FAQ for what that means in practice.
๐Ÿงฎ
Zero-Knowledge Proof System
Aequitas uses Groth16 proofs on the BN128 elliptic curve โ€” the same curve used by Ethereum and Zcash. Proof size: ~200 bytes. Verification: ~10ms. commitment = keccak256(deviceKey โ€– wallet). The nullifier is bound to this device: losing your phone does not let you create a second identity on it, but a different device can still register separately. No key material is ever revealed or stored server-side.
๐Ÿ›ก
Sybil Resistance โ€” Current State
A Sybil attack is when one person creates multiple identities to gain an unfair advantage. Today's nullifier is derived from a per-device hardware key, so it reliably blocks re-registering the SAME device, and blocks reusing the same identity across wallets. It does not yet detect the same person registering from a second physical device โ€” closing that gap requires a real cross-device biological uniqueness check, which is planned as post-beta work rather than shipped today.
๐ŸŒ
Global Financial Inclusion
1.4 billion adults worldwide have no bank account. Aequitas requires nothing more than an Android smartphone with the screen-unlock (fingerprint/face/PIN) you already use โ€” a device over 3 billion people already own. No bank account, no credit card, no prior cryptocurrency, no government ID. Just being human is enough to participate in the Aequitas economy.
๐Ÿซ
Identity Verification Roadmap
Today (beta) โ€” a per-device hardware-backed cryptographic key, honestly labeled as device-bound rather than body-bound.

Planned (post-beta) โ€” a real cross-device biological uniqueness check, to be specified, built, and independently audited before any stronger Sybil-resistance claim is made.
Registered Humans
0
Every address below has proven control of a device-bound cryptographic key via Zero-Knowledge Proof and received exactly 1,000 AEQ upon registration. The registry is permanent, immutable, and on-chain โ€” no entry can ever be deleted or modified. See the FAQ for what "device-bound" means for Sybil resistance today.
No humans registered yet. Download the Aequitas Android App and be the first!
Registry Stats
Total Humans0
Total Supply0 AEQ
Grant per Human1,000 AEQ
Registration FeeFREE โ€” gasless
ZKP SystemGroth16 / BN128
Hash Systemkeccak256
Device Key StorageNever leaves your device
Sybil ProtectionPermanent ยท On-chain
โ“ FAQ
Is my biometric data safe?
Yes. No fingerprint, face, or other biometric image is ever captured, processed, or transmitted by Aequitas. Your phone's own screen-unlock simply gates access to a random key generated and stored in its secure hardware. Only a mathematical proof derived from that key is ever sent to Aequitas โ€” never the key itself, never any biometric data.
Does registration prove I am a unique real person?
Not yet, fully. Today's proof cryptographically proves you control one specific device's secure hardware key โ€” it reliably stops that same device (or wallet) from registering twice, but it cannot currently tell two different physical devices apart if the same person owns both. A genuine cross-device biological uniqueness check is planned work, not something already shipped โ€” we'd rather say that plainly than overstate what today's device-bound proof guarantees.
Can I register with a different wallet later?
No. Registration is permanently bound to one wallet address per device key. This is by design โ€” it prevents re-registering the same device and enforces one-wallet-per-device-identity.
What happens if I lose my phone?
Your AEQ remains in your wallet โ€” it is tied to your private key, not your phone. You can still access your wallet via MetaMask with your seed phrase. Wallet recovery is independent of the device-key registration.
AEQ / tUSD
xยทy=k AMM ยท updates every 8s
โ€”
โ€” tUSD
๐Ÿ”„ Swap AEQ โ†” tUSD
Exchange AEQ for tUSD (a simulated test-dollar) through the native liquidity pool. A 0.1% fee applies only to swaps โ€” ordinary AEQ transfers between people remain completely free.
๐Ÿ”’ 0.1% swap fee only ยท AEQ-to-AEQ transfers stay free ยท tUSD is a test currency with no real-world value
CONNECTED WALLET
โ€”
Your AEQโ€”
Your tUSDโ€”
Sell
Bal: โ€”
Receive
Bal: โ€”
๐Ÿ’ตtUSD
โ€”
// Connect your wallet to swap...
No tUSD yet?
Registered humans can claim test-tUSD once
๐Ÿ’ง Liquidity
Provide AEQ / tUSD liquidity to earn 30% of all swap fees, distributed daily.
AEQ / tUSD โ€” Pool Status
Spot Priceโ€”
AEQ Reserveโ€”
tUSD Reserveโ€”
Pool Composition
AEQ 50% 50% tUSD
Swap Fee0.1% ยท split 40/30/20/10
x ร— y = k โ€” Constant Product AMM
AEQ_reserve ร— tUSD_reserve = k (constant)
When you swap AEQ for tUSD, AEQ reserve grows and tUSD reserve shrinks โ€” their product always stays equal to k. Every swap moves the price. Larger swaps relative to pool size cause greater price impact. The 0.1% fee is taken from the input before the formula is applied, ensuring the pool earns on every trade.
Tokenomics Pool Addresses
Validators (40%)0x78c1...d2bA
Liquidity Providers (30%)0xc181...01EB
UBI Pool (20%)0x4A9b...054A
Treasury (10%)0x2273...3eb15
Provide Liquidity
Be the first to deposit โ€” your ratio sets the starting price.
Aequitas Index โ€” Real-Time Economic Equality Score
The Aequitas Index is derived from the Gini coefficient โ€” the international standard for measuring wealth inequality, adopted by the World Bank, OECD, and UN. Unlike a simple richest-vs-poorest ratio, the Gini coefficient captures the entire distribution across every verified human simultaneously, in a single number. 0 = perfect equality (every wallet holds the same AEQ). 100 = maximum concentration (one wallet holds all AEQ in existence). For context: Bitcoin Gini โ‰ˆ 0.85 (Index 85) ยท most unequal country on Earth (South Africa) โ‰ˆ 0.63 ยท Scandinavia โ‰ˆ 0.27. Aequitas targets Gini below 0.30 at scale โ€” comparable to the most equal developed economies โ€” enforced automatically by the wealth cap and redistribution pools, no governance vote required.
โ€”
Current Index
0 โ€” Perfect Equality50100 โ€” Max Inequality
โ€”
โ€”
Gini Coefficient
0 = equal ยท 1 = unequal
โ€”
Total Supply
Always = Humans ร— 1,000 AEQ
โ€”
Protocol Phase
Auto-advances by human count
โ€”
Verified Humans
Biometrically verified unique humans
What is the Gini Coefficient?
Developed by Italian statistician Corrado Gini (1912). It measures wealth distribution by comparing the actual balance distribution against a hypothetical perfectly equal baseline โ€” visualized as the Lorenz curve. The coefficient equals the ratio of the area between the Lorenz curve and the diagonal of equality to the total area below that diagonal. Scale: 0 means every person holds identical wealth. 1 means one person holds all wealth in existence. Used by the World Bank, OECD, and UN to compare countries. Reference values: Bitcoin โ‰ˆ 0.85 ยท South Africa (world record) โ‰ˆ 0.63 ยท Brazil โ‰ˆ 0.53 ยท USA โ‰ˆ 0.41 ยท Germany โ‰ˆ 0.31 ยท Scandinavia โ‰ˆ 0.27 ยท Aequitas long-term target: Gini below 0.30 โ€” comparable to Scandinavian countries, enforced by wealth cap (bootstrap: 5ร—โ†’25ร— per human).
How is the Aequitas Index calculated?
G = ฮฃ|xi โˆ’ xj| / (2 ร— nยฒ ร— xฬ„)
Aequitas Index = G ร— 100
All AEQ balances of verified humans are collected (xโ‚ through xโ‚™). The formula computes the mean absolute difference between every possible pair of balances, normalized by the number of people squared (nยฒ) and the mean balance (xฬ„). The result ranges 0โ€“1 and is multiplied by 100 to produce the Aequitas Index. Updated on-chain after every registration, every monthly demurrage run, every pool payout, and every wealth cap enforcement event โ€” via the keeper calling updateGini().
0 โ€“ 35
IDEAL
Healthier than most nations on Earth. Comparable to Scandinavia (0.27) and Germany (0.31). Wealth cap and demurrage successfully maintaining fair distribution.
35 โ€“ 50
GOOD
Comparable to the USA (0.41) or France (0.32). Within the range of most developed economies. Redistribution mechanisms actively flattening the curve.
50 โ€“ 70
WARNING
Higher than most European nations โ€” comparable to Brazil (0.53) or Russia. Protocol redistribution at elevated intensity.
70 โ€“ 100
CRITICAL
Worse than any country on Earth (South Africa record: 0.63). Approaching Bitcoin (0.85). Protocol at maximum intervention โ€” wealth cap and redistribution at full force.
Current Wealth Cap: โ€”AEQ ยท Multiplier: โ€” ยท Avg balance: โ€” AEQ
Why the Gini coefficient โ€” and not a simpler metric?
A simple "richest vs. poorest" ratio is easy to game and misses what happens in the middle: a network could have 10,000 people, a low min/max spread, yet 90% of all AEQ concentrated in 100 wallets. The Gini coefficient detects this โ€” a ratio does not. It captures the complete distribution across all verified humans in a single auditable number. Because Aequitas publishes this number on-chain (via updateGini), it is transparent, tamper-evident, and globally verifiable. The protocol uses it as the primary input signal for automatic phase transitions, wealth cap multiplier selection, and redistribution intensity โ€” creating a self-correcting economic system governed entirely by mathematics. No human, no committee, no foundation can override the index reading or the mechanisms it triggers.
Gini Index History
Recorded after each UBI distribution. Shows how equality evolves as the network grows. Lower is better โ€” target is Gini below 0.30.
Wealth Distribution Analysis
Lorenz Curve โ€” AEQ Distribution Across Humans
The Lorenz Curve visualizes how AEQ wealth is distributed among registered humans. The diagonal line = perfect equality โ€” every human holds the same share. The further the gold curve bows below the diagonal, the more unequal the distribution. Reference curves show inequality in real countries. Aequitas targets a Gini coefficient below 0.30 โ€” comparable to Scandinavia.
Aequitas Now
โ€”
Gini coefficient (0โ€“1)
Target
< 0.30
Like Scandinavia (~0.27)
Bitcoin Gini
~0.85
Most unequal currency ever
How to read this chart: The X-axis shows the population from poorest (left) to richest (right). The Y-axis shows cumulative AEQ wealth. A point at (50%, 50%) = the poorest half of humans hold exactly half the AEQ. In perfect equality, the curve IS the diagonal. Aequitas enforces equality through automatic wealth cap, demurrage (0.5%/month decay), and daily UBI redistribution โ€” keeping the curve close to the diagonal as the network grows.
Redistribution Pools โ€” Daily Economic Rebalancing
Every swap fee, demurrage charge, and wealth cap overflow flows automatically into four on-chain pools. No manual intervention, no admin key, no governance vote โ€” the protocol distributes everything through code. Each pool pays out once per 24 hours.
Universal Basic Income Pool
Accumulating โ€” next payout distributed equally to all verified humans in:
โ€”
current pool balance
0.0000 AEQ
Split equally among all verified humans ยท paid every 24 h ยท pool resets to zero after each payout ยท no minimum balance required to receive
How the UBI Pool fills up
20%
Swap Fees
Every AEQโ†”tUSD swap contributes 20% of its 0.1% fee here. More trading activity = faster pool fill.
variable
Demurrage
Idle AEQ (3+ months inactive) decays at 0.5%/month. The decayed amount enters the 40/30/20/10 split โ€” 20% goes to UBI.
variable
Wealth Cap Overflow
Wallets exceeding 25ร— average balance have the excess confiscated instantly. 20% flows to UBI immediately.
All four redistribution pools
VALIDATORS 40% of fees
0.0000 AEQ
โฐ Next: โ€”
Node operators who produce blocks, validate ZK registrations, and secure the Aequitas BlockDAG. Paid daily, proportional to block production.
LIQUIDITY PROVIDERS 30% of fees
0.0000 AEQ
โฐ Next: โ€”
Providers of AEQ/tUSD liquidity to the AMM pool receive 30% of all fees, proportional to their LP share. Deeper liquidity = lower price impact for every trader.
UBI POOL 20% of fees
see countdown above
โฐ countdown displayed above
20% of swap fees + demurrage + wealth cap overflow โ†’ divided equally among all verified humans every 24 hours. Even with zero trading, demurrage and wealth cap ensure the pool always fills.
TREASURY 10% of fees
0.0000 AEQ
Accumulates โ€” no timer
Protocol development, infrastructure, security audits, and future upgrades. Governed by the Aequitas team with full on-chain transparency.
Protocol Phases
The wealth cap uses a bootstrap multiplier during Phase 0: max(5,โ€ฏmin(N,โ€ฏ25))ร—โ€ฏaverage balance. With 1โ€“4 humans: 5ร— average. Each new human adds 1ร—. At 25+ humans: locks permanently at 25ร—. Phase 1+ maintains 25ร— fixed. All transitions trigger automatically by human count โ€” no governance vote, no admin key required.
Phase 0Bootstrap ยท <100 humans ยท Wealth Cap: max(5,min(N,25))ร— average ยท Slides 5ร—โ†’25ร— until 25th human ยท Currently active
Phase 1Growth ยท 100โ€“10,000 humans ยท Wealth Cap: 25ร— average balance
Phase 2Stability ยท 10,000โ€“1M humans ยท Wealth Cap: 25ร— average balance
Phase 3Maturity ยท 1M+ humans ยท Wealth Cap: 25ร— average balance
The Wealth Cap during Phase 0 (Bootstrap) uses the formula max(5,โ€ฏmin(N,โ€ฏ25))ร—โ€ฏaverage AEQ balance, where N = registered humans. With 1โ€“4 humans: cap = 5ร— average. Each new human adds 1ร—. At 25+ humans: the multiplier locks permanently at 25ร—. The cap always scales with the live average balance โ€” automatically adjusting as the network grows.
Demurrage โ€” Incentive to Circulate
Aequitas implements a demurrage mechanism inspired by historical complementary currencies like the Wรถrgl experiment (1932) and the Chiemgauer (2003). Idle AEQ balances slowly lose value to discourage hoarding and incentivize economic participation.
Decay Rate0.5% per month (continuous, not stepped)
Grace Period3 months of inactivity before decay begins
Clock ResetAny transfer, swap, or liquidity action resets the timer
Decayed AEQ goes toRedistribution pools (same 40/30/20/10 split)
Warning System14-day notice (once) + 7-day repeated reminder at login
Wealth Cap Multiplier โ€” Bootstrap Slider
Formula: max(5, min(N, 25))ร— average AEQ balance. Each new human slides the cap up by 1ร—, until the 25th human locks it at 25ร— permanently.
The Story of Aequitas — Why This Exists

The year is 2009. Satoshi Nakamoto releases Bitcoin. For the first time, value can transfer between any two people without a bank. A genuine revolution. But something goes wrong almost immediately.

Early miners accumulate millions of coins at near-zero cost. By 2021, the top 1% of Bitcoin addresses control over 90% of all Bitcoin. Bitcoin’s Gini coefficient exceeds 0.85 — higher than any country on Earth. The technology meant to democratize finance created the most extreme wealth concentration in history.

Aequitas — Latin for fairness and equity — was built to answer one question:
"What would a cryptocurrency look like if designed from first principles to be fair to every human being?"

The answer: Money exists because people exist. Therefore every person should have an equal share of money simply by virtue of being human.

Aequitas implements this mathematically. Every verified human receives exactly 1,000 AEQ — billionaire or subsistence farmer, no exceptions. Four redistribution mechanisms ensure inequality cannot accumulate indefinitely. The Gini coefficient is tracked on-chain in real time.

"Money exists because people exist. Nothing more, nothing less."

The Core Innovation
ZK Device-Key Proof
A cryptographic key is generated in your phone’s Hardware Secure Element, gated behind your existing screen-unlock. A Groth16 Zero-Knowledge Proof proves you hold that key — without it ever leaving your device or touching any server. This proves control of one device today, not yet biological uniqueness across devices.
No-Stake Blockchain
No mining. No staking. No proof-of-work. Block production is open to any node operator. Validators earn from the 40% fee pool — incentivized by fairness, not capital.
One Human = One Wallet = 1,000 AEQ
Supply formula: Total AEQ = Verified Humans x 1,000. No pre-mine. No admin keys. No governance vote can change this.
The 4 Redistribution Mechanisms
UBI Pool (20%)
Every 24 hours, the pool divides equally among all verified humans. Funded by swap fees + demurrage + wealth cap overflows.
Validators Pool (40%)
Node operators earn from all protocol fees. More nodes = more decentralization.
Liquidity Pool (30%)
Liquidity providers earn proportionally from all swap activity.
Treasury (10%)
Protocol development. No VC allocation. No founder bonus.
Phase Roadmap — The Path to Global Scale
ACTIVE NOW
Phase 0
Bootstrap
0 – 100 humans. Sliding wealth cap 5x → 25x. Foundation building.
Phase 1
Growth
100 – 10,000 humans. Fixed cap 25x. Open node joining.
Phase 2
Stability
10,000 – 1M humans. Min 10 nodes. Fully decentralized.
Phase 3
Maturity
1M+ humans. Global UBI at scale. Gini target <0.30.
Phase transitions are automatic — triggered by human count thresholds, enforced by the smart contract. No governance vote, no admin key.
Guardian System — Human Failsafe for Lost Wallets
What happens when someone is hospitalized, incarcerated, or dies? In most crypto systems, lost wallets mean lost coins forever. Aequitas has a three-layer inactivity recovery system.
What is a Guardian?
A Guardian is a trusted verified human you designate. They have exactly one power: confirming you are still alive. They cannot move funds, transfer AEQ, or access your wallet under any circumstances. Maximum 3 wards per Guardian prevents centralization of trust.
Inactivity Timeline
0 – 2 yearsNormal usage, no restrictions
Year 2Warning 1 — Guardian can respond
Year 2 +60dWarning 2 — escalating urgency
Year 2 +180dAEQ moved to escrow (2.5 years total, day 910 โ€” recoverable)
Year 4Escrow released to UBI Pool (day ~1460)
Key protections: 7-day timelock on Guardian assignment. No circular Guardian relationships. Guardian assignment is public and on-chain.
Sybil Resistance — Current State, Honestly
Why Device Keys?
Sybil resistance — preventing one person from registering multiple wallets — is the core unsolved problem of fair money distribution. Aequitas today uses device-bound Zero-Knowledge Proofs: mathematically proven control of a device key with zero personal data exposed. This is a step toward Sybil resistance, not yet a complete solution — see below.
How It Works
1. Device's secure hardware (Secure Enclave/StrongBox) generates a key, gated behind the screen-unlock you already use
2. keccak256(deviceKey) = deviceHash (never leaves the device)
3. Groth16 ZK proof: proves key possession without revealing the key
4. Nullifier system: registering the same device twice is mathematically impossible
Privacy guarantee: No biometric data is ever captured, processed, or leaves your device. The proof server receives only the ZK proof (200 bytes). The chain stores only a nullifier hash. Honest limitation: this proves device possession, not yet cross-device biological uniqueness โ€” the same person with two devices could register twice today. A real biological uniqueness check is planned post-beta work, not shipped yet.
The Vision — A Global Basic Income Protocol
"Imagine a world where every person on Earth — regardless of where they were born, what language they speak, or how much money their parents had — receives a guaranteed daily income simply for being human. Not as charity. As a mathematical right, enforced by code that no government or corporation can override."
8B
humans could register
<0.30
Gini target (Scandinavian level)
0
admin keys or governance votes
Active Nodes โ€” Current Network Topology
The Aequitas network currently operates on multiple geographically distributed nodes (live count above) โ€” one primary and any number of secondaries. All of them participate in block production, state synchronization, and API serving with active MERGE events. They communicate peer-to-peer via libp2p and synchronize block state via HTTP. The network is designed to support additional nodes โ€” any registered human can run a validator node by setting the required environment variables. Authorization is identity-based: your NODE_OPERATOR_WALLET must be a verified registered human, and it is permanently bound to your node's signing key the first time you connect โ€” one verified human runs exactly one validator. There is no shared secret to obtain from the operator for this.
Loadingโ€ฆ
Connect a New Node
To run your own Aequitas node, set PRIMARY_NODE_URL=https://aequitas.digital in your environment. Your node registers automatically, syncs the full chain state, and begins participating in block production.
LIBP2P MULTIADDRESS
/dns4/reseau.proxy.rlwy.net/tcp/41277/p2p/12D3KooWFuP5HtD1Xy9bj3ZdWL7eisWTx72V26hpGieMmqsGLV5R
Set in your environment: PRIMARY_NODE_URL=https://aequitas.digital
Technical Specifications
Chain ID1926 (0x786)
ArchitectureBlockDAG (Directed Acyclic Graph)
EVM CompatibleYes โ€” JSON-RPC /rpc ยท MetaMask
Block Timeโ€”
ConsensusBlockDAG + Proof of Humanity
P2P Protocollibp2p (Go implementation)
ZKP SystemGroth16 / snarkjs / circom
Elliptic CurveBN128 (alt-bn128)
Bio Hashkeccak256 (post-quantum safe)
StoragePostgreSQL (persistent)
LanguageGo 1.24 (chain) ยท Node.js (proof server)
Source CodeGitHub โ€” Open Source
MetaMask Configuration
Add Aequitas Chain to MetaMask to view your AEQ balance, send transactions, and interact with the V7 contract directly from your browser or mobile wallet.
Network NameAequitas Chain
RPC URLhttps://aequitas.digital/rpc
Chain ID1926
Currency SymbolAEQ
Decimals18
๐Ÿ“ฑ MetaMask Mobile: if AEQ shows 0 after adding, delete the network and re-add it using the button above.
Core Technology โ—† New in 2026
GHOSTDAG + KnightDAG
This is not a 0815 blockchain with one block at a time. Aequitas runs a real BlockDAG, ordered by GHOSTDAG โ€” and since 2026, secured by KnightDAG, Aequitas's own adaptive evolution of it. This is the mechanism every balance, every UBI payout, and every wealth-cap enforcement ultimately depends on for a single, agreed-upon history.
Why a normal blockchain isn't enough
A classic blockchain is a single chain: one block at a time, one winner per round, everyone else's work thrown away as an "orphan." That caps how fast a network can safely produce blocks โ€” go too fast and honest validators keep accidentally competing with each other, wasting most of their work.

Aequitas runs on a BlockDAG instead of a single chain: validators can produce blocks concurrently, and instead of discarding the "losing" ones, the protocol merges them into a shared structure โ€” every honest block counts toward the network's history. The hard problem this creates: if blocks can arrive in a different order at every node, how does everyone end up agreeing on the exact same final history and account balances? That's what the algorithms below solve.
Traditional blockchain โ€” wasted work
โœ•
Two validators produce at once โ†’ one wins, one is discarded โ€” wasted work, and it caps how fast the network can safely go.
Aequitas BlockDAG โ€” nothing wasted
Both blocks are kept โ€” GHOSTDAG merges the concurrent one in and still counts it toward the canonical order.
GHOSTDAG (2018) โ€” one true order out of a tangled graph
GHOSTDAG (Sompolinsky & Zohar) is the algorithm that turns Aequitas's BlockDAG into one canonical, agreed-upon order. Every node walks the same graph and computes, for every block, a deterministic "blue score": it picks the strongest parent chain (the "selected parent"), then classifies every other concurrently-produced block it merges as "blue" (counted, honest) or "red" (excluded โ€” too many other concurrent blocks around it to trust), bounded by a parameter K, the maximum concurrency the network tolerates as honest.

Because every node runs the exact same deterministic rule over the exact same block graph, they all arrive at the identical final order โ€” height, then blue score, then hash โ€” no matter which order blocks actually arrived over the network. You can see this live in the DAG View in the Explorer tab above: the purple line is the selected-parent chain, the fainter dots are merged (not discarded) concurrent blocks.
โ—† KNIGHTDAG (2026) โ€” Aequitas's own upgrade beyond fixed-K GHOSTDAG
Classic GHOSTDAG fixes K to a single worst-case value for an entire validator epoch โ€” big enough to stay safe even during the busiest conceivable burst of concurrent block production, whether the network actually needs that much slack most of the time or not. That's the one piece of the algorithm that was still a fixed, hand-picked assumption rather than something the network figures out for itself.

KnightDAG closes that gap, inspired by DAGKNIGHT (Sompolinsky & Sutton, 2022) โ€” Kaspa's own parameterless successor to GHOSTDAG. Instead of trusting one fixed epoch-wide K, every node deterministically searches, for every single new block, for the smallest K whose blue set still covers a strict majority of that block's own merge set โ€” the actual concurrency happening right around it, not a hypothetical worst case. When the network is converging cleanly, K drops automatically and confirmation gets tighter and faster; under a genuine burst, classification gracefully falls back to exactly the classic fixed-K result โ€” never less safe than before, only ever more precise. Every honest node runs the identical inference over the identical graph, so the network-wide agreement GHOSTDAG guarantees is fully preserved โ€” KnightDAG is a strict upgrade, not a different set of rules.
GHOSTDAG (2018): one fixed K per validator epoch โ€” a single worst-case value for the whole network
KnightDAG (2026): K inferred fresh for every block, from the DAG structure actually around it
Active from block 1,520,000 onward ยท falls back to classic GHOSTDAG whenever no smaller K reaches a majority
Fully backward-compatible: blocks below the activation height replay exactly as every node already agreed โ€” nothing about the settled past changes
Choose Your Path
👤
I am a Human
I want to register, receive 1,000 AEQ, and join the basic income network.
1. Download the Aequitas Android App
2. Unlock with your device's screen-lock (fingerprint/face/PIN)
3. Connect MetaMask
4. Receive 1,000 AEQ instantly
🖥️
I am a Node Operator
I want to run a full node, participate in block production, and earn from the 40% validator pool.
1. Register as a human (required)
2. Set PRIMARY_NODE_URL=https://aequitas.digital
3. Deploy on Railway/Contabo/VPS
4. Earn daily from validator pool
💻
I am a Developer
I want to build on Aequitas, integrate the API, or contribute to the protocol.
1. EVM-compatible JSON-RPC
2. Chain ID: 1926 · RPC: /rpc
3. OpenAPI: /api/* endpoints
4. Metrics: /metrics (Prometheus)
AEQ Token Flow Diagram
HUMAN registers +1,000 AEQ minted AEQ ACTIVITY Swap fees (0.1%) Demurrage (0.5%/mo) Wealth cap overflow Inactive escrow REDISTRIBUTION ● UBI Pool 20% ● Validators 40% ● Liquidity LP 30% ● Treasury 10% paid out daily automatic on-chain daily UBI returns to all verified humans
Network Topology — Current State
Loading topologyโ€ฆ
Run Your Own Node โ€” Help Secure the Network
Registered humans can run an Aequitas validator node โ€” no stake, no application required, but NODE_OPERATOR_WALLET must be a registered Aequitas human (this is a protocol security requirement). Nodes participate in block production, validate the human registry, and synchronize the BlockDAG. Node operators earn a share of protocol fees via the Validators Pool (40% of all protocol fees, distributed daily). The more nodes that run, the more decentralized and resilient the network becomes.
๐Ÿ“„ Node Operator Guide (PDF) ๐Ÿ™ View Source on GitHub ๐Ÿ”— Generate Node Binding Signature
AEQUITAS NODE OPERATOR GUIDE v1.0 ยท June 2026
Complete step-by-step guide · No prior blockchain experience required · Estimated time: 20–30 min
What is an Aequitas Node?
An Aequitas node is a program that runs in the cloud and participates in the Aequitas network. It keeps a copy of the entire blockchain, validates who is a registered human, and produces new blocks (like new pages in the global ledger). The more nodes exist, the more decentralized and resilient the network becomes. As a reward for running a node, you receive a daily share of all protocol fees — automatically, with no further action required on your part.
Before You Start — What You Need
1.An Aequitas account: You must first be registered as a human on Aequitas. Install the Android app, complete biometric registration, and note your wallet address. Without this, you cannot receive validator rewards.
2.A GitHub account (free): Go to github.com and create a free account. You need this to copy (fork) the Aequitas code so Railway can deploy it.
3.A Railway account (free): Go to railway.app and sign in with GitHub. Railway is a hosting platform that runs your node in the cloud — no server or command line required.
4.Node signing key (RELAYER_PRIVATE_KEY): Your node needs a dedicated Ethereum wallet to sign on-chain registrations. This can be any MetaMask wallet. Export its private key: MetaMask → Account Details → Show Private Key → enter password → copy. Keep strictly private. IMPORTANT: To receive validator rewards you also need NODE_OPERATOR_WALLET set to your registered Aequitas human wallet (the one verified with the Aequitas app). Only verified humans can earn validator rewards.
5.10–30 minutes of your time. Railway does most of the work automatically.
Step 1 — Fork the Aequitas Repository on GitHub
What is a fork? A fork is your own personal copy of the Aequitas code on GitHub. Railway deploys directly from your fork, so you need one first.
a) Open github.com/hanoi96international-gif/Aequitas in your browser
b) Click the Fork button in the top-right corner of the page
c) Click Create fork — GitHub creates a copy under your own account (e.g. github.com/YOUR-NAME/Aequitas)
d) Done — you now have your own copy of the Aequitas node code
Step 2 — Create a PostgreSQL Database
What is a database? Your node needs permanent storage for all block data and human registrations. Without it, your node loses all data on every restart. PostgreSQL is the storage system Aequitas uses. Each node must have its own dedicated database โ€” never share one database between two nodes.
Option A — Railway (easiest, recommended for beginners)
a) Go to railway.app and sign in with your GitHub account
b) Click New Project
c) Inside your new project, click + NewDatabaseAdd PostgreSQL
d) Railway creates and manages your database automatically. DATABASE_URL is injected into your node service for free — no manual configuration needed.
Option B — VPS / own server (Contabo, Hetzner, DigitalOcean)
Important: Install PostgreSQL directly on your VPS โ€” do not connect to Railway's PostgreSQL from a different VPS. Both nodes would share one database โ†’ state conflicts and your data could be overwritten.
# 1. Install PostgreSQL (Ubuntu / Debian)
sudo apt update && sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable --now postgresql

# 2. Create database and user (run as root or with sudo)
sudo -u postgres psql -c "CREATE USER aequitas WITH PASSWORD 'CHOOSE_A_STRONG_PASSWORD';"
sudo -u postgres psql -c "CREATE DATABASE aequitas OWNER aequitas;"

# 3. Allow connections from Docker containers (Docker bridge: 172.17.0.0/16)
PG_CONF=$(sudo -u postgres psql -t -c "SHOW hba_file;" | tr -d ' ')
echo "host aequitas aequitas 172.17.0.0/16 md5" | sudo tee -a $PG_CONF
sudo -u postgres psql -c "ALTER SYSTEM SET listen_addresses = '*';"
sudo systemctl restart postgresql

# 4. Test (should print one row)
psql "postgres://aequitas:CHOOSE_A_STRONG_PASSWORD@localhost:5432/aequitas" -c "SELECT 1;"

# Your DATABASE_URL for the docker run command below:
# postgres://aequitas:CHOOSE_A_STRONG_PASSWORD@172.17.0.1:5432/aequitas
# (172.17.0.1 = Docker bridge gateway, how containers reach the VPS host)
Firewall: PostgreSQL only needs to be reachable from within the VPS itself. Do not open port 5432 to the internet. ufw deny 5432 (or leave it closed โ€” most VPS firewalls block it by default).
Step 3 — Understand the Environment Variables
Environment variables are configuration settings you pass to your node before it starts. Think of them like a settings file. Collect these values before deploying — you will enter them in Step 4.
Security Warning: Your RELAYER_PRIVATE_KEY is like a master password. Anyone who has it controls your node wallet. Never share it publicly, never paste it in chat or email. Use a separate MetaMask wallet for RELAYER_PRIVATE_KEY (signing). NODE_OPERATOR_WALLET (for rewards) must be your registered Aequitas human wallet.
Variable Required? What to enter and where to find it
DATABASE_URL YES Your PostgreSQL connection string. On Railway: auto-injected when PostgreSQL is in the same project. Format: postgres://user:pass@host:5432/dbname
RELAYER_PRIVATE_KEY YES The private key (starts with 0x, 66 characters total) of your dedicated node wallet. In MetaMask: click account icon → Account Details → Show Private Key → enter your MetaMask password → copy the key
RELAYER_ADDRESS Recommended The wallet address (starts with 0x, 42 characters) matching RELAYER_PRIVATE_KEY. This is the public address — safe to share. Copy it from MetaMask. A fallback exists in the node code, but setting this explicitly prevents startup errors.
NODE_OPERATOR_WALLET For rewards Your Aequitas human wallet address — the one you registered with via the Android app. This wallet receives your daily validator rewards (40% of all protocol fees). Must be a registered human on Aequitas. Find it in the app under your profile.
PEER_SECRET No No longer required. Validator authorization is now identity-based: a verified NODE_OPERATOR_WALLET plus the binding signature below is enough โ€” there is nothing to obtain from the network operator for this step.
NODE_OPERATOR_BINDING_SIGNATURE For multi-node Proves you own NODE_OPERATOR_WALLET โ€” without it, anyone could claim your wallet as their own node's operator and permanently lock you out of it. Generate it at /node-binding: connect the SAME wallet you registered with, it signs a short message naming your node's signing address, and shows you this value to copy here. To move your validator to a new machine later, just generate a new signature there for the new signing address โ€” no need to contact anyone.
SELF_URL YES Your node's own public URL (e.g. https://my-node.up.railway.app or http://YOUR-IP:8080 on VPS). Without it the node starts in isolated mode โ€” it cannot register with peers, cannot propagate blocks, and other nodes cannot reach it. On Railway: Settings → Networking → Public Networking.
PRIMARY_NODE_URL For multi-node Set to: https://aequitas.digital — the primary node your node registers with for automatic peer discovery. On startup your node posts its URL + signing address to the primary, gets the full peer list back, and joins the network automatically. No manual PEER_NODES list needed.
PORT No Leave unset on Railway — Railway sets this automatically. Default is 8080.
NODE_KEY No Base64-encoded libp2p private key for stable P2P identity. If not set: auto-generated on first start and printed to stderr. Copy the base64 string from SAVE THIS AS NODE_KEY ENVIRONMENT VAR: <base64> and paste it here to keep a stable peer ID across restarts.
IS_PRIMARY_NODE No Removed โ€” does nothing. Leave unset.
DISTRIBUTION_ENABLED No Leave unset for normal operation โ€” all nodes are eligible to trigger the daily pool distribution by default. Three-layer dedup (cross-node last_ubi_at check + intra-node CAS lock + replay pre-pass) prevents double-credit even when multiple nodes fire at the same time. Set to false only if you explicitly want to opt this node out of running distributions (e.g. a resource-constrained replica).
BOOTSTRAP_SNAPSHOT_URL Multi-node Set to https://aequitas.digital/api/snapshot on a fresh node. If the local DB has 0 humans at startup, the node automatically downloads and imports the full state from this URL โ€” fixing StateRoot mismatches immediately. Also set BOOTSTRAP_SIGNER. SNAPSHOT_TOKEN is optional โ€” only needed if you want the full export instead of the public bootstrap tier.
BOOTSTRAP_SIGNER Multi-node Ethereum signing address of the primary node. Required when BOOTSTRAP_SNAPSHOT_URL is set. Get it from https://aequitas.digital/api/status โ†’ signing_address field. Prevents importing a tampered snapshot.
SNAPSHOT_TOKEN No Optional — no longer required to bootstrap a new node. Without a token, BOOTSTRAP_SNAPSHOT_URL still downloads everything a node needs to run correctly (accounts, balances, pool, config). A token only unlocks the FULL export (nullifier→wallet linkage + bio_registrations), used for authoritative resync/recovery of an already-diverged node — get it from the network operator only if you actually need that.
RESYNC_FROM_SNAPSHOT No Recovery tool for a node KNOWN to have diverged โ€” unlike BOOTSTRAP_SNAPSHOT_URL (which only merges into an empty DB), this REPLACES local accounts, pool, nullifiers, and chain_config with exactly what the snapshot contains, discarding anything local that doesn't match. Set to true together with BOOTSTRAP_SNAPSHOT_URL and BOOTSTRAP_SIGNER (mandatory here, no unsigned fallback), restart once, then remove it. Combine with RESET_DB_STATE=true for the cleanest result.
AUTO_HEAL_ON_DIVERGENCE Strongly recommended Important for network security and speed: if your node's chain ever diverges from the network (e.g. after downtime or a bad restart), set this to true together with PRIMARY_NODE_URL, BOOTSTRAP_SNAPSHOT_URL, and BOOTSTRAP_SIGNER โ€” your node then compares itself against PRIMARY_NODE_URL every few minutes and resyncs itself automatically, no manual RESYNC_FROM_SNAPSHOT needed. A node that stays diverged and keeps broadcasting its own blocks can slow down or destabilize the network for every other operator (confirmed live: this is what caused a network-wide slowdown on 2026-07-02).
SNAPSHOT_RESTRICT_TO_PRIVATE_NETWORK No Opt-in: when set to true, /api/snapshot only answers requests from private/loopback addresses instead of any caller with the right token. Off by default because this project's bootstrap/resync mechanism relies on cross-cloud-provider access (Railway โ†” VPS โ†” Railway); only enable this if every node you run shares a private network.
RESET_STATE No DANGEROUS: Setting this to true wipes your entire database on every restart. Development use only. Never in production.
RESET_DB_STATE No DANGEROUS, one-time use: truncates bootstrap-related tables (including evm_upgrade_relationship_slots) so a node can re-sync clean from genesis. Only takes effect within the first few minutes after process start to avoid repeated wipes on a crash-restart loop, and also requires ALLOW_DESTRUCTIVE_MAINTENANCE (see below). On success the process exits immediately instead of continuing to start — remove this variable (and ALLOW_DESTRUCTIVE_MAINTENANCE) and redeploy to bring the node back up.
CLEAR_REGISTRATIONS No DANGEROUS, one-time use: wipes all human registration data (chain_accounts' human flags, nullifiers, bio_hashes, liquidity_pool, evm_upgrade_relationship_slots) so everyone can re-register. Same 5–minute-from-startup guard as RESET_DB_STATE, plus also requires CLEAR_REGISTRATIONS_CONFIRM (see below) and ALLOW_DESTRUCTIVE_MAINTENANCE. On success the process exits immediately instead of continuing to start — remove all three variables and redeploy to bring the node back up.
CLEAR_REGISTRATIONS_CONFIRM No Required alongside CLEAR_REGISTRATIONS=true on both this service and the proof-server — must be set to the exact literal string I_UNDERSTAND_THIS_DELETES_ALL_REGISTRATIONS. Without it, CLEAR_REGISTRATIONS=true alone is refused. Exists so a single boolean set by accident (copy-pasted env file, typo elsewhere) can't wipe every human's registration on the next restart.
ALLOW_DESTRUCTIVE_MAINTENANCE No Required alongside RESET_DB_STATE=true or CLEAR_REGISTRATIONS=true — must be set to true. Without it, both are refused even with their other confirmation values correct. One more explicit gate so a wrong Railway/Render service selection or a stray copy-pasted env file can't trigger either destructive path alone. Visible at /api/health/combined (destructive_flags_set) whenever any destructive flag is currently set, even if it was refused.
BOOTSTRAP_P2P_ADDR No Overrides the built-in libp2p bootstrap multiaddress (see Step 7 below). Only needed if the network operator's Railway TCP-proxy address changes again in the future — set this instead of waiting for a code deploy.
Step 4 — Deploy on Railway (Recommended)
Railway is the easiest way to run your node — no server setup, no command line required. The free tier covers all requirements. Total time: about 10–15 minutes.
1In your Railway project (from Step 2), click + NewGitHub Repo
2Select your Aequitas fork (from Step 1) — Railway detects the Dockerfile automatically
3Click Deploy Now — a first build starts (may fail without env vars, that is normal)
4Click your Aequitas service → Variables → add each variable:
# Railway auto-sets DATABASE_URL if PostgreSQL is in the same project
RELAYER_PRIVATE_KEY = 0xYOUR_PRIVATE_KEY
RELAYER_ADDRESS = 0xYOUR_NODE_WALLET_ADDRESS
NODE_OPERATOR_WALLET = 0xYOUR_HUMAN_WALLET
NODE_OPERATOR_BINDING_SIGNATURE = generate-at-/node-binding
SELF_URL = https://YOUR-RAILWAY-DOMAIN.up.railway.app
PRIMARY_NODE_URL = https://aequitas.digital
AUTO_HEAL_ON_DIVERGENCE = true # strongly recommended: auto-resyncs if your chain ever diverges
5Click Deploy (or save variables to trigger auto-redeploy). Build takes ~3 minutes while Go compiles the node binary.
6Watch Deploy Logs. Success looks like: Aequitas Node Running V and [NODE] Registered node operator wallet: 0x...
7Go to SettingsNetworkingGenerate Domain to get your public URL
8Open https://YOUR-URL/api/status in your browser — you should see JSON with height climbing steadily (check block_time in the same response for the current cadence)
Step 4b — Alternative: Deploy on a VPS with Docker
For your own server (Contabo, Hetzner, DigitalOcean). Requires Docker installed on the VPS and a local PostgreSQL database set up via Step 2 Option B above. Do not connect to Railway's PostgreSQL from a VPS โ€” each node must have its own separate database. NODE_OPERATOR_WALLET must be a registered Aequitas human wallet.
# 1. Install Docker (if not already installed)
curl -fsSL https://get.docker.com | sh

# 2. Clone and build the node (~3 min Go compile)
git clone https://github.com/hanoi96international-gif/Aequitas && cd Aequitas
docker build -t aequitas-node .

# 3. First start (NODE_KEY will be printed in logs โ€” see step 4)
# DATABASE_URL uses 172.17.0.1 = Docker bridge gateway โ†’ host PostgreSQL
# (set up PostgreSQL first via Step 2 Option B above)
docker run -d --name aequitas-node --restart unless-stopped \
  -e DATABASE_URL="postgres://aequitas:YOUR_DB_PASSWORD@172.17.0.1:5432/aequitas" \
  -e RELAYER_PRIVATE_KEY="0xYOUR_PRIVATE_KEY" \
  -e RELAYER_ADDRESS="0xYOUR_NODE_SIGNING_ADDRESS" \
  -e NODE_OPERATOR_WALLET="0xYOUR_REGISTERED_HUMAN_WALLET" \
  -e NODE_OPERATOR_BINDING_SIGNATURE="generate-at-/node-binding" \
  -e SELF_URL="http://YOUR-SERVER-IP:8080" \
  -e PRIMARY_NODE_URL="https://aequitas.digital" \
  -e BOOTSTRAP_SNAPSHOT_URL="https://aequitas.digital/api/snapshot" \
  -e BOOTSTRAP_SIGNER="0x92cbedec9d348b4762cb9af99500ee6139c5b671" \
  -e AUTO_HEAL_ON_DIVERGENCE="true" # strongly recommended \
  -p 8080:8080 -p 4001:4001 aequitas-node

# 4. Copy NODE_KEY from logs (do this once โ€” gives your node a stable P2P identity)
docker logs aequitas-node 2>&1 | grep "SAVE THIS AS NODE_KEY"

# 5. Stop, add NODE_KEY, restart permanently:
docker stop aequitas-node && docker rm aequitas-node
docker run -d --name aequitas-node --restart unless-stopped \
  -e DATABASE_URL="postgres://aequitas:YOUR_DB_PASSWORD@172.17.0.1:5432/aequitas" \
  -e RELAYER_PRIVATE_KEY="0xYOUR_PRIVATE_KEY" \
  -e RELAYER_ADDRESS="0xYOUR_NODE_SIGNING_ADDRESS" \
  -e NODE_OPERATOR_WALLET="0xYOUR_REGISTERED_HUMAN_WALLET" \
  -e NODE_OPERATOR_BINDING_SIGNATURE="generate-at-/node-binding" \
  -e NODE_KEY="base64-from-step-4" \
  -e SELF_URL="http://YOUR-SERVER-IP:8080" \
  -e PRIMARY_NODE_URL="https://aequitas.digital" \
  -e BOOTSTRAP_SNAPSHOT_URL="https://aequitas.digital/api/snapshot" \
  -e BOOTSTRAP_SIGNER="0x92cbedec9d348b4762cb9af99500ee6139c5b671" \
  -e AUTO_HEAL_ON_DIVERGENCE="true" # strongly recommended \
  -p 8080:8080 -p 4001:4001 aequitas-node
Tip: Save all vars in /root/.aequitas.env (chmod 600) and use --env-file /root/.aequitas.env instead of listing each -e โ€” keeps secrets out of shell history and simplifies updates.
Port requirements: TCP 8080 must be open inbound (API + RPC). TCP 4001 is optional (P2P โ€” enables direct node-to-node connections). If P2P is firewalled, HTTP sync still works. On Linux: ufw allow 8080/tcp
Step 5 — Verify Your Node is Running
Open these URLs in your browser. Replace YOUR-NODE-URL with your actual Railway domain or server address.
https://YOUR-NODE-URL/api/status
 → Expected: {"height": 1234, "total_humans": N, "aequitas_index": N}

https://YOUR-NODE-URL/rpc
 → Expected: {"jsonrpc":"2.0","error":"method not specified"} — this confirms RPC is alive
The block height should match the primary node within 1–2 blocks within seconds of startup. If it stays at 0, check that PRIMARY_NODE_URL=https://aequitas.digital is set and reachable.
Step 5b — Link Wallet for Rewards
โœ“ Usually automatic โ€” most users skip this step
When your node starts, it automatically connects to the network and registers for block production. If you set NODE_OPERATOR_WALLET in your environment variables (Step 4), your wallet is already linked and you will receive validator rewards automatically.

You only need Step 5b if:
  • Your node logs show [NODE] validator key not authorized
  • You want to change your reward wallet without restarting the node
  • You are running a Docker/VPS node and auto-registration failed
Check if already registered: Look in your node logs for [PEERS] Registered with primary node. If you see it โ€” you're done, no manual step needed.
Manual Registration (if auto-registration failed)
Enter your node's RELAYER_ADDRESS (the signing address โ€” shown in your node logs as [NODE] Signing address: 0x... on startup) and click Register. MetaMask will ask you to sign once to prove you own your human wallet.
โ„น The signature is fetched automatically from your node โ€” you only need to provide your RELAYER_ADDRESS above and sign with MetaMask below.
Step 6 — Connect MetaMask to Your Node (Optional)
You can use your own node as a custom RPC in MetaMask so your wallet connects through your node instead of the shared public node. In MetaMask: click the network dropdown at the top → Add networkAdd a network manually, then enter:
Network NameAequitas Chain
RPC URLhttps://YOUR-NODE-URL/rpc
Chain ID1926
Currency SymbolAEQ
Decimals18
Block Explorerhttps://aequitas.digital
Step 7 — Earning Validator Rewards
The Validators Pool collects 40% of all protocol fees (swap fees, demurrage, wealth cap overflow). Every day at 20:00 Berlin time (CEST/CET, handles DST automatically) the primary node distributes the pool balance to all registered node operator wallets proportionally. The more consistently your node runs, the larger your share.
1.Make sure you are registered as a human on Aequitas. If not: install the Android app and complete biometric registration first. You will receive a wallet address and 1,000 AEQ.
2.Set NODE_OPERATOR_WALLET = your Aequitas human wallet address in your Railway Variables
3.Save — Railway redeploys automatically. On Docker: docker restart aequitas-node
4.In your node logs, confirm: [NODE] Registered node operator wallet: 0x...
5.Rewards are distributed automatically every day at 20:00 Berlin time (CEST/CET). Just keep your node running — no further action needed.
Troubleshooting
Symptom Likely cause Solution
Block height stays at 0 PRIMARY_NODE_URL not set or wrong Set PRIMARY_NODE_URL=https://aequitas.digital and redeploy. Also set SELF_URL to your own node's public URL.
DATABASE_URL error on startup Wrong connection string or PostgreSQL unreachable Check format: postgres://user:pass@host:5432/dbname — make sure PostgreSQL is running and accessible
"no code at address" in logs V7 contract not yet deployed in this EVM Normal on first start when RELAYER_ADDRESS is set — node auto-deploys V7. Wait a few seconds and check again.
"NODE_OPERATOR_WALLET not set" in logs Missing environment variable Add NODE_OPERATOR_WALLET=0xYOUR_HUMAN_WALLET to your variables. Node runs fine without it but you won't receive rewards.
Railway shows "Application error" Build or startup failure Check Deploy Logs in Railway for the error message. Most common cause: DATABASE_URL missing or RELAYER_PRIVATE_KEY in wrong format (must start with 0x).
Port 8080 not reachable (Docker) Firewall or cloud provider config Open TCP port 8080 inbound in your firewall or cloud security group settings.
Docker build fails with module error No internet access during build Docker build needs outbound internet to download Go modules. Railway handles this automatically.
โš  P2P bootstrap unreachable (HTTP sync still works) libp2p port 4001 firewalled (very common) Not critical โ€” HTTP block sync is the primary mechanism and runs automatically. Add -p 4001:4001 and ufw allow 4001/tcp to enable P2P as well.
Bootstrap snapshot failed / StateRoot mismatch SNAPSHOT_TOKEN not set on primary, or BOOTSTRAP_SIGNER wrong Set BOOTSTRAP_SNAPSHOT_URL=https://aequitas.digital/api/snapshot, BOOTSTRAP_SIGNER=0x92cbedec9d348b4762cb9af99500ee6139c5b671, and SNAPSHOT_TOKEN (from network operator). Restart โ€” node imports state automatically if DB is empty.
Node not in block explorer / no MERGE blocks Port 8080 not reachable from outside OR Step 5b not done 1) Open port 8080 inbound (ufw allow 8080/tcp). 2) Set SELF_URL=http://YOUR-IP:8080. 3) Complete Step 5b to register your signing key. Then the primary node syncs your blocks and MERGE events appear.
MetaMask shows 0 AEQ or wrong balance after registration Stale network config in MetaMask (cached old RPC data) MetaMask โ†’ Settings โ†’ Networks โ†’ delete all "Aequitas Chain" entries โ†’ re-add via the "+ ADD AEQUITAS NETWORK" button on this website. Balance will update immediately.
NODE_KEY generating new key on every restart NODE_KEY env var not set On first start, look for SAVE THIS AS NODE_KEY ENVIRONMENT VAR: <base64> in logs. Copy that value and add it as NODE_KEY environment variable. Restart once โ€” P2P identity is now stable across all future restarts.
Questions / Feedback
Open an issue on GitHub or reach the Aequitas team via the repository. Feedback on node setup, performance, and documentation gaps is especially welcome. Download this guide as a PDF in your selected language using the button above.
What is AequitasV7?
AequitasV7 is the central smart contract of the Aequitas protocol. "V7" refers to the 7th major version of the fairness contract โ€” the result of iterative design refinement focused on mathematical correctness, gas efficiency, and attack resistance. It is deployed on Aequitas Chain (Chain ID 1926) and handles every aspect of the protocol: human registration, ZK proof verification, balance management, wealth cap enforcement, UBI distribution, swap fees, and all governance parameters. No admin can upgrade or replace the contract โ€” it is the immutable law of the Aequitas economy. The six mechanisms below do not work in isolation. They form a self-reinforcing system: demurrage feeds the UBI pool, wealth cap overflows add to UBI, swap fees distribute to all four pools simultaneously. Every economic activity strengthens redistribution.
6
Protocol Mechanisms
0
Admin Keys
immutable
Contract Code
Contract & Network Addresses
AequitasV7 is the single source of truth for the entire Aequitas economy. Every AEQ balance, every human registration, every UBI payout, and every wealth cap enforcement is governed by this one immutable contract โ€” deployed on Aequitas Chain, a custom EVM-compatible blockchain running a BlockDAG consensus engine. There is no admin key, no upgrade proxy, no governance vote that can change a single line of its logic. The code that runs today is the code that will run in ten years.

The BioVerifier contract receives Groth16 zero-knowledge proofs generated entirely on the user's Android device. It verifies mathematically on-chain in ~10 ms that a new registrant is a unique living human โ€” without ever learning their name, identity, or biometric data. This is what makes gasless, investment-free registration possible: the proof is the only thing that ever leaves the device.

Together, these two contracts make possible something that has never existed in any currency system in history: a money supply whose rules โ€” who gets it, how much exists, how it redistributes โ€” cannot be altered by any person, company, or government. Ever.
Chain: Aequitas Chain (Chain ID: 1926 ยท 0x786)
RPC: https://aequitas.digital/rpc

BioVerifier (Groth16 on-chain verifier): 0xc369D27b49DE017d113Bbcb9A1884a9e745B6BE2
AequitasV7 (Main contract): 0x20D271028f32577FCd07b4583A8e0E4eBBdB4F78
1. PROOF OF ALIVE โ€” Inactive Balance Recovery

What happens to AEQ when people die or become permanently incapacitated? In Bitcoin and most cryptocurrencies, lost wallets mean permanently lost supply โ€” millions of BTC are estimated to be inaccessible forever. Aequitas solves this through a multi-stage inactivity recovery system: if a wallet shows no activity for an extended period, its balance is gradually returned to the community through the UBI pool, ensuring the total effective supply remains meaningful.

Year 0โ€“2: Normal usage โ€” no restrictions
Year 2: Warning 1 sent โ€” Guardian can respond on behalf
Year 2+60d: Warning 2 โ€” escalating urgency
Year 2+120d: Warning 3 โ€” final notice
Year 2+180d: AEQ moved to personal ESCROW (still recoverable)
Year 4: If still inactive โ€” ESCROW released to UBI Pool
2. GUARDIAN SYSTEM โ€” Human Failsafe

What if someone is hospitalized, incarcerated, or otherwise unable to access their device for months? The Guardian system allows a trusted person โ€” another verified human โ€” to confirm that the wallet owner is still alive, preventing their AEQ from being moved to escrow. The Guardian has strictly zero financial access: they can only call a single function that resets the inactivity clock. They cannot move, spend, or access any funds under any circumstances.

1 Guardian per human ยท must be a verified human on Aequitas
Guardian can ONLY call confirmAlive() โ€” zero transaction rights
Guardian CANNOT move funds, transfer AEQ, or access the wallet
Maximum 3 wards per Guardian (prevents centralization of trust)
7-day timelock on Guardian assignment (prevents forced assignment)
No circular guardian relationships allowed
3. DEMURRAGE โ€” Anti-Hoarding Mechanism

Demurrage is a holding cost on money โ€” a negative interest rate that makes hoarding expensive and circulation attractive. It has historical precedent: the Wรถrgl experiment (Austria, 1932) used a demurrage currency and reduced local unemployment by 25% within one year. The Central Bank of Austria shut it down precisely because it worked too well and threatened the banking monopoly. The Chiemgauer (Germany, 2003) operates on the same principle and has circulated successfully for over 20 years. Aequitas implements continuous demurrage at 0.5% per month, applied only after a 3-month grace period of inactivity.

Rate: 0.5% per month after 3 months of inactivity (continuous, not stepped)
Clock resets automatically on any transfer, swap, or liquidity action
Decayed AEQ is redistributed to the four pools โ€” never burned
14-day warning shown once ยท 7-day warning repeated on each active session
4. WEALTH CAP โ€” Mathematical Fairness Enforcement
Bootstrap cap: max(5,min(N,25))ร— current average AEQ balance
1โ€“4 humans: 5ร— ยท grows +1ร— per new human ยท 25+ humans: 25ร— permanently
Applies to ALL addresses except the 4 protocol pool addresses
Excess AEQ instantly redistributed ยท No manual intervention required
5. UNIVERSAL BASIC INCOME โ€” Daily Redistribution
Sources of UBI Pool income:
ยท 20% of all swap fees from the AEQโ†”tUSD AMM pool
ยท Overflow from wealth cap enforcement
ยท Demurrage charges from inactive accounts
ยท Inactive escrow released after 4 years

Distribution: Every 24 hours, the entire UBI pool balance is divided equally among all registered verified humans. The pool resets to zero and begins filling again immediately from ongoing protocol activity.
6. NO ALGORITHMIC INFLATION โ€” Fixed Supply Formula
The ONLY event that creates new AEQ: a new verified human registers.

Total Supply = Verified Humans ร— 1,000 AEQ

This is not a policy โ€” it is enforced by the protocol. No admin can mint additional AEQ, no governance vote can change the issuance, no founder allocation was pre-mined. AEQ is the only cryptocurrency where the total supply is determined solely by the number of verified living humans.
Open Source Chain Logic
The Aequitas chain core โ€” consensus engine, state machine, redistribution logic, wealth cap formula, and ZK proof verification โ€” is written in Go. The redistribution algorithms (CalcGini, enforceWealthCap, DistributeUBIPool, settleDemurrage) are open for review.

Smart contract source code for AequitasV7 and BioVerifier is embedded in the chain binary and verifiable via the contract addresses above. Chain ID 1926, RPC: https://aequitas.digital/rpc
/metrics โ€” Prometheus endpoint (gini, humans, pools, block height)
/api/gini/history โ€” Gini snapshots after each UBI distribution
/api/humans โ€” All verified human balances (Lorenz curve source)
/api/wealth-cap โ€” Live cap, multiplier, average balance
โ—† Consensus: GHOSTDAG + KNIGHTDAG
How every node agrees on one shared order for concurrently-produced blocks โ€” including the 2026 KnightDAG upgrade that lets each block infer its own optimal security margin instead of trusting one fixed network-wide worst case โ€” now has its own dedicated tab: โ†’ Network / Consensus.
Node Decentralization Roadmap
Currently the network runs on 2 active nodes (Railway primary + Contabo VPS secondary) with MERGE events from both. Only registered humans can run validator nodes โ€” this is a security requirement. Decentralization is a staged process:

Phase 0 (now): 2-node bootstrapping โ€” Railway (aequitas.digital) + Contabo VPS. Trust established through code transparency. Registered humans can apply to join as validators.
Phase 1 (100+ humans): Open node join โ€” any registered human can run a full node and earn validator rewards from the 40% pool.
Phase 2 (1,000+ humans): Minimum 10 independent node operators required. Node diversity enforced by smart contract.
Phase 3 (10,000+ humans): Fully decentralized BlockDAG. No single operator can censor or halt the chain.

The node operator guide (PDF) is available on the Network tab. Each new node operator earns from the 40% validator pool โ€” the more nodes, the more resilient the network.