This directory holds the bootstrap installers for the cre CLI:
install.sh— Linux and macOS (bash)install.ps1— Windows (PowerShell)
Linux / macOS
curl -sSL https://app.chain.link/install.sh | bashWindows (PowerShell)
irm https://app.chain.link/install.ps1 | iexThis downloads the latest release, verifies the release binary signature
(GPG on Linux, codesign on macOS, Authenticode on Windows), and installs it.
Piping a script straight into bash/iex runs it sight-unseen. If you would
rather verify the bootstrap script itself first, every GitHub release publishes
install.sh, install.ps1, and a checksums.txt containing their SHA-256
digests. Download, verify, inspect, then run the local copy.
Linux / macOS
tag=$(curl -fsSL https://api.github.com/repos/smartcontractkit/cre-cli/releases/latest \
| grep -Eo '"tag_name":\s*"[^"]+"' | head -n1 | grep -Eo 'v[0-9][^"]*')
base="https://github.com/smartcontractkit/cre-cli/releases/download/$tag"
curl -fsSL "$base/install.sh" -o install.sh
curl -fsSL "$base/checksums.txt" -o checksums.txt
# Compare the published digest against the file you downloaded.
expected=$(grep '^install.sh:' checksums.txt | awk '{print $2}')
actual=$(shasum -a 256 install.sh | awk '{print $1}')
[ "$expected" = "$actual" ] && echo "OK: checksum matches" || { echo "MISMATCH"; exit 1; }
# Inspect, then run the verified local copy.
less install.sh
bash install.shWindows (PowerShell)
$tag = (Invoke-RestMethod https://api.github.com/repos/smartcontractkit/cre-cli/releases/latest).tag_name
$base = "https://github.com/smartcontractkit/cre-cli/releases/download/$tag"
Invoke-WebRequest "$base/install.ps1" -OutFile install.ps1
Invoke-WebRequest "$base/checksums.txt" -OutFile checksums.txt
$expected = ((Select-String '^install.ps1:' checksums.txt).Line -split '\s+')[1]
$actual = (Get-FileHash -Algorithm SHA256 install.ps1).Hash.ToLower()
if ($expected -eq $actual) { "OK: checksum matches" } else { throw "MISMATCH" }
# Inspect, then run the verified local copy.
Get-Content install.ps1
.\install.ps1Note:
checksums.txtuses afilename: sha256format (not thesha256 filenamelayout thatsha256sum -cexpects), so verify by comparing the digest as shown above rather than piping intosha256sum -c.
- Release binaries are cryptographically verified by the install script:
GPG signature (Linux, against the key embedded in
install.sh/install/public_key.asc), Applecodesign(macOS), and Authenticode (Windows). - The bootstrap scripts are served from
app.chain.link. Verifying them against the release-publishedchecksums.txt(above) confirms they match the reviewed source for a given release tag.