Signing & verification
BaseRT can sign .base bundles with ed25519 so you can detect tampering or
corruption before a model reaches a host. The signature covers the file header
plus a SHA-256 of the weight blob — a bit-flip anywhere invalidates it.
NOTE
Out-of-band today
The runtime does not currently verify signatures at load time (planned for a future release). Until then, signing is an operator-side workflow you run in your release pipeline.
Generate a keypair
basert keygen --output ./keys --name signing # writes ./keys/signing.secret (32 B) and ./keys/signing.pub (32 B)
Keep signing.secret private; distribute signing.pub to anyone who needs to
verify your bundles.
Sign a bundle
basert sign model.base \ --output model.signed.base \ --key ./keys/signing.secret \ --key-id "release-2025-06"
--key-id is a human-readable identifier stored in the signed file.
Verify a bundle
basert verify model.signed.base --pubkey ./keys/signing.pub \
|| { echo "tamper detected — refusing to deploy"; exit 1; }
verify exits non-zero on a tampered or corrupted file, so it slots directly
into CI/CD.
Notes
- An unsigned
.basefile is still loadable by the runtime — this is by design for development. Production pipelines should gate onbasert verify. - Treat
basert verifyas the canonical integrity check until load-time verification ships.