Attestation
A Spazio Genesi service ↗ IT

The sg-attest executable, with nothing to install

A standalone binary for Linux, macOS, and Windows: attest and verify from the terminal or in CI without Node.js, npm, or network access to a package registry — just the download and checksums below.

Download

Six binaries, one per system/architecture, published on every release by the repo's CI — nothing done by hand. The links below always point to the latest published version.

sg-attest binaries by operating system and architecture
System Architecture Download
Linux x64 sg-attest-linux-x64
Linux arm64 sg-attest-linux-arm64
macOS Intel sg-attest-macos-x64
macOS Apple Silicon sg-attest-macos-arm64
Windows x64 sg-attest-windows-x64.exe
Windows ARM64 sg-attest-windows-arm64.exe

Verify integrity

Every release includes SHA256SUMS.txt with the fingerprint of each binary. Compare it before running the downloaded file:

# Linux / macOS
sha256sum -c SHA256SUMS.txt --ignore-missing

# Windows (PowerShell)
(Get-FileHash .\sg-attest-windows-x64.exe -Algorithm SHA256).Hash

It makes sense to use the service's own tool to verify itself: sg-attest attest computes the fingerprint of any file, including this very executable.

"Unknown publisher" warning

These binaries are not digitally signed: on first run, Windows SmartScreen or macOS Gatekeeper will show a warning ("unknown publisher"/"unidentified developer"). This is a declared trade-off, not a hidden flaw — in the meantime, the integrity guarantee is the checksum above, together with the fact that the binary is built publicly by the repo's CI, directly from source you can read.

If you'd rather avoid the warning altogether, npx remains the primary channel and never triggers it (see below).

Usage

Same commands as the npm version — you just run the file directly:

# Linux / macOS: make it executable the first time
chmod +x ./sg-attest-linux-x64

./sg-attest-linux-x64 status
./sg-attest-linux-x64 authorize
./sg-attest-linux-x64 attest ./opera.zip --pdf certificato.pdf
./sg-attest-linux-x64 verify ./opera.zip --hash <sha256>

On Windows, the same with .\sg-attest-windows-x64.exe. The API key goes in the IMGAUTH_API_KEY environment variable, never passed as an argument (it would end up in the shell history). Every command accepts --json for use in scripts; exit codes are 0 success, 1 operational error, 2 failed verification.

attest without --pdf only computes the fingerprint and signature (nothing is archived); add --pdf <file> to also generate the signed certificate — only then is the work archived and its /c/<fingerprint> page actually exists.

The full list of commands (verify-cert, cert, anchor, …) is in the repo's README.

When to prefer the binary over npx

npx/npm remain the primary channel, and are what attest-action uses in CI: the binary is an additional channel, not a replacement.

The guarantees remain identical. The binary is built from the same source as the npm package (src/cli.js), with no dependencies included beyond the runtime needed to run it: the same fingerprint computed locally, the same HMAC, the same signature, the same Bitcoin anchoring. No shortcut reduces the protections described on the service page.