DocsGuides
From source
Everything on the Quickstart comes from npm. This page is for working from the repository instead: running the proxy and dashboard from a clone, building the Solana programs and the prover, and reproducing the deployed program bytes. Node 20+ and pnpm for the TypeScript side; Rust, Solana and Anchor toolchains only for the parts that say so.
01
Clone and run
$ git clone https://github.com/blindseal-dev/blindseal && cd blindseal
$ ./scripts/quickstart.sh # pnpm install, build the dashboard, verify the sample attestation (real Groth16) and reject a tampered copy
$ pnpm -C packages/proxy exec tsx src/index.ts run # add --mock for sample data
blindseal (LIVE): local API on http://127.0.0.1:7777/api
dashboard: http://127.0.0.1:7777/#token=…scripts/quickstart.sh needs only Node and pnpm: the wasm verifier and the program IDLs are committed, so nothing is compiled. The last line runs the CLI from the checkout; every blindseal … command on the other pages is pnpm -C packages/proxy exec tsx src/index.ts … here.
02
Build the programs
$ scripts/build-programs.sh # cargo build-sbf for blindseal-verify and transfer-gate + anchor idl build
$ scripts/test-m2.sh # the on-chain suite against a local validatorRequires Rust, the Solana CLI and Anchor. The script builds to SBF with cargo build-sbf (target dir outside programs/) and writes the .so files to target/deploy/ and the IDLs to target/idl/. Program ids are fixed: the verifier 6z4HehpRyppJDxGXJubE7Z4GpE6feNytUb2Udya6kaGx, the transfer-gate example 9fjiagKZvaJ1cW1zEiddZD6iBemEARKfFQ4dW1mV5FKa.
03
Build the prover
$ cargo build --release --manifest-path crates/prover/Cargo.toml
$ blindseal attest call.json --target-program 9fjiagKZvaJ1cW1zEiddZD6iBemEARKfFQ4dW1mV5FKa \
--out attestation.json --prover crates/prover/target/release/blindseal-proverThe prover wraps the committed SP1 guest (crates/guest) and produces the Groth16 attestation. It needs the SP1 toolchain and, for the Groth16 wrap, Docker with about 24 GB of memory available. Proving takes hours on CPU — 2 h 16 min for the sample attestation on an Apple M1 Max (32 GB). Without --prover, blindseal attest uses the release binary it downloads on first use; the built binary is the same program.
04
Reproduce the deployed programs
$ cd programs
$ solana-verify build -b solanafoundation/solana-verifiable-build:4.3.0 --library-name blindseal_verify
$ solana-verify build -b solanafoundation/solana-verifiable-build:4.3.0 --library-name transfer_gate
$ solana-verify get-program-hash 6z4HehpRyppJDxGXJubE7Z4GpE6feNytUb2Udya6kaGx # compare with the executable hash printed abovesolana-verify builds in a pinned container so the bytes are reproducible, then compares the executable hash with what is deployed on mainnet. Both programs keep an upgrade authority; see What is proven for what that means for trust.
05
Repository layout
packages/proxy— the MCP proxy and CLI, published asblindseal.packages/sdk— the verify instruction, submit, off-chain verify; published asblindseal-sdk.packages/verifier-wasm— the Groth16 verifier compiled to WebAssembly; published asblindseal-verifier-wasm.crates/— the detector core (DFA rules), the SP1 guest, the prover and the verifier crate.programs/— the Anchor programsblindseal-verifyandtransfer-gate.apps/site— this site;packages/dashboard— the local dashboard the proxy serves.