quicknode-cli 0.6.0

Command-line interface for the Quicknode SDK
Documentation
[package]
name = "quicknode-cli"
version = "0.6.0"
edition = "2021"
description = "Command-line interface for the Quicknode SDK"
license = "MIT"
repository = "https://github.com/quicknode/cli"
homepage = "https://www.quicknode.com/docs/welcome"
authors = ["Quicknode <support@quicknode.com>"]
readme = "README.md"
keywords = ["quicknode", "cli", "blockchain", "web3"]
categories = ["command-line-utilities"]
rust-version = "1.75"

[[bin]]
name = "qn"
path = "src/main.rs"

[lib]
name = "qn"
path = "src/lib.rs"

[dependencies]
quicknode-sdk = { version = "0.8.1", features = [
  "payments",       # x402/EVM
  "payments-svm",   # + x402/Solana
  "payments-tempo", # + MPP/Tempo
] }
clap = { version = "4", features = ["derive", "env", "wrap_help"] }
clap_complete = "4"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time"] }
fastrand = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yml = "0.0.12"
toon-format = { version = "0.5", default-features = false }
comfy-table = { version = "7", default-features = false, features = ["tty"] }
dialoguer = "0.11"
toml = "0.8"
thiserror = "1"
humantime = "2"
time = { version = "0.3", features = ["formatting", "parsing", "macros"] }
base64 = "0.22"
tempfile = "3"
url = "2"
# Stable fingerprint of the API key for scoping the JWT token cache to an
# account. The key itself is never written to the cache — only this hash.
sha2 = "0.10"
qrcode = { version = "0.14", default-features = false }
# Direct HTTP for the keyless payable-networks discovery fetch (the paid
# gateways' public /networks + /discovery/resources endpoints, which the SDK
# sub-clients don't cover). rustls matches the SDK's TLS backend.
reqwest = { version = "0.12", default-features = false, features = [
  "json",
  "rustls-tls",
] }

[dev-dependencies]
reqwest = { version = "0.12", default-features = false }
tokio = { version = "1", features = ["test-util"] }
wiremock = "0.6"
assert_cmd = "2"
predicates = "3"
insta = { version = "1", features = ["yaml"] }
tempfile = "3"

# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"

# cargo-deb metadata. CI's publish-deb workflow packages the prebuilt
# linux-gnu binary into a .deb per arch and attaches each to the
# GitHub Release. `name` makes the deb filename match the binary name
# (qn_X.Y.Z_amd64.deb) instead of the crate name (quicknode-cli_X.Y.Z…).
[package.metadata.deb]
name = "qn"
maintainer = "Quicknode <support@quicknode.com>"
copyright = "2026 Quicknode"
extended-description = """
qn is a command-line interface for Quicknode, built around noun-verb
commands that read naturally for both humans and agents. Manage endpoints,
streams, webhooks, the KV store, teams, usage, and billing.
"""
section = "utils"
priority = "optional"
assets = [
  ["target/release/qn", "usr/bin/", "755"],
  ["README.md", "usr/share/doc/qn/README", "644"],
  ["LICENSE", "usr/share/doc/qn/LICENSE", "644"],
]