---
updatedAt: 2026-10-28T21:08:23.000Z
agentTools:
  projectIndex: https://docs.bb84.sh/llms.txt
---

# 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):

```bash
npm install {{SDK_PACKAGE_NAME}}
```

## TypeScript: five lines to quantum-safe (intended API)

```ts
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):

```bash
curl bb84.sh | sh
```

## Solana 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

1. **Rust oracle using Libket.** The preferred path.
2. **Shared crate.** `bb84-types` used by both oracle and programs.
3. **On-chain classical post-processing.** Sifting, QBER, QAOA checks and commit-reveal in Rust.
4. **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](products/qsim.md).