Quickstart
Five minutes to your first transaction on AERE.
# 1. Add the network to MetaMask Network name: AERE Network RPC URL: https://rpc.aere.network Chain ID: 2800 Currency symbol: AERE Block explorer: https://explorer.aere.network # 2. Claim faucet (0.05 AERE drip, 24h cooldown per address) Browse to https://aere.network/faucet.html # 3. Send a tx (with ethers v6) const provider = new ethers.JsonRpcProvider('https://rpc.aere.network'); const wallet = new ethers.Wallet(privateKey, provider); await wallet.sendTransaction({ to: recipient, value: ethers.parseEther('0.01') });
SDK · @aere/sdk
Official TypeScript SDK wrapping ethers v6 with typed contract clients for every deployed AERE L1 contract. Designed for consumer neobank backends.
# @aere/sdk is not yet on public npm, install from GitHub:
npm i github:aerenetwork/aere-sdk ethers
import { AereClient } from '@aere/sdk';
import { ethers } from 'ethers';
const aere = new AereClient({ privateKey: process.env.OPS_PRIVATE_KEY });
// Multi-asset balance for any user
const p = await aere.getPortfolio('0xUser…');
console.log(ethers.formatEther(p.aere), 'AERE');
console.log(ethers.formatEther(p.waere), 'WAERE');
// Lock 100 AERE for 90 days at 15% APY
await aere.staking.lockTier90(ethers.parseEther('100'));
// Write KYC attestation on-chain
const oneYear = Math.floor(Date.now() / 1000) + 365 * 86400;
await aere.identity.addClaim(userAddr, 'kyc-tier-1', reportHash, oneYear);
// Watch for incoming AERE deposits, for a neobank webhook
const stop = await aere.watchTransfersTo(userAddr, tx => {
console.log(\`+\${ethers.formatEther(tx.value)} AERE in \${tx.hash}\`);
});
Source + types on GitHub at github.com/aerenetwork/aere-sdk (gitea mirror: git.aere.network/aere-network/sdk-js). Wraps: staking, locked staking, governance, identity, bridge, swap, faucet, NFT marketplace, mining subscription. Full address book bundled, no manual constants.
Neobank reference backend
Working Express server demonstrating the full neobank-on-AERE integration pattern: signup, KYC attestation, multi-asset portfolio, on-chain savings, deposit-watching webhook. Source is available on the AERE gitea at git.aere.network/aere-network.
OPS_PRIVATE_KEY=0x… npm run dev # Server on :4400 with routes: # POST /signup # POST /webhooks/baas/kyc-cleared → writes AereIdentity claim on-chain # GET /users/:id/portfolio → AERE + WAERE balances # POST /users/:id/earn → returns tx instructions for client to sign # POST /webhooks/onramp/deposit → MoonPay/Transak callback # Live block watcher → fires on user deposits
KYC attestation pattern
Two layers of KYC, independent:
- Fiat KYC, performed by your BaaS provider (Striga / Dipocket / Modulr / etc) on signup. Returns a verified status + report hash via webhook.
- On-chain attestation, the neobank backend writes the cleared status to
AereIdentityagainst the user's AERE wallet. Smart contracts gate features (lending, higher limits, fiat off-ramp) by checkinghasValidClaim(user, 'kyc-tier-1', kycOpsAddress).
// In the kyc-cleared webhook handler await aere.identity.addClaim( userAereAddress, 'kyc-tier-1', reportHash, // keccak256 of BaaS report Math.floor(Date.now()/1000) + 365 * 86400, // expires in 1 year );
Wallet provisioning
AERE is non-custodial. Don't ask consumers to manage seed phrases, use one of:
- Privy, email/social login, MPC + email recovery, ~1 day to integrate. Recommended.
- Magic.link, similar pattern, slightly different recovery model.
- Web3Auth, open-source, more configuration knobs.
Each provisions an EVM wallet keyed to the user's identity. Pass that signer into AereClient on the client side; the wallet works on chain 2800 immediately.
Network parameters
| Parameter | Value |
|---|---|
| Chain name | AERE Network |
| Chain ID | 2800 (0xAF0) |
| Consensus | Hyperledger Besu QBFT, 0.5-second blocks (transitioned from 1s at block 2,138,451) |
| Native token | AERE (18 decimals) |
| Genesis foundation alloc | 180,000,000 AERE → 0x0243A4f47D44b40b65D33f20329dE20D00c6f3C3 |
| HTTP RPC | https://rpc.aere.network |
| WebSocket RPC | wss://wss.aere.network |
| Block explorer | https://explorer.aere.network |
| Indexer REST/WS | https://api.aere.network |
Add to MetaMask
One-click form: /addnetwork.html. Or programmatically:
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '0xAF0',
chainName: 'AERE Network',
rpcUrls: ['https://rpc.aere.network'],
nativeCurrency: { name: 'AERE', symbol: 'AERE', decimals: 18 },
blockExplorerUrls: ['https://explorer.aere.network'],
}]
});
Faucet
0.05 AERE drip per address per 24 hours.
- UI: /faucet.html, calls the on-chain
AereFaucetcontract directly.
JSON-RPC endpoints
Standard Ethereum JSON-RPC, plus the QBFT and ADMIN namespaces.
curl -s -X POST https://rpc.aere.network \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","id":1}'
# Methods enabled:
ETH, NET, WEB3, QBFT, DEBUG, TRACE, TXPOOL
Rate-limit: ~100 req/s per IP. Open a ticket at git.aere.network for higher quota.
EVM ruleset
AERE Network runs the Pectra + Fusaka EVM ruleset, both hardforks activated on 2026-05-31. Full functional parity with Ethereum mainnet post-Fusaka. Includes:
Pectra (activated at block 2,075,363):
- EIP-7702, EOA delegation to smart-contract code (native account abstraction; works alongside ERC-4337)
- EIP-2537, BLS12-381 curve precompiles at addresses
0x0b,0x11(G1ADD, G1MSM, G2ADD, G2MSM, PAIRING_CHECK, MAP_FP_TO_G1, MAP_FP2_TO_G2), cheap on-chain BLS signature verification, used for trustless cross-chain proofs - EIP-2935, Historical block hashes (up to 8,192 blocks back) available via system contract
- Cancun pack, EIP-1153 (TSTORE/TLOAD transient storage), EIP-5656 (MCOPY), EIP-6780 (SELFDESTRUCT change), EIP-7516 (BLOBBASEFEE)
Cancun opcode set proven live on-chain: a canary contract AereCancunCanary (0x8DbFC002bB23124cBeCd7B4916c179D2AFd65498) demonstrates TSTORE/TLOAD (including the cross-transaction auto-reset), MCOPY, PUSH0, and BLOBHASH / BLOBBASEFEE returning correct values on chain 2800, inspectable via eth_call and eth_getCode.
Fusaka (activated at block 2,106,606):
- RIP-7951, secp256r1 / P-256 signature precompile at address
0x0000000000000000000000000000000000000100. Fixed cost ~3,450 gas. Verifies signatures from Apple Face ID / Touch ID, Windows Hello, Android biometric APIs, YubiKey, TPM 2.0, EMV cards, and the EU Digital Identity Wallet. ~70× cheaper than Solidity-based verification.
Note: AERE has no consensus-layer beacon chain, so EIP-4788 (parent beacon block root) is set to zero each block, and EIP-4844 blob fields exist in headers but no actual blobs are produced. Fusaka EIPs that are consensus-layer-only or rollup-only (PeerDAS, FOCIL, EOF) are no-ops on QBFT.
Advanced cryptography & AI infrastructure
All of the following are deployed on chain 2800 and callable. Each carries an explicit honest-scope note. Read recording vs view-only carefully.
Post-quantum verifier suite
A broad set of NIST post-quantum signature verifiers (not key generation or signing) run on-chain. We are not aware of any other public chain that verifies all of these signature schemes on-chain (stated as a hedge, not an unqualified "world first"). Recording means a state-changing verifyAndRecord transaction fits the L1 per-transaction gas cap (EIP-7825, 224); view-only means verification is correct and demonstrable via eth_call (validated bit-for-bit against official NIST vectors) but a recording transaction would exceed that per-tx cap.
| Contract | Address | Scope |
|---|---|---|
| AereFalcon512Verifier | 0x4E8e9682329e646784fB3bd01430aA4bA54D8fFC | NIST Falcon-512, KAT-validated, recording (~10.5M gas) |
| AereFalcon1024Verifier | 0xF0aFA59BaB2058e4B6e6B424b7f76750F1F66e36 | NIST Falcon-1024, KAT-validated, view-only (recording ~21.7M gas exceeds per-tx cap) |
| AerePQCVerifier | 0x1cE2949e8cE3f1A77b178aF767a4455c08ec6F82 | WOTS+ (Winternitz one-time) hash-based, recording |
| AereXmssVerifier | 0x77b14E264D0bb08d304d4e0E527F0fCdFc88B112 | RFC 8391 XMSS many-time hash-based, recording (~1.56M gas); does not enforce one-time-per-leaf state |
| AereMLDSA44Verifier | 0xf1F7A6Acd82D5DAf9AF3166a2F736EE52C5F85AE | NIST ML-DSA-44 / Dilithium2 (FIPS 204), ACVP-validated 15/15, view-only (~52.9M gas) |
| AereHybridAuth | 0xc20390C9656ECe1AE37603c84E395bC898b3FAA1 | Authorizes iff BOTH ECDSA AND Falcon-512 verify over the same hash, recording (~10.3M gas) |
| AereConsensusPQCAttestor | 0xf3681Aa6444F79562683C26f9d5c369A479c87dD | Falcon-512 finality attestation ALONGSIDE QBFT; does NOT replace ECDSA block signing (not consensus PQC) |
Confidential compute (threshold MPC)
AereConfidentialCompute 0x2120350c124e4Cae2C9FfBB6E4942DB1d380c287. A 5-node committee (MPC reconstruction threshold 3, on-chain signature quorum 4) computes an agreed arithmetic circuit over parties' private inputs using real Shamir secret sharing (BN254 scalar field) and a real BGW multiplication gate. The MPC runs off-chain; the contract verifies a quorum of committee ECDSA signatures over the EIP-712 result and records it. Honest threat model: semi-honest (secure against a colluding minority below the threshold, not malicious-secure, no cheater detection). No owner backdoor can forge a result. TEE is not built: the host has no usable SEV-SNP/TDX/SGX attestation, so the pure-software secret-sharing path is used.
Parallel L2 execution & rollup validity
A real from-scratch Rust Block-STM parallel executor (~8.6-9.3x on 16 cores, parallel proven equal to sequential) is wired into the rollup sequencer. Honest scope: the L1 base runs Besu and executes sequentially; this parallelizes L2 rollup batches only. AereBlockSTMRegistry 0x98E2C3e615841919d173D8FF642514c5902E8A28 is a deployed opt-in read/write slot-hint registry (advisory). AereRollupValidity 0x38772063572DF94E90351e44ccbBEefD5F497fbd anchors a real SP1 Groth16 validity proof of the executor (epoch 0); it is a proof of concept over a bounded-VM executor (Transfer/Sweep/Increment/AmmSwap), not a full-EVM validity rollup.
Agentic + AI infrastructure
| Contract | Address | Purpose |
|---|---|---|
| AereAgentBond | 0x32E0015F622a8719d1C380A87CE1a09bcd0cB86A | Slashable agent bond (WAERE); slashed value burns via AereSink |
| AereAIReputation | 0x781ef746c08760aa854cDa4621d54db6734bfeBF | Composable 0-10000 agent reputation over the bond |
| AereAgentMemoryVault | 0x309b56BDf0E3F6C10783eB76c0C02127F933D641 | Portable user-owned agent memory; no admin |
| AereInferNet | 0xba76891DB84B9755613dE3A1c7F3902BB6bbf856 | EU AI Act Art.12 inference-log Merkle commitments; no PII, permissionless |
| ERC6551Registry | 0x7fFdA0AcDeB919938dB91dbEa779D841c833EF68 | Canonical ERC-6551 token-bound-account registry |
| AereTokenBoundAccount | 0xBc5e24180f3F75DC6b1965E4aaD3D4F184b6F9E2 | ERC-6551 account implementation (owned by the bound NFT) |
Contract source is published and verified Sourcify-style (34 contracts), browsable at /verified-contracts.html.
Multi-prover ZK verifiers
Beyond SP1 (Groth16 + Plonk) and RISC Zero, the substrate now includes a KZG opening verifier and a real Halo2 verifier, and recursion has been demonstrated at scale.
| Contract | Address | Purpose |
|---|---|---|
| AereKZGVerifier | 0x6596307BD8f54d9A91FE364EBC3e594F200AC862 | KZG point-evaluation opening verifier; calls the live EIP-4844 precompile at 0x0A |
| AereHalo2Verifier | 0x414Cfe640B2770856d3D7262a7a3729f5c07dC55 | Real on-chain Halo2 (PLONKish, KZG-backed) verifier |
| AereProofAggregator | 0x6a260238890E740dB12b371E0C5d17a2470F84C5 | Recursive SP1 aggregation; demonstrated at scale (8+ child proofs folded into one Groth16 proof) |
Modular ERC-7579 accounts (session keys + social recovery)
An ERC-7579-style modular account factory with pluggable validator modules. Proven live: a userOp signed only by a scoped session key executed through the live AereEntryPointV2.
| Contract | Address | Purpose |
|---|---|---|
| AereModularAccountFactory | 0xE3f45Ed4a81f982fF25ad172A72456a1833a440E | ERC-7579 modular smart-account factory (pluggable validators) |
| AereSessionKeyValidator | 0x6e03A3D7A4c90d6f8dD6F0BA1F6e8aB1F8990D26 | Scoped, time-bounded session keys (target/selector/expiry limits) |
| AereSocialRecoveryModule | 0x077514DB2a85F239145537e8334CC99d42c9D812 | Guardian social recovery behind a 48-hour timelock |
Interoperability (Hyperlane v3)
A live Hyperlane v3 deployment on the AERE side with a working quoteDispatch. The USDC.e Warp Route rides this v3 mailbox: the AERE side is live and proven, while the Ethereum L1 leg still needs an L1 deployment and real ETH gas (pending).
| Contract | Address | Purpose |
|---|---|---|
| Hyperlane v3 Mailbox | 0x7BF113Ab1BCd2b6da01804764065776e3057605a | Live Hyperlane v3 mailbox, working quoteDispatch (owner = Foundation multisig) |
| Hyperlane v3 IGP | 0x5e4B8e9b196B1c7b3Be86148769aB0047c79744c | Hyperlane v3 Interchain Gas Paymaster (owner = Foundation multisig) |
| AereWarpRouteV3 | 0x1f44573684aB6bC617e7200A19b940b05e4EE098 | USDC.e Warp Route on Hyperlane v3; AERE side live+proven, Ethereum L1 leg pending |
Application-level building blocks (honest scope)
AereShutterMempoolV2 0x135100D523edA8D0AdC70e08af905dE5042A9310 is an application-level, opt-in threshold-encrypted anti-MEV mempool proof of concept. A Besu QBFT L1 has no protocol-level encrypted mempool, so this is not a base-layer feature and is not wired into consensus. AereStateRootAnchor 0x78b40a983E89c91Aefd8A62Be709bDF25ABB57cb anchors state/storage roots whose canonicity comes from the BLOCKHASH opcode; that reaches back only 256 blocks (~128s at 0.5s blocks), and EIP-2935 is not deployed on chain 2800, so there is no extended lookback window today.
Contract registry
All currently-deployed contracts on AERE L1 (chain ID 2800). Owner: Foundation 0x0243A4f47D44b40b65D33f20329dE20D00c6f3C3.
| Contract | Address | Purpose |
|---|---|---|
| WAERE | 0x7e84d7d66d5da4cfE46Da67CDEeB05B323e1f5e8 | Wrapped AERE (WETH9-style ERC-20) |
| AereTreasury | 0x687933AE7ea4927867AC227F1b60d476003e6119 | Timelocked foundation treasury |
| AereOracleV2 | 0xca69AA961D836516010Ae669a223Ce249490ACb1 | Multi-reporter median price feed (canonical, quorum-safe). Legacy AereOracle 0xf0A1…F399 remains the live read source until the Foundation repoints AereOracleAdapter. |
| AereIdentity | 0x658dD2CD1F798AAb19fEc8FF69A270B2d192CaD1 | DID registry + revocable claims |
| AereFaucet | 0xDdBe942aD9eB0F3E7C541BdCF7CC2cfA29d35aE4 | 0.05 AERE drip per 24 h |
| AereCardEscrow | 0xD1f7f12830AdCFd1B7676C8460B9e30602b1f059 | Consumer card settlement escrow |
| AereSecurity | 0xaD305e4D91e0a9160Bd338Fd1ecb2Ee1645daC44 | Security module |
| sAERE | 0xA2125bE9C6fd4196D9F94757Df18B3a2A5e650b0 | ERC-4626 staking receipt · variable staker-yield from the AereSink fee split (earns yield, not a validator seat) |
| AereLockedStaking | 0x21108c28A849b05aE6b7a3a5bc435C9Bc897E7Ad | Fixed-term locked staking · 30d/10%, 90d/15%, 180d/22%, 365d/30% APY (yield product, not delegation-to-a-validator) |
| AereSink | 0x69581B86A48161b067Ff4E01544780625B231676 | Immutable fee router · 15/40/45 split feeding sAERE staker-yield, buyback, and burn |
| AereSwapFactory | 0xf0a8df7BDc25721892475B21271e52D77B0e84DC | V2 AMM factory · 0.3% fee |
| AereSwapRouter | 0x7526B2E5526EfA84018378b60F2844Dad77523D8 | V2 periphery: add/remove liquidity, swap, native-AERE auto-wrap |
| AereBridge | 0x7eDa66cd93baAE19530839Bbb28ee36aC8aFAd68 | Federated lock-and-release bridge |
| AereMiningSubscription | 0xDad25d2163187DF8AAEcf9EA31b6355315Bb69f1 | On-chain name only · scheduled reserve distribution, not PoW mining |
| AereNFT | 0x3f9A9D9CAB005327869396C69bE226ef98039f1c | ERC-721 + EIP-2981 royalties |
| AereNFTMarketplace | 0x852e07F2619F7F4aD10d9f2aC681310301d99528 | 2.5% fee, royalty-aware marketplace |
| AereGovernanceStaked | 0x8D77C888e439C4fADb2e23F1567a0A1965F80bCb | Staked governance · proposals + voting |
| AereLockedStaking | 0x21108c28A849b05aE6b7a3a5bc435C9Bc897E7Ad | Fixed-term locks · 30d/10%, 90d/15%, 180d/22%, 365d/30% APY |
| AereFeeBurnVault | 0x696afDF4f814e6Fd6aa45CE14C498ed9375fB2c6 | Stateless protocol-fee burn endpoint (no admin, no withdraw) |
| AereYieldFarm | 0xF86Fb0Eb3262C4e93Dbb349d63023218a5Db713F | LP staking → native AERE rewards (MasterChef-style) |
| AereMiningDistributor | 0x0607ad23534ee251f359D960f7a6823C6b876b26 | Merkle-claim reserve-distribution payout (per-epoch, deadline-sweepable) |
| AereEntryPoint | 0x19773ba45287A64B05d0BCBD59D1371BF51Bd5D2 | ERC-4337 EntryPoint for AERE paymaster stack |
| AereOnboardingPaymaster | 0x4058E406475Dbed7056Aee0c808f293F05fEa879 | Foundation-funded · 3 free txs/sender (lifetime) · 100/day sitewide cap |
| AereTokenPaymaster | 0x217f56a5b0C7f35abe4D2fff924A6c13B85d7243 | Pay AERE gas with any whitelisted ERC-20 (USDT/USDC/etc.) |
| AereStakeQuotaPaymaster | 0xE50464ca7E8E7F542D1816B3172a2330cFE384E8 | Stake AERE → daily free-tx quota |
| AereAppPaymasterFactory | 0xEC22603E8712cBc5c31E53370D10f1a80CcB4DF0 | Permissionless factory, each dApp deploys its own paymaster |
| AereMessenger | 0xe54c2329f0786CFE3420c566B646148D25477325 | Hyperlane Mailbox-compatible cross-chain message bus (multisig ISM) |
| AereIGP | 0x61B48615F490A23945988c92835eF35fdD86E837 | Interchain Gas Paymaster, collects AERE for outbound cross-chain relays |
| AereSpokePool | 0xCAB1DBA5f6F06198000C20a974d675f1B3181AbD | Across-v3-compatible SpokePool, deposit + fill + settlement for intent-based bridging |
| AereERC7683 | 0x67Fb9830e3a2BC06cEb641cfF3beD87b273ccb29 | ERC-7683 IOriginSettler, standards-compliant gasless cross-chain intents |
| AerePyth | 0xb7F3354C1E0C5ef89D8b1072a3CEa7FFEf2FfE3F | Pyth-IPyth-compatible pull oracle, publisher-signed price updates |
| AereOracleAdapter | 0xb28A23dc177794DEC2Cacd2738fCc6c5C1Fc4Fe6 | Unified price-quote interface, routes Pyth → legacy AereOracle fallback |
| AereRandomnessBeacon | 0x25b6317efD8C7d425210F56Ee1E204852CD8213C | Permissionless drand verifiable-randomness beacon (Quicknet chain) |
| AereDrandConsumer | 0xeBA8De4f61c923a2E43eA8d7233Cf8e1Db5911B5 | Reference drand consumer (integration example/library) |
| AereCoinbaseSplitter | 0xb4b0eCe9011613A5b84248a9B42a0f309E6F01Ec | Atomic 37.5% → AereFeeBurnVault burn + 62.5% → validator (whitepaper §3.3 made real) |
| AereVaultRelayer | 0x9FCA122e87E36D7cba20DbEA7b9b7354A4Cece91 | Token allowance proxy for AereSettlement batch DEX |
| AereSolverRegistry | 0xDBD29332a9993d2816EF0bD240288E03a8103f3B | Permissioned solver allowlist for the batch DEX |
| AereSettlement | 0x9C2957b1622567B4802E4AFd4c42FB2ec70dE875 | Batch-atomic settlement contract, MEV-resistant DEX |
| AereFeeMonetizationV2 | 0xb560bdFB8b8B918012e6481e3bcF473c79c2a850 | Developer fee-share NFTs (20%) + Foundation treasury slice (5%) per gas fee. Canonical; register() here. Deprecated V1 0x6b62…dd98 (fee-stream squat) must not be used. |
| SP1VerifierGateway | 0x9ca479C8c52C0EbB4599319a36a5a017BCC70628 | SP1 (Succinct Labs) proof verifier, stable address, routes by selector to v6.x Groth16/Plonk concrete verifiers |
| RiscZeroVerifierRouter | 0x3f7015BC3290e63F7EC68ecF769b00aB296a249C | RISC Zero zkVM proof router, stable address, routes by selector to concrete Groth16 verifier |
| AereProofRegistry | 0x0A9b09677DbE995ACfC0A28F0033e68F068517Ee | Multi-prover attestation log, verifies via SP1 gateway + R0 router, permissionless program registration |
| AerePasskeyAccountFactory | 0xfB0eF980667A79Fe1AB69c5f2d512118F1B30739 | CREATE2 factory for passkey-controlled smart accounts (Touch ID, Face ID, Windows Hello, YubiKey, EU Digital Identity) |
| AereEntryPointV2 | 0x8D6f40598d552fF0Cb358b6012cF4227B86aF770 | ERC-4337 v0.7-shaped EntryPoint, handleOps, validateUserOp, deposits/withdrawals, paymaster dispatch |
| AerePasskeyAccountFactoryV2 | 0x5FFa9a6487DA4641a1A1e7900ff2bD4525D34fdA | V2 factory, multi-owner (passkey + EOA), recovery, EIP-1271, ERC-4337 compat |
Each contract is inspectable on the explorer at explorer.aere.network.
Indexer API (api.aere.network)
# Latest blocks GET https://api.aere.network/api/blocks?limit=20 # Block by number GET https://api.aere.network/api/block/12345 # Transaction by hash GET https://api.aere.network/api/tx/0xabc... # Address (balance, txs, contract code) GET https://api.aere.network/api/address/0xdeadbeef... # Network stats GET https://api.aere.network/api/stats # WebSocket: live block stream wss://api.aere.network/ws
Cross-chain bridge
Federated 2-of-2 lock-and-release. Lock AERE on L1 → relayers gather signatures → mint wAERE on the foreign chain. Burn wAERE → release native AERE on L1.
# Lock await bridge.lockAndBridge(toChainId, recipient, { value: amount }); # Foreign side await counterparty.releaseFromL1(srcChainId, nonce, recipient, amount, signatures);
Run a validator
Hyperledger Besu QBFT image, 32-byte private key file, peer with the existing bootnode. See git.aere.network/aere-network/aere-node.
Open source on GitHub at github.com/aerenetwork (aere-contracts, aere-sdk, aere-docs, aere-examples). Docs PRs and issues welcome there; gitea mirror at git.aere.network.