For AI agents

Bitcoin cashback, paid to agents in sats

An agent registers with one Lightning payment, browses the store catalogue, generates a tracked link for the person it shops for, and receives the cashback as a Lightning payout. No signup form, no API key, no human in the loop.

What an agent can do here

Earn cashback

Search the catalogue by country, read a store's cashback terms, and turn a store into a tracked link. A purchase through that link earns the cashback the store pays, credited to the agent's account once the store confirms it.

Get paid over Lightning

Confirmed cashback is paid out to the Lightning address given at registration. Payouts are automatic; there is nothing to claim and no balance to withdraw by hand.

Refer other agents

Every agent has a referrer id. An agent registered with it earns its referrer 21% of the cashback it generates in its first year. Same programme as for people, same rate.

Recover and get notified over Nostr

Register with a Nostr pubkey and a fresh bearer token is one signed event away if the old one is lost. Notifications arrive as NIP-17 direct messages, if the agent asks for them.

How it works

  1. Register with L402

    A request without credentials gets a 402 with a Lightning invoice for 21 sats and a macaroon. Pay the invoice, send the preimage with the registration body, and the response carries a bearer token. That is the whole account; there is no email address or password behind it.

  2. Talk to the API over MCP or REST

    The MCP server speaks JSON-RPC 2.0 over streamable HTTP and exposes 11 tools, from get_documentation to update_notifications. The catalogue, clicks, earnings, payouts and account settings are REST endpoints too, described in the OpenAPI specification. Tokens stay valid for 90 days after the last authenticated call and slide forward on every request, so an active agent never re-registers.

  3. Shop through tracked links

    Ask for a store's visit link and the response carries a signed redirect URL with a click id. The person the agent shops for opens it, buys as usual, and the affiliate network reports the order back to us. When the store confirms, the cashback lands on the agent's account and goes out over Lightning.

Getting started

Everything an agent needs is machine-readable. Start with the discovery document.

  • Discovery documenthttps://satsback.com/.well-known/agents.jsonendpoints, the registration flow step by step, transport details, tool names
  • llms.txthttps://satsback.com/llms.txtthe same surface in the shape convention-following crawlers look for
  • OpenAPI 3.0 specificationhttps://satsback.com/api/openapi.jsonevery REST endpoint with request and response shapes
  • L402 capability manifesthttps://satsback.com/.well-known/l402-servicesthe paid route and its price, in the ngx-l402 manifest shape
  • Registration endpointhttps://satsback.com/api/v2/l402/registerGET or POST without credentials answers 402 with a 21-sat invoice
  • MCP endpointhttps://satsback.com/api/v2/mcpJSON-RPC 2.0 over streamable HTTP with the bearer token; POST only

A registration you can run, three placeholders to fill

# 1. Ask for the challenge (no credentials)
curl -sS -D - -o /dev/null https://satsback.com/api/v2/l402/register
#    -> HTTP/2 402
#    -> WWW-Authenticate: L402 macaroon="<macaroon>", invoice="lnbc..."

# 2. Pay the invoice (21 sats) with any Lightning wallet and keep the preimage

# 3. Complete the registration
curl -sS -X POST https://satsback.com/api/v2/l402/register \
  -H 'Authorization: L402 <macaroon>:<preimage>' \
  -H 'Content-Type: application/json' \
  -d '{"country":"NL","lightning_address":"<your-lightning-address>"}'
#    -> {"success":true,"token":"<bearer>","expires_at":"..."}

# 4. Browse the catalogue and get a tracked link
curl -sS https://satsback.com/api/v2/agent/stores/nl -H 'Authorization: Bearer <bearer>'
curl -sS https://satsback.com/api/v2/agent/store/<slug>/visit -H 'Authorization: Bearer <bearer>'
#    -> {"redirect_url":"...","click_id":"...","cashback_type":"..."}

The 21 sats are a one-time registration fee, paid over Lightning. The Lightning address is probed before the account is created: an unreachable one gets a 400, and the paid challenge stays valid for the retry. The token in step 3 is the agent's credential; store it the way you would store an API key.

Standards, not a custom protocol

L402
Registration speaks both L402 dialects at once. The 402 carries a macaroon and a Lightning invoice in its WWW-Authenticate header (Lightning Labs L402) and an offer as a JSON body in the l402.org v0.2.2 shape; a POST with the preimage completes it. The challenge answers GET, HEAD and POST, so a directory probe sees it without a body.
MCP
The Model Context Protocol over streamable HTTP, the transport current clients speak. Tools carry their own documentation; get_documentation returns the full reference.
Nostr
Account recovery signs a challenge as a Nostr event; notifications are NIP-17 direct messages to the agent's pubkey. Both optional, both standard.
OpenAPI 3.0
The REST surface is described in a specification generated from the code that serves it, so it cannot document an endpoint that does not exist.

Where we are listed

Independent listings, so you do not have to take our word for it.

  • Satringcurated paid-API directory for agents, domain verified
  • l402.spaceAlby's universal 402 gateway; satsback.com is in its table of proxied services, with description and docs link

The catalogue

24,000+stores in the catalogue an agent can search
216countries the catalogue serves