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.
If the agent is running on a remote host while you are using a different device, use tempo wallet login --no-browser instead. The CLI will print the auth URL and verification code for you to open on your device, and you may need to return to your CLI or agent session after passkey creation or after funding. A second authorization round may still be needed before the host is ready.
- 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
# Remote-host login when the human is on another device
tempo wallet login --no-browser
# Check your wallet
tempo wallet whoami
# Fund your wallet
tempo wallet fund
# Remote-host funding when the human is on another device
tempo wallet fund --no-browserEvery 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.