AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Maya2C: a post-quantum Layer-1 blockchain in Rust. Every transaction carries two NIST post-quantum signatures (ML-DSA-65 + SLH-DSA), with DAG-BFT finality. Public testnet live at maya2c.dev.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Help run the network — one line
Paste one line and your computer becomes a node of the test network. No
technical background is needed. Full steps, with a section for each OS:
maya2c.dev/guides/help-run.
Every transaction carries two signatures — ML-DSA-65 (FIPS 204) and
SLH-DSA-SHA2-128s (FIPS 205) — and both must verify. That is 11,165 bytes per
transaction, which is the price of not betting the chain on one lattice
assumption. Transport is libp2p with an ML-KEM-768 layer over Noise, and an
optional HQC-192 second KEM behind a flag.檢視完整 README ↗The testnet is paused. It ran 7 days 15 hours with zero halts (blocks 0 to 393,812) and was stopped on purpose on 2026-10-28 (proof). It comes back with the next genesis; until then the line below has no network to join.
Paste one line and your computer joins the test network. No technical background is needed. Steps for each OS: maya2c.dev/guides/help-run.
| Your computer | Paste this |
|---|---|
| Windows (PowerShell) | irm https://raw.githubusercontent.com/EricWijesinghe/Maya2C/master/scripts/join-testnet.ps1 | iex |
| Mac (Terminal) | curl -fsSL https://raw.githubusercontent.com/EricWijesinghe/Maya2C/master/scripts/join-testnet.sh | bash |
| Linux | curl -fsSL https://raw.githubusercontent.com/EricWijesinghe/Maya2C/master/scripts/join-testnet.sh | bash |
flowchart LR
classDef step fill:#0a161b,stroke:#1fb5c2,color:#edf3f2,stroke-width:2px
classDef pq fill:#2a210f,stroke:#c9a86a,color:#f4ead6,stroke-width:2px
W["🔐 Wallet<br/>signs the transaction"]:::step --> G["🛡️ API gateway<br/>default-deny allowlist"]:::step
G --> N["⚙️ Node<br/>Transaction::verify"]:::step
N --> S["✍️ ML-DSA-65 <b>and</b> SLH-DSA<br/>both must verify"]:::pq
S --> V["🧩 WASM VM<br/>fee market · state root"]:::step
V --> C["🧭 DAG-BFT<br/>Narwhal + Bullshark"]:::step
C --> F["✅ Finalized<br/>state committed"]:::step
Mainnet is deliberately blocked. CIRCUIT_IS_AUDITED is false at
crates/zk-stark/src/pool/mod.rs:36:
the shielded pool's joinsplit circuit has no independent audit, and six
separate guards refuse a value-bearing chain id. Read
docs/mainnet-readiness.md before anything else here.
Counted from the repo, not from the roadmap. Status meanings are defined in docs/architecture-vision.md.
| Count | Value | Source |
|---|---|---|
| Subsystems in the ledger | 154 | features.toml, [[subsystem]] |
| …verified (named test exists) | 61 | same |
| …working | 72 | same |
| …planned (no code yet) | 21 | same |
| Of the 154, research (tested, no consensus caller) | 77 | same, class = "RESEARCH" |
| Register entries (the plan) | 164: 50 verified, 114 planned | same, [[feature]] |
| Mainnet audit flag | CIRCUIT_IS_AUDITED = false | pool/mod.rs:36 |
cargo xtask coverage checks the ledger and fails when a claim has no test
behind it. Counts above are a plain read of the file at this commit.
bins/maya2c-node/src/bft.rs (ADR-027).ledger-math holds the credit, debit and nonce arithmetic, with no C/C++ in its dependency graph, so Kani can verify it.flowchart TB
classDef app fill:#0a161b,stroke:#1fb5c2,color:#edf3f2,stroke-width:2px
classDef core fill:#06343a,stroke:#7eeaf0,color:#edf3f2,stroke-width:2px
classDef pq fill:#2a210f,stroke:#c9a86a,color:#f4ead6,stroke-width:2px
W["🔐 Wallet · Maya Chat · SDKs"]:::app --> G["🛡️ API gateway<br/>default-deny allowlist"]:::app
G --> N["⚙️ Node: WASM VM · fee market · state"]:::core
N <--> C["🧭 DAG-BFT consensus<br/>Narwhal + Bullshark · stake-weighted"]:::core
C <--> P["🌐 libp2p · TCP + WebSocket<br/>ML-KEM-768 over Noise"]:::pq
N --> S["✍️ Every transaction signed twice<br/>ML-DSA-65 + SLH-DSA"]:::pq
| Member | Role |
|---|---|
(root) custom-l1-node | Node daemon: consensus, chain, p2p, RPC, metrics |
ledger-math | All u64 credit/debit/nonce math. Kani-verifiable — no C/C++ in its graph |
crypto-pq | SLH-DSA instantiation. Must stay the monomorphizing crate |
zk-stark | Plonky3 STARKs: shielded joinsplits, credentials, sanctions proofs |
vm | Wasm contract execution |
l2-flash | L2 settlement |
wallet, apps/wallet-gui/ | CLI wallet, and a Tauri desktop wallet whose keys never leave the Rust core |
explorer | Server-rendered chain explorer |
cuda-miner, wgpu-miner | GPU miners. Both GPU features are default-off so CI builds without an adapter |
stratum-v2, pool-service | Pool protocol, and the daemon joining it to chain types |
dex | Constant-product curve, order book matcher, batch clearing. Dependency-free |
vrf | RFC 9381 EC-VRF behind the randomness beacon |
governance | Proposal lifecycle and the bounds a proposal may never escape |
faucet | Testnet faucet. A hot wallet on a public endpoint — see its doc before deploying it |
telemetry | Network telemetry collector, split into server and client halves |
light-client | SPV header fork choice and state-proof verification |
mev | Threshold-encrypted mempool: a miner orders transactions it cannot read |
custody-mpc | Threshold custody of a chain key: dealerless VSS, ML-KEM-sealed shares, quorum signing |
archive | CAR v1 (zstd) archives of pruned block batches: local dir, IPFS, Arweave |
api-gateway |
These crates are in the tree and tested, but no consensus path calls them. Each is
dark behind an activation height of u64::MAX, or is off-chain entirely. The
rationale for each is in
docs/architecture-vision.md.
| Member | Role |
|---|---|
fee-market, neural-gas-trainer | EIP-1559 base fee over bytes, plus an integer neural gain inside a Kani-proved envelope, and the off-chain trainer for that gain |
blockgraph | Narwhal/Tusk batch references and deterministic shard scheduling |
lattice-pow | Lattice proof-of-useful-work (SVP) verification |
zkml, zkml-prover | halo2 proofs of quantized-classifier inference: the verifier, and the off-chain prover |
rwa, identity | Real-world assets and self-sovereign identity (DIDs, selective disclosure) |
iso20022 | ISO 20022 bank-rail messages bridged to payment intents |
radio-transport | Off-grid LoRa framing, a duty-cycle governor, a fountain codec |
htlc-lattice, htlc-watcher | Lattice HTLC atomic swaps (Maya2C↔Maya2C only), and the counterparty watcher |
stateless-core | Sparse-Merkle account witnesses for stateless transfer verification |
confidential-ai | Federated training with ML-KEM secure aggregation and integer differential privacy |
ebpf-net, hal/ebpf-net/common | UDP block relay judged by an XDP program at the driver (Linux, xdp feature) |
threat-intel, threat-firewall | Threat indicators built from verifiable gossip evidence, and the per-host nftables worker |
iot-anchor | Hardware-anchored sensor identity: ML-DSA-65 device keys, PUF, TPM sealing, hash-chained telemetry batches. no_std; hal/iot-firmware/ runs it on Cortex-M33 under QEMU |
Three more directories have their own workspaces and toolchains: offsec-sandbox/
(red-team fuzzing), hal/ebpf-net/programs/ (the XDP program) and fuzz/.
cargo xtask up # 4 validators (DAG-BFT), API gateway, chat relay, funded wallet
cargo xtask down # stop exactly what `up` started
up builds what it needs, waits until the validators agree on a chain and
every service answers, then prints the endpoints (also in
target/up/up.json). It is a local devnet: keys are generated fresh each
time and everything listens on 127.0.0.1 only. Run it in a terminal. On
Windows the services it leaves running inherit a piped stdout, so
cargo xtask up | ... waits until down; redirect to a file instead.
Requires Rust 1.88 (edition 2024).
cargo build --workspace
cargo nextest run --workspace # nextest is the primary runner
cargo clippy --workspace --all-targets
cargo deny check
The first build after a clean is long: [profile.dev.package.*] overrides
compile the crypto and arkworks stacks optimized even in debug, which is
load-bearing rather than tuning — without them cargo test reads as hung.
Both are built with trunk and live outside the Cargo
workspace's test surface:
cd apps/dashboard && trunk build --release # telemetry dashboard
cd apps/wallet-gui/ui && trunk build --release # wallet frontend
Maya2C is built in the open by one maintainer. Here is how to help:
| ⭐ Star | Star the repo so more people find it |
| 🍴 Fork | Fork it and try the devnet on your own machine |
| 🛠️ Contribute | Read CONTRIBUTING.md. Issues and proposals are welcome |
| 🌱 Good first issues | Browse the label |
| 💬 Talk | Discussions |
| ☕ Donate | Donation links are coming soon. None are live yet. |
Security reports go privately, never in public issues: see SECURITY.md for scope, response targets and safe harbour. Reporters are named in the Security Hall of Fame. There are no cash rewards yet. Contributor badges are described on Contributors & badges.
docs/README.md indexes the full set; docs/REPO-MAP.md says where every directory lives. Start with:
Logo assets live in logo-assets/ and are the source of truth.
Two scripts deploy them, and both take --check so drift is detectable rather
than discovered:
python scripts/deploy_brand_assets.py # favicons and wordmarks into each app
python scripts/make_og_card.py # the 1200x630 social card
cargo tauri icon logo-assets/print/HighRes-Square-2000_2000x2000.png \
-o apps/wallet-gui/src-tauri/icons # the desktop icon set
The hero banner in docs/brand/ is drawn from the official emblem in
docs/site/public/brand/emblem.png. The emblem is never redrawn.
This is pre-launch software on a chain that refuses to be worth anything. Read
CLAUDE.md for the invariants that are load-bearing before changing consensus,
crypto, or ledger code.
Eric Wijesinghe builds Maya2C. Portfolio: eric.maya2c.dev · GitHub: @EricWijesinghe
Apache License 2.0: see LICENSE and NOTICE. You may use, modify and distribute this code, including commercially, under its terms, which include an express patent grant.
The cryptography has not been independently audited. Mainnet is blocked until it has been (see docs/mainnet-readiness.md).
| REST and GraphQL gateway, talking to a node over JSON-RPC |
sdk-ffi, sdk-wasm | uniffi bindings, and browser bindings, over the hybrid signing primitives |
docgen | Generates the LaTeX technical reference from module documentation |
apps/dashboard/ | Leptos browser page. Not a workspace member: CSR Leptos only runs on wasm32 |