x402 isn’t good (yet) — Jan Curn, Apify

Jan Curn· Apify20:48

Read the talk

x402 isn’t good (yet)

Jan Curn explains what Apify’s agent-payment integration exposed: verified signatures do not reserve money, fixed prices do not fit metered jobs, and payment protocols can collide with authentication. Prepayment makes the system usable; escrow and batch settlement offer a promising direction.

From a talk by Jan Curn

At a glance

Ideas worth remembering

  • Verification does not secure funds in the x402 flow described here. Running costly work after settlement protects sellers from spending that occurs between authorization and collection.

  • Mandatory initial status codes complicate combining x402 payments with MCP authentication. Separate hostnames work around the conflict; Curn proposes allowing payment requirements through headers without requiring 402.

  • Up To permits a variable charge within a ceiling but leaves the spending window open. Apify’s charge-and-refund workaround adds a second blockchain transaction and requires buyers to trust the refund.

  • Batch Settlement combines upfront escrow with off-chain micropayments and aggregated on-chain settlement. Apify had not yet implemented it at talk time.

  • Apify’s Agent General Interface separates purchasing prepaid access from executing jobs through the established API or MCP. Its documented prepaid credit terms differ from the talk’s earlier refund workaround.

A payment protocol meets a marketplace of tools

MCP was exciting, widely discussed, and still clunky when David Cramer delivered “MCP Is Not Good Yet” at the previous AI Engineer World’s Fair. Sentry subsequently built an MCP server that Jan Curn praises, while MCP became a familiar way to connect tools to agents. That combination supplies the premise for this sequel: finding rough edges is part of building a useful integration.

Recording frame at 74 seconds
Recording frame at 74 seconds

Jan Curn, Apify’s founder and CEO, brings a concrete marketplace problem. At talk time, Apify had about 45,000 tools called Actors, spanning web-data extraction, search, maps, automation, and agentic tasks. Apify and community developers build them; customers pay to use them; Apify passes revenue to their creators. Curn reports community payouts exceeding $1 million per month. Making these tools purchasable by agents means connecting a new payment mechanism to an existing business.

Apify launched its x402 integration with Coinbase two days before the recording. Curn reports that it added 20,000 tools to an x402 catalog that previously contained about 2,000—roughly a tenfold expansion in available tools. Those numbers describe catalog supply. The reason to supply it is straightforward: an agent working without repeated human intervention needs a budget to acquire services as its task develops.

0:120:42
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

Why crypto looks useful for agent payments

The payment landscape is already crowded. Curn runs through competing efforts from payment networks, technology companies, and crypto providers, then describes the difficulty of keeping up with them. Each wants a share of the transactions agents might eventually generate. For a service marketplace, that competition creates an immediate integration problem: which payment systems should it accept?

Recording frame at 311 seconds
Recording frame at 311 seconds

Curn’s enthusiasm comes with some personality: “I’m not HODLing anything.” Agent commerce gives a longtime crypto skeptic a practical reason to reconsider. His case has three parts:

  • Small payments: Conventional methods such as cards, PayPal, and bank payments have costs that make tiny individual purchases unattractive. Agent-to-service interactions could require many such purchases.
  • Seller certainty: Human commerce has identity and fraud signals that sellers can use when accepting payments subject to disputes. Agent identity remains unsettled in this account, so Curn wants sellers to receive payments that buyers cannot later reverse through a bank dispute.
  • Shared infrastructure: A sufficiently decentralized blockchain could serve as a public payment standard without one company controlling the network and extracting fees through its dominant position.

The decentralization claim depends on how the network is governed. Removing buyer disputes also leaves a separate question: what protects the buyer if the paid service fails? That question returns when Apify starts collecting money before running a job.

Apify’s implementation experience focuses on x402 from Coinbase and MPP, the Machine Payments Protocol associated here with Stripe. Curn reports that the previous day’s figures put x402 about twenty times ahead of MPP in both transaction count and volume. That talk-time comparison helped Apify prioritize x402, although it added MPP along the way.

x402 gives the payment idea a recognizable HTTP entry point: 402 Payment Required, a status code Curn describes as having waited almost thirty years for its moment. The integration difficulties begin with what happens after the server asks for payment.

4:124:42
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:42 · section reference included

A verified signature leaves a spending window open

The flow described in the recording starts with an ordinary API request. The server responds with 402 Payment Required. The client signs a payment authorization and sends it back. The server asks a facilitator, such as Coinbase, to verify it. Once verification succeeds, the server does the work, then asks the facilitator to settle the payment. Settlement performs the blockchain operation that transfers money to the seller.

Recording frame at 643 seconds
Recording frame at 643 seconds

Verification and settlement answer different questions. A valid authorization can pass verification without preventing the buyer from spending the same wallet funds elsewhere before settlement. Curn illustrates the exposure with one wallet generating 1,000 signatures and sending 1,000 requests. If sellers treat those signatures as secured funds, they can all begin work against money that will not cover all the requests.

Follow one of those requests through its consequence. A seller receives a signature, gets a successful verification, and starts a job that calls a paid external service. Meanwhile, the buyer spends the wallet’s money in another transaction. When the seller finally requests settlement, the funds are gone. Withholding the result might stop the buyer from receiving the output, but it cannot recover the external-service cost already incurred.

Where does changing the order protect that seller? The comparison below places the costly work on either side of settlement. In the first path, the seller incurs costs while payment remains unsecured. In the second, the seller waits for payment before starting.

