Skip to content

tempoxyz/wallet



tempo combomark



Tempo Wallet

Command-line wallet and HTTP client for the Tempo blockchain, with built-in Machine Payments Protocol support.

Website | Docs | MPP Spec | Architecture

What is Tempo Wallet?

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.

How Login Works

  1. Run tempo wallet login — the CLI opens your browser to wallet.tempo.xyz.
  2. Authenticate with your passkey (Touch ID, Face ID, or hardware key).
  3. The browser authorizes a session key for the CLI and redirects back.
  4. The CLI stores the authorized key locally. All subsequent signing happens locally — no browser needed.

Goals

  1. Zero-config payments: tempo request <url> handles the full 402 flow — challenge, sign, pay, retry — in a single command.
  2. 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.
  3. Composable: Both tempo-wallet and tempo-request are standalone binaries that the tempo CLI discovers as extensions. Use them independently or together.
  4. Streaming-native: Session-based payments support SSE streaming with per-token voucher top-ups — pay only for what you consume.

Install

curl -fsSL https://tempo.xyz/install | bash

This installs the tempo launcher, which automatically manages wallet extensions.

Install Skill

npx skills@latest add tempoxyz/wallet --global

Quick Start

# Log in with your passkey (opens browser)
tempo wallet login

# Check your wallet
tempo wallet whoami

# Fund your wallet
tempo wallet fund

One-Shot Payment (Charge)

Every 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=AA100

Session Payment (Channel)

A 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.xyz

Contributing

See CONTRIBUTING.md for setup and workflow.

make build    # Build debug binaries
make test     # Run all tests
make check    # Format, clippy, test, docs

The Minimum Supported Rust Version (MSRV) is specified in Cargo.toml.

Security

See SECURITY.md for vulnerability reporting.

License

Dual-licensed under Apache 2.0 and MIT.

About

Command-line wallet and HTTP client for the Tempo blockchain, with built-in Machine Payments Protocol support.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Security policy

Stars

Watchers

Forks

Contributors