Private settlement research on Solana, published without pretending more than the repo proves.
This repo now has one canonical public root:
- one program ID:
2stas3cZYnBiWpndcTXQDGLXwfQ7kjEYYrW52DsUAcxF - one root manifest:
MANIFEST.json - one network map:
NETWORKS.json - one root IDL:
idl/paradox.json - one root circuit bundle:
circuits/null_proof.circom,circuits/null_proof_final.zkey,circuits/null_proof_js/null_proof.wasm,circuits/vk.json - one root verifier path:
src/lib.rs+src/verifying_key.rs - one published security model:
SECURITY_MODEL.md
Historical branches and artifact bundles are still published, but they are no longer the main integration target.
Search tags: solana, zk-snarks, zero-knowledge proofs, groth16, circom, bn254, privacy payments, anchor, snarkjs, solana program
sh scripts/bootstrap.shThat installs npm dependencies and runs the public repo checks.
If you want the extended validation path:
FULL_VALIDATION=1 sh scripts/bootstrap.shnpm run config:devnet
npm run config:localnetFor machine-readable output:
npm run config:json:devnetCanonical defaults also live in .env.example.
npm install @dark-null/protocolFor Anchor-based integrations:
npm install @dark-null/protocol @coral-xyz/anchor @solana/web3.js| Area | Root path |
|---|---|
| Program binding | MANIFEST.json, Anchor.toml, src/lib.rs |
| Network config | NETWORKS.json, .env.example, scripts/network-config.mjs |
| Verifier | src/verifying_key.rs, circuits/vk.json |
| Circuit artifacts | circuits/null_proof.circom, circuits/null_proof_final.zkey, circuits/null_proof_js/null_proof.wasm |
| Public IDL | idl/paradox.json |
| JavaScript SDK | sdk/index.mjs, sdk/index.d.ts |
| Python helper client | client/dark_client.py |
| Canonical proof-flow test | tests/canonical-proof-flow.test.mjs |
| Area | Historical path |
|---|---|
| Promoted provenance branch | historical/null-mint |
| Archived toy public root | historical/root-toy-prototype |
| Older full-cycle artifact bundle | LIVE_TEST_RESULTS.md, full_cycle_results.json |
- a real Groth16 verifier path is published in the root
- the root circuit, zkey, wasm, and vk are internally consistent
- the root proof flow is reproducible locally with
npm test - the root devnet/localnet selection now resolves through one published config surface
- root updates are no longer open to any signer in the current root source
- bounded root, leaf, and nullifier storage now fail closed instead of overwriting silently
- the public root fails closed before payout if a proof does not bind withdrawal amount and recipient semantics
- the repo has one canonical public root path instead of a placeholder root plus side branch
- third-party audit completion
- mainnet readiness
- that every historical deployment in the repo used the current root files
- that switching
devnettomainnetis enough to ship - append-only root derivation on-chain; the current source still trusts a privileged root updater
- a safe public withdrawal payout path from the canonical root; the current source now rejects payout until amount/recipient binding is promoted into the canonical circuit and manifest
- Run
sh scripts/bootstrap.sh. - Run
npm run config:devnetornpm run config:localnet. - Read
MANIFEST.json,NETWORKS.json, anddocs/PROGRAM_IDS.md. - Run
npm test. - Run
cargo test --offline. - If Python client dependencies are installed, run
npm run test:python:unit.
| If you need... | Use Dark Null for... |
|---|---|
| privacy-oriented settlement research | deposit flows, root updates, proof artifact verification, and source/security review |
| public code review | root Rust program, circuits, client helpers, SDK, IDL, and historical evidence |
| machine-speed per-request API payments | not this repo - use dna-x402 |
- No third-party audit has been completed yet.
- The repo includes an AI-assisted internal review summary in
INTERNAL_REVIEW.md. - The canonical root is now bound by
MANIFEST.json. - The current source security model is documented in
SECURITY_MODEL.md. - Historical program IDs are cataloged in
docs/PROGRAM_IDS.mdinstead of being implied as one release.
Everything currently in this repository is released under the MIT License. See LICENSE.