Settling first is the available workaround. It is straightforward for a fixed-price call, but places an obligation on the other side: the buyer has paid before receiving the service, so the server must finish the work successfully. Curn considers doing work before settlement tolerable for a simple API call with effectively zero marginal cost. Jobs that consume resources or purchase upstream services need stronger protection.

Compare the ideasWhen does the seller incur costs?

The facilitator confirms the authorization is valid.

Moving work after settlement protects the seller from spending that occurs between verification and settlement, while requiring the buyer to pay before delivery.

8:429:12
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:42 · section reference included

One HTTP response cannot be both 401 and 402

A separate difficulty appears when payment and authentication share an endpoint. In the requirements Curn describes, x402 demands an initial 402, while MCP authentication demands a 401. An HTTP response has one status code. A server cannot satisfy both initial-response requirements simultaneously.

Recording frame at 670 seconds
Recording frame at 670 seconds

The workaround is to split access across hostnames: one host for x402 payments, another for MCP, perhaps another for MPP. That avoids asking one response to carry incompatible status codes, but duplicates the service’s entry points around payment choices. Curn’s analogy is having twenty different Amazons for different credit cards. The customer wants the same service; the payment method should not require a different storefront.

His proposed protocol change is to allow payment requirements to travel through headers without mandating the 402 status. A response could then carry payment information while using the status code needed by another protocol. This is a suggestion in the recording, rather than an implemented solution.

10:5611:26
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:56 · section reference included

“Up To” changes the amount, not the security of the funds

The original Exact scheme fits a simple purchase: pay a fixed fee for one API call. Apify Actors have a different cost shape. They often run batch jobs, lasting anywhere from a few seconds to a few hours, and consume resources along the way. Metered billing follows that consumption; the final price need not be known when execution begins.

Recording frame at 787 seconds
Recording frame at 787 seconds

Coinbase introduced x402 with Exact in May 2025. Curn describes Up To as a later scheme promised with the protocol’s December 2025 update and released after a further wait. It lets a client authorize a ceiling—for example, $5—and allows the server to charge an amount within that ceiling. This answers how much the seller may charge, but leaves the earlier spending window intact. Permission to charge up to $5 does not secure $5 for the job.

Apify therefore used Exact to collect a fixed amount, ran the job, and refunded whatever the job did not spend. The initial payment covers work before the final bill is known, and the refund reconciles that payment with actual consumption.

The workaround carries two distinct costs:

  • Two blockchain transactions: Collecting payment and returning the remainder each require a transaction, adding settlement time and potentially fees.
  • Trust in the refund: The buyer hands over the full amount and depends on the server to return the unused portion. Curn considers this a milder issue than exposing the seller to unpaid work, but still finds the arrangement clunky.
11:5712:27
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

12:27 · section reference included

Escrow funds once, then settle small payments in batches

Batch Settlement changes where the money sits while work proceeds. In Curn’s account, the client first makes a real blockchain deposit into escrow. The server returns a cryptographic voucher that the client can use to sign small payments within the batch. Requests—for API calls or individual tokens, for example—then carry those signed micropayments.

Recording frame at 945 seconds
Recording frame at 945 seconds

The small payments occur off chain. The server accumulates them and periodically settles them together through a blockchain transaction. Settlement can happen multiple times before the remaining escrow is released. Frequent service purchases therefore do not each require a blockchain write: money enters escrow up front, while the chain records aggregated settlement afterward.

Which operations still reach the blockchain? The diagram distinguishes the deposit and batch settlement from the repeated off-chain requests between them. Escrow changes the funding arrangement; batching reduces how often individual purchases need a chain write. Apify was working on this scheme but had not implemented it at talk time, so its practical benefits for Actors remained prospective.

How it fits togetherFunded escrow surrounds an off-chain payment loop

A blockchain transaction places funds into escrow.

The client deposits funds on chain, signs small payments off chain, and the server settles accumulated payments in batches before unused escrow is released.

14:2714:57
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:27 · section reference included

Buy a prepaid token, then use the existing API

Apify still needed a usable integration without rebuilding its API around every emerging payment standard. Tens of thousands of customers depended on that API. Separate payment-specific service endpoints and awkward adaptations of variable usage would make the established product harder to maintain.

Recording frame at 1019 seconds
Recording frame at 1019 seconds

The resulting entry point is AGI.Apify.com: Agent General Interface. The acronym is a joke with an architectural point. The interface is a simple website containing one Markdown document that explains how agents can buy access through x402 or MPP. Curn expects agents to read changed instructions as the purchasing flow evolves, allowing Apify to iterate without continually changing the API used by existing customers.

The purchase produces a prepaid Apify token. In Curn’s example, an agent pays $5 and receives that token, then uses it through the normal API or MCP to run jobs. The agent-facing page handles how to buy access; existing interfaces handle how to spend that access on Actors. The Apify API documentation and MCP integration documentation explain the execution side.

The prepaid token has different terms from the earlier charge-and-refund job workaround. The AGI service documentation supplied as of September 19, 2026 specifies a $1 minimum purchase, non-refundable unused credit, and a temporary account deleted after a 14-day lifetime. The token carries a fixed spending cap, and usage is metered against its balance. Buying credit therefore does not promise a refund after each job.

The live demonstration attempts a smaller purchase. Apify had built a local wallet tool to create a cryptographic key, fund it, and display a QR code. The wallet begins with $10. Curn requests a token carrying $1 of credit from AGI and receives 402 Payment Required. He then uses an MCP CLI client to sign the payment. The request has moved from asking for access to answering a payment challenge, but the demo fails before a completed purchase is shown. Time runs out before token delivery or subsequent Actor execution is demonstrated.

