Supply chain Check, don’t trust

Do not trust
the claim.

Every Invincible release is built by CI, attested, and its checksums are signed with a key the installer pins. Here is how to check the archive, the signature and the record — by hand, with tools you already have.

1. Get the files.

From the v0.0.8 release: the archive for your platform, plus SHA256SUMS and SHA256SUMS.sig. The install script downloads the same files and performs these checks for you.

linux-arm647.1 MB · static
linux-x647.8 MB · static
macos-arm646.7 MB · static

2. Verify the signature.

The release key is pinned in install.sh. It signs SHA256SUMS; the archive must match the file. Nothing else needs to be trusted.

ssh signature · no extra tooling
$ echo 'invincible-release ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/0fXPq1j51BcfGY0Jp9QfPGy6kHVQQ+W282VFPR/Qo' > allowed_signers ssh-keygen -Y verify -f allowed_signers -I invincible-release \ -n invincible-release -s SHA256SUMS.sig < SHA256SUMS shasum -a 256 -c SHA256SUMS Good "invincible-release" signature for invincible-release invincible-linux-x64.tar.gz: OK

Key: invincible-release ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/0fXPq1j51BcfGY0Jp9QfPGy6kHVQQ+W282VFPR/Qo
Signature asset: SHA256SUMS.sig · checksums: SHA256SUMS

3. Check the provenance.

The release workflow publishes a Sigstore build attestation. With the GitHub CLI signed in, the archive can be tied to the workflow and the commit that produced it.

build provenance
$ gh attestation verify invincible-linux-x64.tar.gz --repo wckdboy/invincible ✓ loaded attestation bundle ✓ verified build by release.yml

4. Know what “reproducible” means.

Before publishing, the Linux x86_64 archive is built a second time on another machine. If the bytes differ, the workflow refuses to publish. To check it yourself, build the tagged commit from a clean source tree with the flags in release.yml and compare the archive.

Reproducibility is a property of the Linux build, not a promise about every platform. The macOS build is attested and signed but not claimed to be byte-reproducible.

5. The install script you actually run.

This site serves a verbatim mirror of the upstream script at /install.sh. Its hash is recorded at build time, and the byte count is shown below. The command on the install page uses this domain, not raw.githubusercontent.

Mirrorinvincible.sh/install.sh
SHA-2566cf20caf34574f3bfa6b77b1b3c258709f602e0d7d58d03db1b3e686c1d41863
Bytes14.6 KB
Fetched19 OCT 2026

6. The runtime record.

The supply chain ends when the binary runs. From there, the node’s own records take over: every request gets an Ed25519-signed receipt, every receipt is chained into audit.jsonl, and invincible audit --verify checks both the chain and the signatures.

runtime integrity
$ invincible audit --verify chain intact · receipts verified $ invincible audit --since 7d --summary

What verification does not prove.

  • It does not prove the code is free of bugs or malice. It ties the bytes to a key and a build.
  • Invincible v0.x has not had an independent security review. The project says so on its own pages.
  • A correct signature with a key you did not intend to trust proves only that the signer signed. Compare the key with the one pinned here and in the installer.