Bitcoin + Lightning + Cashu

Lightning payments
for machines

Give your AI agent a Bitcoin wallet in one API call. Fund via Lightning, pay instantly, zero complexity.

create-wallet.sh
# Create a wallet in one call
curl -X POST https://api.mintbot.cash/agent/wallet/create \
  -H "Content-Type: application/json" \
  -d '{
    "agent_name": "my-agent",
    "budget_sats": 10000
  }'

# Response
{
  "wallet_id":         "w_a1b2c3d4e5f6g7h8",
  "api_key":           "mb_live_00112233...",
  "lightning_address": "my-agent@mintbot.cash",
  "balance_sats":      0,
  "budget_limit_sats": 10000
}

Everything an agent needs
to handle money

No Lightning node. No channel management. No custody tradeoffs. Just an API.

Instant Wallets

One API call. Wallet + Lightning address. Done.

Zero-Fee Transfers

Internal payments between agents use Cashu ecash. No fees, instant.

Lightning Native

Pay any invoice or address worldwide. Receive from anywhere.

L402 Protocol

Machine-to-machine API monetization. HTTP 402 Payment Required.

Budget Controls

Set spending limits per wallet. Prevent runaway agents.

Privacy by Math

Cashu blinded signatures. Not even the mint operator can link payments to users.

Not "we won't look."
We can't look.

Custodial services see every payment, every amount, every IP. Mintbot is fundamentally different.

Custodial APIs (Blink, Strike, …)

  • Provider sees all transactions
  • Amounts and recipients logged
  • IP addresses collected
  • Data can be subpoenaed or leaked
  • "Trust us" privacy policy

Mintbot (self-hosted Cashu mint)

  • You run your own mint
  • Cashu uses blinded signatures
  • Even the mint operator can't link payments to users
  • No data to hand over — it doesn't exist
  • Cryptographic privacy, not promises

How blinded signatures work

When a user mints tokens, the token is mathematically blinded before the mint signs it. The mint confirms it's valid — but never sees what it signed. When the token is redeemed later, the mint can verify the signature but cannot connect it to the original mint event. This isn't a policy. It's math.

System status

Real-time data from the Mintbot API.

Status
checking...
Version
api server
Uptime
seconds
Mint
cashu mint
Fetching api.mintbot.cash/health...

Start building

Native SDKs for Python and TypeScript. Or use raw HTTP from any language.

pip install mintbot npm install mintbot-sdk
from mintbot import AgentWallet

# Create a wallet — save the api_key, shown only once
wallet = AgentWallet.create(
    agent_name="my-agent",
    budget_sats=10000,
)

print(wallet.api_key)           # mb_live_...
print(wallet.lightning_address) # my-agent@mintbot.cash
print(wallet.wallet_id)         # w_a1b2c3...
from mintbot import AgentWallet

# Load an existing wallet
wallet = AgentWallet(api_key="mb_live_...")

# Get balance
print(wallet.balance)  # 950 (sats)

# Full wallet info
info = wallet.info()
print(info.balance_sats)      # 950
print(info.budget_limit_sats) # 10000
print(info.agent_name)        # "my-agent"
from mintbot import AgentWallet

wallet = AgentWallet(api_key="mb_live_...")

# Pay another agent wallet (zero fees, instant)
result = wallet.pay(
    to_wallet="w_xyz789",
    amount=50,
    memo="payment for service",
)
print(result.new_balance_sats)  # 900
print(result.tx_id)             # 42

# Pay a Lightning invoice
result = wallet.pay_invoice(bolt11="lnbc...")
print(result.status)  # "completed"
Python SDK docs TypeScript SDK docs

Support open infrastructure

Mintbot is self-funded infrastructure. Every sat helps keep the Lightning node running, channels open, and the mint liquid. No VCs. No subscription fees. Just sats and signal.

fund@mintbot.cash

Open in any Lightning wallet to send sats directly.

QR code for fund@mintbot.cash

fund@mintbot.cash