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.

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.

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

# 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-browser

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