https://github.com/tempoxyz/wallet-cli
https://github.com/tempoxyz/wallet-cli
Last synced: 3 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/tempoxyz/wallet-cli
- Owner: tempoxyz
- License: apache-2.0
- Created: 2026-06-12T00:11:57.000Z (19 days ago)
- Default Branch: main
- Last Pushed: 2026-06-25T15:05:11.000Z (5 days ago)
- Last Synced: 2026-06-25T16:20:21.843Z (5 days ago)
- Language: TypeScript
- Size: 261 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Tempo Wallet CLI
**Command-line wallet and HTTP client for the [Tempo](https://tempo.xyz) blockchain, with built-in [Machine Payments Protocol](https://mpp.dev) support.**
**[Website](https://wallet.tempo.xyz)**
| [Docs](https://docs.tempo.xyz/cli)
| [MPP Spec](https://mpp.dev)
## What is Tempo Wallet CLI?
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)](https://mpp.dev) to handle `402 Payment Required` challenges natively, turning any paid API into a simple HTTP call.
## Install
Install the Tempo launcher:
```sh
curl -fsSL https://tempo.xyz/install | bash
```
The launcher manages `tempo wallet` and `tempo request` extensions automatically.
## Quick Start
```sh
# Log in with your passkey
tempo wallet login
# Remote-host login when your browser is on another device
tempo wallet login --no-browser
# Check wallet status
tempo wallet whoami
# Fund your wallet
tempo wallet fund
# Discover available paid services
tempo wallet services --search ai
```
Make a paid HTTP request:
```sh
# Preview payment details
tempo request --dry-run https://example.mpp.tempo.xyz/v1/resource
# Pay and retry automatically
tempo request https://example.mpp.tempo.xyz/v1/resource
```
Session-based services open a reusable payment channel:
```sh
tempo request -X POST \
--json '{"input":"hello"}' \
https://service.mpp.tempo.xyz/v1/stream
tempo wallet sessions list
tempo wallet sessions close https://service.mpp.tempo.xyz
```
## Commands
`tempo wallet` includes:
- `login`, `logout`, `refresh`, `whoami`, `keys`
- `fund`
- `transfer`
- `services`
- `sessions list`, `sessions close`, `sessions sync`
- `debug`
- `completions`
Credit-related flows use `whoami --credits`, `fund --credits`, and `transfer --credits`.
`tempo request` supports common curl-style flags for methods, headers, bodies, output files, redirects, retries, proxies, and streaming responses.
## Local State
Wallet state is stored under:
```sh
~/.tempo/wallet/store.json
~/.tempo/wallet/channels.db
```
Tests use isolated temporary `HOME` directories so they do not mutate a developer's real wallet state.
## Development
Requirements:
- Node.js 22
- pnpm 11
```sh
pnpm install
pnpm dev -- --help
node --import tsx src/request-cli.ts --help
```
Useful commands:
```sh
pnpm check
pnpm test
pnpm build
pnpm bundle
pnpm package
```
`pnpm check` runs formatting/lint checks, production TypeScript typecheck, test/helper TypeScript typecheck, and Vitest.
## Release Artifacts
The release workflow builds standalone Linux and macOS binaries for both `tempo-wallet` and `tempo-request`. Each binary is published with a checksum, SBOM, Sigstore bundle, and GitHub attestations.
## Security
Please do not report vulnerabilities through public issues. Email `security@tempo.xyz`.
Local wallet files may contain access key material. Do not commit files from `~/.tempo/`, `.env`, or generated release artifacts.
## Contributing
Use conventional commit titles and include a `.changelog/*.md` entry for pull requests:
```markdown
---
wallet-cli: patch
---
Brief description of the change.
```
Supported bump levels are `major`, `minor`, `patch`, and `none`.
Run `pnpm check` before submitting changes.