Developers
Status: SDK in development
Add quantum randomness and quantum-safe custody to any dApp.
TypeScript and Rust packages for randomness, vaults, PQ accounts and post-quantum messaging. The API below shows the intended shape and may change.
SDK packages
| Package | Purpose |
|---|---|
@bb84/core | PQC primitives: Falcon-512, ML-DSA, ML-KEM, SPHINCS+ |
@bb84/rng | Request and check quantum randomness on Solana |
@bb84/vault | Falcon vaults and smart accounts on Solana |
@bb84/evm | ERC-4337 PQC accounts and verifiers |
@bb84/proof | Read and check QuantumJob records |
@bb84/kem | ML-KEM encrypted messaging and files |
@bb84/quantum | Ket bridge to cloud QPUs |
bb84-anchor | Rust crate for CPI into bb84 programs |
Install (when published):
npm install {{SDK_PACKAGE_NAME}}TypeScript: five lines to quantum-safe (intended API)
const bb = new BB84({ cluster: "mainnet-beta" });
const r = await bb.rng.request({ bytes: 32 }); // value + proof.jobId
const vault = await bb.vault.create({ seed: r.value });
await vault.transfer({ to, amount }); // Falcon-signed
const acct = await bb.evm.createAccount({ chain: "robinhood" });
const msg = await bb.kem.encrypt(recipientPubKey, "hello");CLI (planned):
curl bb84.sh | shSolana programs: four programs, live on devnet
Anchor programs any dApp can read from or call. Every result is a plain account.
| Program | Product | What it does | Instructions |
|---|---|---|---|
qproof | QPU job receipts | Receipts for QPU jobs: job ID hash, backend, circuit hash and result hash, posted by the relayer. | initialize, set_relayer, record_job |
qentropy | bb84 RNG | Commit-reveal randomness seeded by QPU measurements, mixed with a slot hash sampled after the commitment. Providers stake and can be slashed. | register_provider, open, sample, reveal, next, slash, close |
qpt | bb84 Wallet & Vault | Quantum Proof Table: Falcon-512 keys registered with their QPU receipt and slot, a vault with an irreversible Q-Day switch, and a Falcon smart account. | register, enable_qday, withdraw, withdraw_pq, execute, execute_pq |
qsim | solana-qsim | Quantum circuits simulated inside a Solana program, to score a QPU's counts against the ideal result. | simulate, simulate_receipt, init_state, apply, apply_range, score |
Addresses
| Program | Devnet | Mainnet |
|---|---|---|
qproof | 6pxqWGoxSRBwmL6GJie9BD43HGe3ybFu9xmJQ24TvcXB | {{MAINNET_QPROOF_ADDRESS}} |
qentropy | FZXp8BVcsPZcE6ZP4wCYouMsupGEGKSZFwNfzNaoiQmm | {{MAINNET_QENTROPY_ADDRESS}} |
qpt | E4cwdChwHz3bqfeLUdJcRnPSsgKBEz7mwov1qCHgEmsK | {{MAINNET_QPT_ADDRESS}} |
qsim | 6sHufVFfaMwxPuDKxBuV8qZqNot8bJNgtFKhZKXHdhSw | {{MAINNET_QSIM_ADDRESS}} |
IDLs: {{IDL_URL}}
Integration: Ket ↔ Rust
- Rust oracle using Libket. The preferred path.
- Shared crate.
bb84-typesused by both oracle and programs. - On-chain classical post-processing. Sifting, QBER, QAOA checks and commit-reveal in Rust.
- On-chain circuit simulator. Scores QPU results on-chain: up to 11 qubits in one transaction, 20 across transactions.
Open source: solana-qsim
The on-chain circuit simulator is public: fixed-point state vector, gate encoding, scoring and the qsim program. https://github.com/bb84sh/solana-qsim
An on-chain simulator is a quantum circuit simulator, not quantum computing on Solana. We label it that way everywhere.
See solana-qsim.
Updated about 1 hour ago
Did this page help you?