15:5616:26
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

15:56 · section reference included

The next question is whether agents should build or buy

Despite the failed demo, Curn’s closing invitation is practical: try building with the payment flow. Crypto terminology had made it seem intimidating even to him, but he found getting started much simpler than expected and estimates an initial experiment can take about ten minutes. The invitation is to explore an early system whose integration problems are still being worked out.

Recording frame at 1200 seconds
Recording frame at 1200 seconds

The scale remains small in his account: roughly $1 million in monthly transaction volume for the emerging payment ecosystem. That measures payment activity, distinct from Apify’s earlier $1 million-plus monthly creator payouts. Curn’s growth forecast depends on a change in agent economics: when subsidized model tokens give way to costs users must actually pay, generating a bespoke solution may become less attractive than purchasing an existing service.

An agent then needs a way to choose a service, fund access, and use it when buying is cheaper or more effective than building from scratch. Curn predicts this could make agent payments grow sharply and eventually let agent commerce overtake ordinary commerce. That remains his forecast. The shipped integration offers a concrete place to test the smaller proposition that agents can buy useful capabilities.

19:062:12
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

19:06 · section reference included

Resources

From the talk

  • The purchasing instructions and prepaid-token flow described in the talk. The supplied September 19, 2026 documentation specifies a $1 minimum, non-refundable unused credit, and a 14-day temporary account lifetime.

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:12

    >> Hello everyone.

  3. 0:14

    Uh last year here at AI Engineer World

  4. 0:16

    Fair, uh David Cramer from Sentry had a

  5. 0:18

    mildly provocative talk called MCP isn't

  6. 0:21

    good yet. And back then, MCP was the new

  7. 0:23

    kid on the block, right? Uh it was like

  8. 0:25

    a lot of hype around it. People were,

  9. 0:26

    you know, were excited about it. But

  10. 0:28

    also like it wasn't really developed

  11. 0:30

    back then very much and it was very

  12. 0:32

    clunky. And in this talk, David argued,

  13. 0:34

    "Hey, like this technology is cool, but

  14. 0:36

    it has like a lot of rough edges, right?

  15. 0:38

    So just you know, go play with it, but

  16. 0:39

    you know, have your expectations low,

  17. 0:41

    right?"

  18. 0:42

    By the way,

  19. 0:43

    they went on and actually built one of

  20. 0:45

    the best MCP servers on the market,

  21. 0:46

    right? Like Sentry MCP is is is really

  22. 0:48

    like very well-designed server, like

  23. 0:50

    nice nice design and so on.

  24. 0:52

    And actually over the the last year, uh

  25. 0:54

    MCP became like a standard that's

  26. 0:56

    actually widely adopted, you know,

  27. 0:57

    across the industry. Like the top AI

  28. 0:59

    engines like Claude and ChatGPT,

  29. 1:01

    actually uh Claude offers MCP

  30. 1:03

    connectors, right? So you can plug tools

  31. 1:05

    into your AI agents. Uh

  32. 1:07

    uh ChatGPT calls it MC calls it apps,

  33. 1:10

    but you can also like, you know,

  34. 1:12

    directory of different services you can

  35. 1:13

    plug into your Claude. And it actually

  36. 1:15

    became a standard thing for

  37. 1:17

    agent-to-agent interaction, right? And

  38. 1:19

    uh

  39. 1:20

    uh despite a little little hate also

  40. 1:22

    about MCP, you know, I have yet to see

  41. 1:25

    CI connectors in any of these agents,

  42. 1:27

    right? So MCP won.

  43. 1:29

    And so, inspired by David's talk, uh

  44. 1:32

    today uh I have a similar talk uh which

  45. 1:34

    is called X 402 isn't good

  46. 1:37

    yet.

  47. 1:38

    And in that talk, I would like to argue,

  48. 1:39

    you know, that uh while X 402 is very

  49. 1:41

    exciting technology, it has also still

  50. 1:43

    some rough edges, you know. And perhaps

  51. 1:45

    if I do it as well, we'll also build one

  52. 1:47

    of the best integrations with our X 402

  53. 1:50

    on the market like Sentry did with MCP.

  54. 1:53

    My name is Jan Černý. I'm the founder

  55. 1:54

    and CEO of Apify. And uh for those who

  56. 1:57

    don't know, Apify is the largest

  57. 1:59

    marketplace of tools for AI.

  58. 2:01

    Uh

  59. 2:02

    we have about 45,000 of these tools. Uh

  60. 2:05

    we call them actors.

  61. 2:06

    And they are spending use cases like,

  62. 2:08

    you know, extraction of data from social

  63. 2:09

    media sites, e-commerce, hospitality,

  64. 2:12

    travel, search engines, maps, but over

  65. 2:14

    time also like

  66. 2:16

    AI agents or agentic use cases, you

  67. 2:17

    know, different automations and so on,

  68. 2:19

    right?

  69. 2:21

    And some of these tools, some of these

  70. 2:23

    actors are built by our community, some

  71. 2:25

    are built by us, and our community is is

  72. 2:28

    making now more than $1 million per

  73. 2:30

    month on on payouts by selling these

  74. 2:32

    tools, right? So

  75. 2:34

    they build the tools, we sell them to to

  76. 2:36

    to users, and you know, we pass the

  77. 2:38

    money to them. And so it's a thriving

  78. 2:39

    marketplace.

  79. 2:40

    And I guess by now everybody understands

  80. 2:42

    like why we are so excited about agentic

  81. 2:44

    payments, right? Because we really want

  82. 2:46

    our tools to be easily accessible to

  83. 2:48

    agents, like wherever they are, with

  84. 2:50

    whatever protocol is out there.

  85. 2:53

    Uh just 2 days ago we launched uh

  86. 2:55

    together with with Coinbase our our XYO

  87. 2:58

    2 integration.

  88. 2:59

    Uh I would say the the launch went

  89. 3:01

    pretty viral. We got like 1 million

  90. 3:03

    views.

  91. 3:04

    Uh

  92. 3:05

    and

  93. 3:07

    before before this launch, there were

  94. 3:09

    about like 2,000 tools available on the

  95. 3:12

    on the agentic uh

  96. 3:14

    market uh basically on XYO XYO 2.

  97. 3:18

    We brought another 20,000 tools. So

  98. 3:19

    basically we 10X 10X the size of the of

  99. 3:21

    the agentic market uh on XYO XYO 2. So

  100. 3:24

    this is very exciting for us and I I we

  101. 3:26

    we believe also for the community.

  102. 3:29

    And actually we're very excited about

  103. 3:31

    this topic like long term. So actually

  104. 3:33

    last year here at AI Engineer World's

  105. 3:34

    Fair, I was the only one talking about

  106. 3:36

    the agentic commerce and agentic economy

  107. 3:38

    in general.

  108. 3:39

    And really argued that that like in a

  109. 3:41

    couple of years, like the most most of

  110. 3:43

    the economic economic activity in the

  111. 3:45

    world will be done autonomously between

  112. 3:46

    agents.

  113. 3:47

    And actually it looks like uh

  114. 3:49

    uh

  115. 3:50

    really

  116. 3:51

    uh

  117. 3:52

    it picked up. Uh I think like now

  118. 3:54

    everybody understands that agents, in

  119. 3:56

    order to get work done or like longer

  120. 3:58

    jobs without human intervention, they

  121. 4:00

    will actually need to have budget as

  122. 4:02

    well, right? It's It's not like

  123. 4:05

    you can do a lot of things in this world

  124. 4:06

    without without money. And once agents,

  125. 4:09

    you know, can be trusted with money,

  126. 4:11

    they will complete like far longer and,

  127. 4:13

    you know, more complex tasks than they

  128. 4:15

    can do now. So, obviously, a lot of

  129. 4:17

    people understand this

  130. 4:19

    across the industry.

  131. 4:20

    So, over the past year or so, we saw a

  132. 4:23

    lot of new standards or agentic payments

  133. 4:25

    protocol coming to the market because,

  134. 4:26

    obviously, every player in finance or or

  135. 4:30

    payments is very excited about this

  136. 4:31

    opportunity because everybody wants to

  137. 4:33

    get a part of this of this like huge

  138. 4:35

    future

  139. 4:37

    agentic economy and

  140. 4:39

    and transaction volume.

  141. 4:41

    So, first was L402.

  142. 4:43

    It was like in mid 2020.

  143. 4:46

    But then, MasterCard Agent Pay, we have

  144. 4:49

    X242 like Coinbase in my last year, KY

  145. 4:52

    Pay from Skyfire with Visa,

  146. 4:55

    API 2 by Google, ACP by OpenAI and

  147. 4:58

    Stripe, Tab by Visa,

  148. 5:00

    UCP by Google and Shopify, ACTP by

  149. 5:02

    Alipay, MPP by Stripe and Tempol, AMP by

  150. 5:05

    Alipay, Apple by UnionPay, APP by OKX,

  151. 5:09

    and finally, Agent Pay for Machines by

  152. 5:11

    MasterCard. You can see this is really

  153. 5:13

    becoming a heated battleground

  154. 5:15

    and for the future of the agentic

  155. 5:17

    commerce.

  156. 5:18

    And [snorts]

  157. 5:20

    it's really hard to sort of keep track

  158. 5:21

    of all the standards

  159. 5:23

    and all the technologies. We're trying

  160. 5:24

    to.

  161. 5:25

    But, I would say for crypto world,

  162. 5:28

    actually, Swix asked all the speakers

  163. 5:30

    not to use sloppy AI-generated images in

  164. 5:32

    presentations, but I couldn't resist

  165. 5:34

    myself here. Um

  166. 5:36

    I think for crypto world, like the

  167. 5:38

    agentic commerce has been like super

  168. 5:39

    exciting news like because finally,

  169. 5:41

    there is like really solid use case for

  170. 5:43

    crypto except for like trading trading

  171. 5:45

    and gambling, buying illegal substances

  172. 5:49

    on marketplaces and hiding money away

  173. 5:50

    from your spouses, right? So, finally,

  174. 5:53

    agentic commerce really brings the like

  175. 5:55

    long-sought like use case for crypto

  176. 5:57

    that that I actually think is is pretty

  177. 5:58

    solid. And I'm not like a crypto bro

  178. 6:00

    myself. I I'm not holding anything.

  179. 6:02

    Actually, I was fairly skeptical to

  180. 6:04

    crypto all the time.

  181. 6:05

    But I feel that crypto is really well

  182. 6:07

    suited for agentic commerce or agentic

  183. 6:10

    uh payments. Why? Because the

  184. 6:12

    traditional payment methods

  185. 6:14

    uh designed for people are super

  186. 6:16

    expensive, right? And you know,

  187. 6:19

    uh like credit cards, PayPal, or you

  188. 6:21

    know, ACH and bank debit, they cannot be

  189. 6:23

    used for microtransactions. They are

  190. 6:24

    just very ineffective uh as we saw in

  191. 6:26

    previous presentation as well.

  192. 6:28

    So, but there's another problem.

  193. 6:31

    There are buyer disputes. Like anybody

  194. 6:33

    who's selling things online,

  195. 6:35

    you know that uh there are some people

  196. 6:37

    who sort of like buy certain services

  197. 6:39

    from your website and then dispute the

  198. 6:40

    payment and ask for refund, you know, or

  199. 6:43

    or dispute it through their bank and you

  200. 6:44

    have to pay for that. Like

  201. 6:47

    in like traditional like well, human

  202. 6:48

    economy,

  203. 6:50

    there are some trust signals you can you

  204. 6:51

    you can do with the credit credit cards,

  205. 6:53

    you know, uh

  206. 6:54

    like Stripe and and others have

  207. 6:55

    different services to prevent fraud and

  208. 6:57

    so on.

  209. 6:58

    But in agentic interaction, like you

  210. 7:01

    really have no idea who the agent is.

  211. 7:02

    Like there's no agent identity. I mean,

  212. 7:04

    there are some standards being

  213. 7:05

    developed, but it's really not clear uh

  214. 7:07

    who are you transacting with. So, you

  215. 7:09

    just can't allow

  216. 7:11

    them to dispute the payments. You really

  217. 7:13

    need it it needs to be a one-way

  218. 7:14

    transaction and it needs to be like safe

  219. 7:16

    for you.

  220. 7:17

    Right? So, I think uh

  221. 7:19

    crypto is is is a super position for

  222. 7:20

    that. But also, there's important part

  223. 7:23

    uh

  224. 7:24

    crypto, if done well, is like truly

  225. 7:26

    decentralized blockchain where where no

  226. 7:28

    company has like majority of of, you

  227. 7:30

    know, of the of the of the of the vote

  228. 7:31

    in the network,

  229. 7:33

    it can be really decentralized and it

  230. 7:35

    can be like a public standard, you know,

  231. 7:37

    not owned by a single company who, for

  232. 7:39

    example, like Visa or MasterCard, sort

  233. 7:41

    of would abuse their dominant power, you

  234. 7:43

    know, to to extract fees from the from

  235. 7:44

    the from the system.

  236. 7:46

    So, I am I'm very very bullish on crypto

  237. 7:48

    in this in this space and uh

  238. 7:51

    there are basically like currently two

  239. 7:53

    largest uh crypto payment uh providers

  240. 7:56

    for any payments. One is XRO2 from from

  241. 7:58

    Coinbase and second was in this MPP,

  242. 8:00

    machine payments protocol from Stripe.

  243. 8:02

    Looking at the stats uh just yesterday,

  244. 8:05

    uh XRO2 is like 20 times larger in the

  245. 8:08

    number of transactions and the the the

  246. 8:10

    the volume.

  247. 8:11

    Uh so, obviously, we went first with

  248. 8:14

    implementation of XRO2, but we added in

  249. 8:16

    MPP in the process as well. And today,

  250. 8:18

    I'm going to share like a bit of our

  251. 8:19

    experience. This was also presented in

  252. 8:21

    the slide before. Uh

  253. 8:23

    XRO2 builds on the

  254. 8:25

    uh status code introduced like more like

  255. 8:27

    almost 30 years ago in the original HTTP

  256. 8:29

    specification uh called 402 payment

  257. 8:31

    required. So, this status code was

  258. 8:33

    waiting for 30 years patiently

  259. 8:35

    for someone to pick it up. And

  260. 8:36

    obviously, Coinbase took that

  261. 8:37

    opportunity because obviously, it's

  262. 8:39

    great for marketing, you know, we're

  263. 8:40

    finally make uh internet money work.

  264. 8:43

    It's awesome.

  265. 8:44

    So, how it works? I'll just go quickly

  266. 8:46

    because we saw it in the last

  267. 8:47

    presentation as well. So, first, the

  268. 8:48

    client initiates like calls server with

  269. 8:51

    some API request. The server responds

  270. 8:53

    and actually, this is important part.

  271. 8:54

    Specification enforces the server to

  272. 8:56

    respond 402 payment required. There is

  273. 8:58

    no other way to do that. It it needs to

  274. 9:00

    use the 402.

  275. 9:02

    Then, you know, the client creates a

  276. 9:03

    signature uh by basically withdrawing

  277. 9:05

    money from the wallet uh or you know,

  278. 9:08

    allocating the budget from from from the

  279. 9:09

    wallet. Sends uh the signature to the to

  280. 9:12

    the server.

  281. 9:13

    Oh, the server verifies with a

  282. 9:15

    facilitator, which can be like Coinbase,

  283. 9:17

    for example, whether the transaction is

  284. 9:18

    correct. It gets uh confirmation that

  285. 9:21

    the transaction is is right.

  286. 9:23

    And then, it's supposed to do the work,

  287. 9:25

    right? But there is a problem there.

  288. 9:28

    I'll get to that uh in a second.

  289. 9:30

    And after the work is done, uh

  290. 9:33

    you send a transaction you send a

  291. 9:34

    request to the facilitator to settle,

  292. 9:36

    which means like, you know, physically

  293. 9:37

    transfer the money to to your own

  294. 9:39

    wallet.

  295. 9:41

    And then facilitator performs operation

  296. 9:43

    on the blockchain, transaction is

  297. 9:44

    confirmed, everything is settled, all

  298. 9:46

    good. But there is a problem here.

  299. 9:49

    In this moment, like until until the

  300. 9:52

    transaction is is actually submitted to

  301. 9:53

    the blockchain,

  302. 9:55

    the buyer can use the same wallet and

  303. 9:57

    same money to other transaction.

  304. 9:59

    Basically, there is like nothing

  305. 10:01

    preventing the the client from double

  306. 10:02

    spending. So, you know, uh

  307. 10:05

    it can just create like 1,000 signatures

  308. 10:07

    like that, send it to 1,000 requests,

  309. 10:10

    and then, you know, like um

  310. 10:12

    maybe it will not get the result, but

  311. 10:14

    let's say if it's like a simple API

  312. 10:15

    call,

  313. 10:16

    you know, where there is like a like

  314. 10:18

    zero marginal cost for you as a

  315. 10:19

    provider, you can do it. You can do the

  316. 10:21

    work, you know, before uh you settle.

  317. 10:24

    But imagine there is like some

  318. 10:25

    non-trivial work, or maybe you have to

  319. 10:27

    pay external service, and then you

  320. 10:29

    realize, "Oh, the money is gone, right?"

  321. 10:31

    Uh

  322. 10:32

    the the the client skipped out on the

  323. 10:34

    bill, which is not great. So,

  324. 10:36

    there is a work around that. You can

  325. 10:38

    actually uh just do the work after the

  326. 10:40

    transaction is settled. You just need to

  327. 10:42

    make sure you actually get the work

  328. 10:43

    done, you don't fail, and so on, because

  329. 10:45

    then the clients would be pretty angry,

  330. 10:47

    I guess.

  331. 10:48

    But there is a work around for this, and

  332. 10:49

    then you send like 200 OK and payment

  333. 10:52

    response, all good.

  334. 10:54

    So,

  335. 10:56

    there is a problem though. Like um

  336. 10:58

    as I showed before, like uh the standard

  337. 11:00

    requires HTTP 402 uh as a first response

  338. 11:03

    from the server.

  339. 11:04

    But MCP Alt requires HTTP 401.

  340. 11:08

    So, there are like two conflicts in the

  341. 11:10

    standards, and you know, each of them

  342. 11:12

    are actually enforcing it, and you

  343. 11:13

    cannot like sort of like, you know,

  344. 11:15

    return two error codes or two status

  345. 11:17

    codes at the same time.

  346. 11:19

    So, how do you companies resolve that?

  347. 11:21

    Well, quite often they create a

  348. 11:23

    dedicated like hostname host uh like

  349. 11:25

    let's say x402.alchema.com

  350. 11:28

    to serve just the agentic payments

  351. 11:29

    gateway. So, they implement basically a

  352. 11:32

    new API host just to serve the the HTTP

  353. 11:36

    payments and then they have like

  354. 11:38

    Sorry, mcp.alchemy.com

  355. 11:40

    and maybe mpp.alchemy.com, right? But it

  356. 11:42

    sounds like anti-pattern. Why would you

  357. 11:44

    have to duplicate like your

  358. 11:47

    API host for different payment

  359. 11:49

    providers? It's like

  360. 11:50

    imagine like you had to like amazon.com

  361. 11:51

    for different like credit cards. You had

  362. 11:53

    like 20 different Amazons. Like it

  363. 11:54

    doesn't make sense, right? So

  364. 11:56

    So,

  365. 11:57

    I think it is like one of the

  366. 11:57

    weaknesses. It's like I I understand

  367. 11:59

    like using HTTP 402 is great for

  368. 12:01

    marketing, but

  369. 12:03

    I think there should be in protocol some

  370. 12:04

    way to circumvent that and use use just

  371. 12:06

    purely headers, you know? So for

  372. 12:08

    example, the payment payment required

  373. 12:10

    header without the the the status code.

  374. 12:14

    And then

  375. 12:16

    originally when X-Request-ID was

  376. 12:18

    created, it was designed for

  377. 12:21

    like fixed payments. Uh

  378. 12:24

    The the first payment scheme they

  379. 12:25

    introduced

  380. 12:27

    was called exact and it's like for

  381. 12:29

    simple API calls. Like there's like a

  382. 12:30

    fixed fee per transaction, fixed fee per

  383. 12:32

    per call, which is great for I don't

  384. 12:34

    know simple APIs. But unfortunately,

  385. 12:36

    Apify actors are tools on the

  386. 12:38

    marketplace. They typically perform bad

  387. 12:40

    jobs and you know, they can run for, you

  388. 12:42

    know, a few seconds, but they can also

  389. 12:43

    run for a few hours and consume a lot of

  390. 12:45

    resources on the way. They are like

  391. 12:48

    typically like built

  392. 12:49

    as-you-go kind of like meter billing.

  393. 12:52

    So how to do that? Like how to put this

  394. 12:53

    on X-Request-ID 2? So in May 2025,

  395. 12:56

    Coinbase introduced

  396. 12:58

    X-Request-ID 2 with exact payment

  397. 12:59

    scheme. In December 2025, they announced

  398. 13:03

    the version two of the protocol, which

  399. 13:05

    was promising the up to payments payment

  400. 13:06

    scheme to kind of fix this problem of

  401. 13:08

    like meter billing.

  402. 13:10

    But it it took actually another like

  403. 13:12

    half a year almost

  404. 13:13

    to release the the up to finally. It was

  405. 13:15

    just like two or three months ago. So we

  406. 13:17

    were super excited about that. We were

  407. 13:19

    like finally

  408. 13:21

    we can make this work for our services.

  409. 13:24

    But then we realized actually the same

  410. 13:26

    double spending problem which is on on

  411. 13:28

    on exact is also with with up to. I

  412. 13:30

    mean, up to it was just a small sort of

  413. 13:33

    like improvement to the protocol where

  414. 13:35

    when you, you know, call the tool, you

  415. 13:37

    say, "Oh, my maximum is $5." And then

  416. 13:39

    the the the server can charge anything

  417. 13:41

    up to $5. But it doesn't prevent the

  418. 13:43

    double-spending problem. So, basically,

  419. 13:44

    we are sort of stuck again. So, you

  420. 13:47

    know, we have to go back to the drawing

  421. 13:48

    boards and figure like how to do that.

  422. 13:51

    And so, one way we we did it was we just

  423. 13:55

    use exact payment scheme to kind of like

  424. 13:57

    fixed

  425. 13:58

    uh like charge a fixed payment. And then

  426. 14:02

    after the the the the job is done, we we

  427. 14:04

    would like refund the the the wallet

  428. 14:06

    with the with the leftover money,

  429. 14:07

    basically, the money that

  430. 14:08

    that wasn't spent. I mean, that worked.

  431. 14:11

    But uh

  432. 14:12

    so, you charge, you do the work, you

  433. 14:13

    refund the remainder. But that means

  434. 14:16

    like there's suddenly like two

  435. 14:17

    blockchain transactions. That means like

  436. 14:19

    uh

  437. 14:19

    there's a time, you know, to to settle

  438. 14:21

    those transactions. There might be like

  439. 14:23

    some fees associated with that and so

  440. 14:24

    on.

  441. 14:25

    And also, the clients will need to trust

  442. 14:27

    the server

  443. 14:28

    to kind of like, "Hey,

  444. 14:29

    I give you the money, but you give it to

  445. 14:31

    me back, right?" But I think that that

  446. 14:32

    that's that's a minor issue. But it just

  447. 14:35

    feels somehow clunky. Like, why would we

  448. 14:37

    need to do these workarounds, you know?

  449. 14:38

    This protocol should support these

  450. 14:39

    things out of the box.

  451. 14:41

    So, just 2 months ago, uh

  452. 14:43

    Coinbase introduced like new payment

  453. 14:45

    scheme uh which is called batch

  454. 14:46

    settlement, which looks very promising.

  455. 14:48

    We haven't implemented it yet, so we'll

  456. 14:49

    report soon on that. But basically, just

  457. 14:51

    quickly, it works like So, first, the

  458. 14:53

    clients like deposit some money. So,

  459. 14:55

    basically,

  460. 14:56

    it's actually like like real transaction

  461. 14:58

    on blockchain using some uh Ethereum

  462. 15:00

    virtual machine black magic. Basically,

  463. 15:02

    uh the money is put in the escrow.

  464. 15:04

    And then

  465. 15:06

    the the client gets back a voucher like

  466. 15:07

    from the server. Say, "Hey, here is some

  467. 15:09

    cryptographic voucher, and you can use

  468. 15:11

    it to sign like microtransaction as part

  469. 15:14

    of this batch."

  470. 15:15

    And then

  471. 15:16

    like the client sends sends requests,

  472. 15:18

    for example, like API calls or, you

  473. 15:19

    know, for like individual tokens,

  474. 15:21

    whatever, and uh use this like passes

  475. 15:24

    this voucher to sign the those like a

  476. 15:26

    micro payments. But this transactions

  477. 15:28

    are the basically off-chain. They are

  478. 15:30

    just like sort of like cryptographically

  479. 15:32

    guaranteed locally, but you don't need

  480. 15:34

    to like write this like to the to the to

  481. 15:35

    the blockchain, which again is

  482. 15:37

    inefficient, slow, you know, uh

  483. 15:39

    expensive. And then at some point,

  484. 15:41

    you're like, "Hey, I I I accumulated a

  485. 15:43

    lot of these like micro transactions, so

  486. 15:44

    I just like settle them in batch." And

  487. 15:46

    then like you basically perform the

  488. 15:48

    transaction on blockchain. And then you

  489. 15:50

    can do this a couple of times and

  490. 15:51

    eventually refund the rest of the money

  491. 15:54

    like sort of like release the escrow,

  492. 15:55

    right? So actually this looks really

  493. 15:57

    cool, very exciting. We'll

  494. 15:59

    we're currently working on implementing

  495. 16:01

    it now, so we'll see.

  496. 16:03

    But so how did we resolve like all this

  497. 16:05

    to make it work, right? So we didn't

  498. 16:06

    really want to create like new new

  499. 16:08

    endpoints for different payment

  500. 16:10

    services.

  501. 16:12

    We didn't want to like the like hack the

  502. 16:13

    variable usage, you know, to our

  503. 16:15

    services. And also, we really don't want

  504. 16:17

    to like

  505. 16:18

    tweak too much our API because we have

  506. 16:20

    like tens of thousands of customers

  507. 16:21

    depending on that API. So we just can't

  508. 16:23

    like sort of like, you know, do whatever

  509. 16:25

    like new

  510. 16:26

    agentic payment standard is out there,

  511. 16:28

    just implement it right away.

  512. 16:30

    So so kind of to fix these problems,

  513. 16:32

    let me introduce you

  514. 16:34

    let me introduce our newest service on

  515. 16:36

    Appify, which is called agi.appify.com.

  516. 16:40

    And AGI

  517. 16:42

    is not

  518. 16:43

    what you mean it is. It's actually it

  519. 16:44

    stands for agent general interface. So

  520. 16:46

    instead of like application programming

  521. 16:48

    interface, we have agent general

  522. 16:50

    interface that can change anytime but

  523. 16:52

    because it's used by agents, so they're

  524. 16:53

    flexible, right? And

  525. 16:55

    on AGI, it's just a simple website with

  526. 16:58

    like one markdown document. It's not

  527. 17:00

    designed for people, so it kind of looks

  528. 17:02

    ugly, but it's okay. And there's

  529. 17:04

    instructions for agents like, "Hey, how

  530. 17:06

    can you actually

  531. 17:08

    buy things on Appify yourself through

  532. 17:10

    Xapo 2, MPP?" We can iterate quickly on

  533. 17:13

    this on this on this website or on this

  534. 17:15

    service because, you know, agents can

  535. 17:17

    pick up new version. It's not like fixed

  536. 17:20

    like API

  537. 17:21

    needs to be basically, you know,

  538. 17:23

    backwards compatible all the time.

  539. 17:25

    And the way it works is like the agent

  540. 17:28

    comes to agent.apify.com

  541. 17:31

    gets basically can buy a prepaid token.

  542. 17:34

    So basically they say like, "Hey, here's

  543. 17:35

    $5. Give me Give me a Apify token." We

  544. 17:38

    give them like Apify token back and then

  545. 17:40

    they can use the Apify token

  546. 17:42

    through our normal API or through MCP to

  547. 17:45

    run our jobs and services, you know,

  548. 17:47

    normally.

  549. 17:48

    And it it works pretty well.

  550. 17:50

    There is like no skill required. You

  551. 17:52

    just like point your agent to

  552. 17:53

    agent.apify.com. It picks it up.

  553. 17:56

    And I have here like a short demo.

  554. 17:59

    We're running out of time. So this is

  555. 18:00

    just like example how it works like.

  556. 18:03

    Actually, the X road ecosystem is like

  557. 18:05

    really early so that even, you know,

  558. 18:08

    we have to build our own like local

  559. 18:10

    wallet

  560. 18:10

    tool which you can like create like

  561. 18:13

    local like cryptographic key to charge,

  562. 18:15

    you know, with money and show QR code.

  563. 18:17

    Like I mean these things are still not

  564. 18:18

    not not not existing. I mean the

  565. 18:20

    ecosystem is like super super early.

  566. 18:22

    So

  567. 18:23

    I have local wallet with $10. Then I

  568. 18:25

    call like IGI.apify.com

  569. 18:28

    allocate like token with $1. I get back

  570. 18:31

    402 payment required. So there is like

  571. 18:34

    this like super long like payment

  572. 18:35

    required signature.

  573. 18:37

    I use Apify

  574. 18:41

    I use the I use our MCPC just like MCPC

  575. 18:43

    client to sign

  576. 18:46

    the payment and then I can send the

  577. 18:50

    Oh.

  578. 18:52

    Oh oh oh.

  579. 18:54

    This demo didn't work as expected.

  580. 18:58

    Here we go.

  581. 19:01

    Mhm.

  582. 19:06

    Well, anyway, I have 1 minute left.

  583. 19:08

    >> [laughter]

  584. 19:10

    >> Demo more come later. Sorry about that.

  585. 19:12

    So, to conclude my presentation, like

  586. 19:15

    really like try it out and like try to

  587. 19:17

    build try try to use it like actually I

  588. 19:19

    try I tried to use it for the first time

  589. 19:20

    like a couple of weeks ago because I

  590. 19:22

    always thought that oh my god it's

  591. 19:23

    somehow complicated, you know, there is

  592. 19:24

    a lot of this like weird crypto lingo,

  593. 19:25

    you know, like I have I like I don't

  594. 19:27

    know what it what it means. But actually

  595. 19:28

    it's really really simple to to play

  596. 19:30

    with it. You can

  597. 19:32

    you know, get to get up and running in

  598. 19:33

    like 10 minutes. And uh

  599. 19:35

    it's still super early. Uh

  600. 19:37

    I think there's like $1 million

  601. 19:38

    transaction volume like per month. Like

  602. 19:40

    this is nothing, right? Like the economy

  603. 19:41

    is much much bigger. But I think it will

  604. 19:43

    sooner ramp up. And I think

  605. 19:46

    once uh really this like era of like uh

  606. 19:49

    token subsidies will end, I mean when

  607. 19:50

    the when you really will have to pay for

  608. 19:53

    the tokens, you know, that your agents

  609. 19:54

    consume, I think suddenly this decision

  610. 19:56

    whether to build or buy will, you know,

  611. 19:59

    make more economic sense actually to buy

  612. 20:01

    external, you know, services for a lot

  613. 20:02

    of things rather than build from

  614. 20:03

    scratch. And I think at this time really

  615. 20:06

    the agentic payments will explode and uh

  616. 20:08

    very soon uh um

  617. 20:11

    uh the agentic commerce might uh

  618. 20:12

    overtake the normal commerce.

  619. 20:14

    Thanks a lot for your attention and

  620. 20:16

    please come uh to join us uh

  621. 20:19

    in our booth. And actually I have

  622. 20:20

    another talk coming up in 2 hours uh

  623. 20:23

    about MCP and CLI, so you can check that

  624. 20:25

    one as well in Expo stage two.

  625. 20:29

    Thank you. [applause]