The scsa CLI
Register a GPU, run live security proofs, and orchestrate threshold key custody from the terminal.
scsa is the command-line client for the platform. It talks to a control plane
(hosted or self-hosted), or — in sovereign mode — drives a
GPU you control directly over SSH, with no control plane at all.
Install
npm install -g @sevenlayer/scsa
# or run without installing:
npx @sevenlayer/scsa --helpRequires Node 18+. No other dependencies.
Configure
scsa config set-api https://your-control-plane # default: http://localhost:3001
scsa config set-token <token> # only for a remote/authenticated plane
scsa config showA local control plane needs no token. A remote one requires a bearer token.
GPUs
scsa gpu pubkey # the SSH key to authorize on your own GPU (BYO)
scsa gpu register <host> <port> # bring your own GPU (register by SSH endpoint)
scsa gpu list # list GPUs (rented + BYO), with deploy status
scsa gpu deploy <id> # build SCSA on the GPU
scsa gpu rm <id> # de-register a BYO GPU (hardware untouched)See Bring your own GPU for the full flow.
Seal & unseal
scsa seal <id> <file> --out <file.scsa> # seal a file to a GPU (ciphertext at rest)
scsa unseal <id> <file.scsa> --out <file> # unseal on the bound GPUThe sealed .scsa is encrypted with a key derived from that GPU's identity — copy
it to any other machine and it is noise. Unsealing only succeeds on the hardware
it was sealed to. In sovereign mode the same operations run
with scsa local seal / scsa local unseal, straight over your SSH with no
control plane.
Proofs
scsa prove <id> # run every live proof and print the verdicts
scsa attest <id> # just the attestation gate
scsa pq <id> # classical -> PQ-hybrid key migration
scsa threshold <id> # zero-reconstruct threshold key derivationprove returns a verdict per property — proven, fail-closed (the gate
correctly refused), or failed. On a stock GPU without Confidential Computing,
attestation and CC-enforcement read fail-closed — that is the security working,
not an error. See Proofs.
Zero-knowledge audit stream
scsa zk prove [gpu] # generate a transparent STARK transition proof
scsa zk verify <proof_id> [gpu] # verify statelessly — no secrets needed
scsa zk chain [n] [gpu] # a chain of sequential proofsPass a GPU id to generate the proof on that node (co-located with the work it attests); omit it to run on the control plane. Verification needs nothing but the proof bytes.
Threshold custody
scsa handoff setup --model <seal> --bank <id> --regulator <id> --subject <id>
scsa handoff reconstruct <handoff_id>
scsa handoff destroy <handoff_id> <role>Distributes a sealed model across parties so no single one can unseal alone.
Threshold custody is the default — pass --mode shamir only to opt out. See
Threshold custody.
Sovereign (self-hosted) mode
scsa config set-gpu <host> <port> --key <path> # point at YOUR GPU
scsa local deploy # build SCSA on your GPU (bundled source, no server)
scsa local seal <file> --out <file.scsa> # seal a file to your GPU
scsa local unseal <file.scsa> --out <file> # unseal on the bound GPU
scsa local prove # all proofs, direct SSH, no control plane
scsa local attest # attest your GPU directly
scsa local zk # STARK proof on your GPUNothing leaves your perimeter and no external key is involved — the package
bundles the source, so local deploy builds the binaries on your box with no
control plane and no repo. See Sovereign mode.