mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-08-10 03:07:06 +00:00
eb108a4a5a340731d7d5cd5ff9f57477a0d601ee
Adds 40 new tests across 5 test files that document critical bugs and fill coverage gaps in the routstr-core codebase: - test_emergency_refund_integrity.py (5 tests): Documents the try/except/pass vulnerability in emergency refund paths (base.py:3643-3653 and base.py:4607-4617) where DB store failures silently lose minted tokens. Verifies store_cashu_transaction catches all exceptions and send_token mints before DB persistence. - test_zero_cost_fallback.py (6 tests): Documents the hardcoded zero-cost fallback (base.py:1012-1030) where exceptions from adjust_payment_for_tokens() result in total_msats=0, giving users free service with permanently reserved balances. - test_db_and_payout_resilience.py (8 tests): Confirms store_cashu_transaction_with_retry was reverted (#600→#604). Documents the fee payout pay-then-reset crash window and wallet caching mechanism. - test_coverage_middleware.py (11 tests): Fills middleware.py coverage gap (was 38%) — tests LoggingMiddleware, _should_log filters, request_id_context, and middleware exports. - test_coverage_payment_helpers.py (10 tests): Fills payment/helpers.py coverage gap (was 52%) — tests check_token_balance, estimate_tokens, create_error_response, and image token calculation helpers. All tests pass against current main (830 passed, 13 skipped).
Routstr Payment Proxy
Routstr is a decentralized protocol for permissionless, private, and censorship-resistant AI inference. It combines Nostr for discovery and Cashu for private Bitcoin micropayments.
This repo contains Routstr Core: a FastAPI-based reverse proxy that sits in front of OpenAI-compatible APIs and handles pay-per-request billing.
Start Here
- Overview: https://docs.routstr.com/overview/
- Provider Guide: https://docs.routstr.com/provider/quickstart/
- User Guide: https://docs.routstr.com/user-guide/introduction/
Basic Usage
If you are a user/developer, you just point an OpenAI-compatible SDK at a Routstr node and pay with a Cashu token.
OpenAI SDK
from openai import OpenAI
client = OpenAI(
base_url="https://api.routstr.com/v1",
api_key="cashuBo2FteCJodHRwczovL21...",
)
response = client.chat.completions.create(
model="gpt-5-nano",
messages=[{"role": "user", "content": "hello"}],
)
print(response.choices[0].message.content)
cURL
curl https://api.routstr.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-cashu: cashuBo2FteCJodHRwczovL21..." \
-d '{
"model": "gpt-5-nano",
"messages": [{"role": "user", "content": "hello"}]
}'
Quick Start (Docker)
If you are a node runner, start a Routstr Core instance using Docker Compose:
-
Prepare your
.env:ADMIN_PASSWORD=mysecretpassword NAME="My AI Node" DESCRIPTION="Fast access to models" NSEC=yournsec RECEIVE_LN_ADDRESS=yourname@wallet.com -
Start the services:
docker compose up -d -
Configure: Open http://localhost:8000/admin/ to connect your AI providers and set pricing.
For full instructions, see the Provider Quick Start Guide.
Development
make setup
cp .env.example .env
fastapi run routstr
Languages
Python
68.8%
TypeScript
29%
HTML
1.5%
Makefile
0.3%
Shell
0.2%
Other
0.1%