Command-line wallet and HTTP client for the Tempo blockchain, with built-in Machine Payments Protocol support.
Website | Docs | MPP Spec | Architecture
Tempo Wallet is a CLI that lets you create a wallet, manage keys, and make HTTP requests that pay automatically — no API keys required. It uses the Machine Payments Protocol (MPP) to handle 402 Payment Required challenges natively, turning any paid API into a simple HTTP call.
- Run
tempo wallet login— the CLI opens your browser to wallet.tempo.xyz. - Authenticate with your passkey (Touch ID, Face ID, or hardware key).
- The browser authorizes a session key for the CLI and redirects back.
- The CLI stores the authorized key locally. All subsequent signing happens locally — no browser needed.
- Zero-config payments:
tempo request <url>handles the full 402 flow — challenge, sign, pay, retry — in a single command. - Secure by default: Passkey login with scoped session keys — time-limited, spending-capped, and chain-bound. Your passkey never leaves the browser; the CLI only holds a restricted access key.
- Composable: Both
tempo-walletandtempo-requestare standalone binaries that thetempoCLI discovers as extensions. Use them independently or together. - Streaming-native: Session-based payments support SSE streaming with per-token voucher top-ups — pay only for what you consume.
curl -fsSL https://tempo.xyz/install | bashThis installs the tempo launcher, which automatically manages wallet extensions.
npx skills@latest add tempoxyz/wallet --global# Log in with your passkey (opens browser)
tempo wallet login
# Check your wallet
tempo wallet whoami
# Fund your wallet
tempo wallet fundEvery request is independently settled on-chain. No sessions, no state.
# Preview the cost (dry run)
tempo request --dry-run \
https://aviationstack.mpp.tempo.xyz/v1/flights?flight_iata=AA100
# Make the request
tempo request \
https://aviationstack.mpp.tempo.xyz/v1/flights?flight_iata=AA100A session opens an on-chain channel once, then exchanges off-chain vouchers for subsequent requests — ideal for streaming and repeated calls.
# Make a session-based request (channel opens automatically)
tempo request -X POST \
--json '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}' \
https://openrouter.mpp.tempo.xyz/v1/chat/completions
# List active sessions
tempo wallet sessions list
# Close the session and settle on-chain
tempo wallet sessions close https://openrouter.mpp.tempo.xyzSee CONTRIBUTING.md for setup and workflow.
make build # Build debug binaries
make test # Run all tests
make check # Format, clippy, test, docsThe Minimum Supported Rust Version (MSRV) is specified in Cargo.toml.
See SECURITY.md for vulnerability reporting.
Dual-licensed under Apache 2.0 and MIT.