Coinfest Asia · Builder Track · 15 min

The tool call is
the checkout

MCP is quietly becoming the settlement rail for AI-native money, and most builders are still shipping it as developer tooling.

bitcoin · lightning mcp indonesia · idr agents in production
whoami

Builder first,
speaker second

5–6 years deep in the crypto space with a protocol-level understanding of how Bitcoin works.

oss · bitcoin oss · hyperledger bitcoin L2 hackathon winner, every one 40× hackathon grants
Currently shipping

PaySats: agent-callable Bitcoin → IDR rail

First-party MCP server, live at mcp.paysats.exchange. Any LLM can quote and settle Bitcoin to Indonesian banks and e-wallets. Real money, in production. Not a demo.

Why this talk

Every claim in the next 15 minutes comes from something we run in production, with the failure modes to prove it.

Thesis

Most builders treat MCP as developer tooling, and miss that it's already the checkout and settlement rail for AI-native money.

The biggest payments surface of the next decade is currently unbuilt.

Next 15 minutes

One idea, four moves

01 The distribution shifthumans stopped opening apps · agents started paying ~2 min
02 The core ideaa tool call is a payment instruction ~4 min
03 Evidence from productionwhat breaks when your payer is a model ~4 min
04 What to buildaction servers, not context servers ~2 min
The distribution shift · human side problem · 1/2

Users open apps for the feel,
not to transact

Then

Navigate

Find the app, log in, tap through five screens to move money. A decade of fintech optimized this funnel.

Now

Ask

The new top-of-funnel is Claude and ChatGPT. Users state intent, "send my cousin 200k rupiah", and expect it handled.

The consequence

The app becomes a surface

Balances, receipts, the feel of your money. The transaction itself is moving to wherever intent is expressed.

Whoever owns the moment of intent owns payments, and that moment now happens inside the assistant.

The distribution shift · agent side problem · 2/2

The payer stopped being human

What checkout assumes

  • A human with eyes, reading a screen
  • A thumb tapping "confirm"
  • A card and a bank account onboarded per user
  • Sessions, redirects, 3-D Secure, captchas

What the agent has

  • A tool schema and an instructions string
  • A JSON-RPC call it can make in milliseconds
  • No bank account, and no way to get one
  • A user's intent it is trying to fulfil, right now

Almost every payment system in the world is built for the left column. The growth is all in the right one.

Core idea thesis · 1/2

MCP is a settlement rail wearing a tooling costume.

The reframe

Tool call = payment instruction

A create_offramp_order call that returns a live BOLT11 invoice is checkout. No screen involved.

The gap

Everyone ships read-only

Docs search, context, dashboards. The unbuilt frontier is action servers: tools that settle value.

Why now

MCP standardized action

It turned "AI that talks about money" into "AI that moves money", with one protocol every major client speaks.

Core idea thesis · 2/2

Bitcoin is the only rail that fits
how agents actually operate

Onboarding

Permissionless

An agent can't pass bank KYC. It can pay a Lightning invoice the second it's issued.

Amounts

Sub-dollar native

Agent-initiated payments skew tiny and frequent. Sats are the unit; cards break below ~$1.

Reach

Global by default

One rail, every geography. No per-market acquiring, no correspondent banking.

Latency

Settles in seconds

An agent fulfilling intent can't wait T+2. Lightning finality matches conversation speed.

Stablecoins carry the local-value leg, but the agent-facing edge of the rail is Bitcoin.

Framework evidence · 1/3

Intent to local value, one pipeline

01 · INTENT
Assistant
"Cash out 300k sats to my BCA account." Expressed in language, inside Claude / ChatGPT.
02 · RAIL
MCP tool call
create_offramp_order: one call, locked quote, returns a live BOLT11 invoice.
03 · SETTLE
Bitcoin → stablecoin
Lightning in, USDT → IDRX legs orchestrated on smart accounts. Every leg has an on-chain reference.
04 · VALUE
Local rails
Rupiah lands in BCA, GoPay, OVO, DANA. One orderId ties invoice to bank credit.

The agent sees one tool call. Everything else is your job. That's the whole point.

In production evidence · 2/3

This runs today

Any MCP client (Claude Desktop, Claude web, Cursor) connects to one URL and can quote, create, and track a Bitcoin → IDR settlement. No SDK integration, no signup flow.

mcp.paysats.exchange 7 tools bolt11 out
claude · mcp: paysats
user ▸ cash out 300k sats to my BCA account
agent ▸ list_payout_methods()
→ BCA (014) · GoPay · OVO · DANA …
agent ▸ get_btc_idr_quote()
→ quote locked at order creation
agent ▸ create_offramp_order(bank: 014, …)
→ bolt11: lnbc3m1p… orderId: ord_7f2c
agent ▸ Pay this invoice. Rupiah lands in BCA in minutes.
Execution lessons evidence · 3/3

What breaks when your payer is a model

Lesson 01

No UI: the protocol is the UX

A canonical instructions string makes the model call tools in order: list methods → resolve bank code → create order. Prompt ordering is onboarding.

Lesson 02

Quotes must lock server-side

The model will happily hallucinate an amount or a rate. The quote locked at order creation is what protects the merchant. Never trust the caller's math.

Lesson 03

One tool call, whole pipeline

Agents can't reliably orchestrate five steps. Invoice → swap → burn → redeem → payout collapses behind one call and one orderId.

Lesson 04

Treat the caller as hostile

The caller is an untrusted cloud model: redact bank numbers from logs, rate-limit per IP, allowlist hosts. Table stakes, not hardening.

Lesson 05

Deterministic states, always

A strict IDLE → COMPLETED state machine lets the agent poll instead of guess, and lets it tell the user the truth.

Net effect

Design for the model

Every one of these exists because the payer has no eyes, no thumb, and no patience. That's the design constraint of the decade.

Proof market evidence · bonus

Indonesia leapfrogs first

Emerging markets adopt the new interface fastest because the old one never fully arrived. No card entrenchment, QRIS and e-wallet culture, and a top-of-index crypto-adoption population.

🇮🇩 QRIS everywhere e-wallet native #1 crypto adoption index

Before · informal P2P

  • Forged BCA transfer screenshots, no recourse
  • Bank accounts frozen for stranger inbound transfers
  • Babysitting manual trades for sub-dollar amounts

After · one tool call

  • Assistant settles BTC → IDR to BCA / GoPay in one call
  • Licensed redeem partners, no anonymous inbound cash
  • Payment hash → tx → redeem ID → bank ref, one audit trail
What to build implication · 1–2 min

Build action servers,
not context servers

For builders

Expose money primitives as tools

Not just apps and SDKs. The moat is being the tool the assistant reaches for at the moment of intent.

For bitcoin

The killer app may be invisible

Settling agent-initiated payments nobody "opens an app" for. Bitcoin as infrastructure, not destination.

The bet

Best payments UX: no UI

The defining payments product of the next decade may ship with no checkout screen at all. Just a tool the model calls.

PaySats

The next billion payers
won't open an app

They'll ask. Make sure your rail is the tool that answers.

mcp.paysats.exchange coinfest.paysats.exchange thank you · terima kasih