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

Jan Curn· Apify20:48

Read the talk

x402 Isn’t Good Yet: Paying for Agent Tools Without Leaving the Seller Exposed

Jan Curn explains what Apify learned while adding agent payments: signatures do not reserve money, metered jobs need more than a spending ceiling, and a prepaid token can connect new payment protocols to an established API.

From a talk by Jan Curn

At a glance

Ideas worth remembering

  • Payment authorization, price flexibility and secured funds solve different problems. Curn says a verified signature leaves money spendable elsewhere, and an up to authorization such as $5 changes the allowed charge without closing that exposure.

  • Settling before costly work protects the provider, but collecting upfront creates delivery and refund obligations. Apify’s charge-and-refund approach requires two blockchain transactions and buyer trust that unused funds will be returned.

  • Protocols become difficult to combine when both require the same response field. Curn’s proposed header-based payment option would address the 402-versus-401 conflict without making the payment method determine the service hostname.

  • Escrow-backed batch settlement could spread blockchain overhead across many off-chain purchases. Curn describes a deposit, cryptographic vouchers, accumulated microtransactions and eventual settlement, but Apify had not completed the implementation or reported results.

  • A prepaid token separates a changing payment integration from established execution interfaces. Apify’s Markdown purchasing interface lets agents obtain a token for its normal API or MCP, although the attempted live demonstration did not establish a successful purchase.

  • Curn’s adoption forecast rests on agents finding external services economical to buy. His closing estimate of about $1 million in monthly transaction volume describes an early market; the predicted expansion depends partly on the end of token subsidies changing build-or-buy decisions.

A promising protocol can still have rough edges

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 73 seconds
A promising protocol can still have rough edges

Jan Curn opens by recalling David Cramer’s earlier presentation about MCP at AI Engineer World’s Fair. Its argument was that an exciting technology could deserve experimentation while still demanding modest expectations. Curn praises the MCP server Sentry subsequently built and describes MCP’s adoption through connectors and apps in major AI products. He uses that progression as the premise for his own talk: criticism can come from someone who wants a protocol to succeed and intends to build a strong integration.

0:140:16
Suggest correction

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

0:01 · section reference included

Why a tool marketplace wants agents to have budgets

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 201 seconds
Why a tool marketplace wants agents to have budgets

Curn introduces himself as Apify’s founder and CEO. He says its marketplace contains about 45,000 tools, called actors, covering data extraction from social media, e-commerce, hospitality, travel, search engines and maps, along with agents and automations. Apify builds some actors, while community developers build others. In the marketplace model he describes, Apify sells their tools and passes revenue back to developers; community payouts exceed $1 million per month.

Agent payments matter to that business because Apify wants agents to reach its tools wherever they run and whatever protocol they use. Curn reports launching the x402 integration with Coinbase two days before the talk and receiving about 1 million views. He says the available x402 catalog had contained about 2,000 tools and Apify added another 20,000, which he describes as a tenfold expansion. Those figures explain his enthusiasm: payment support makes an existing inventory of useful services available to a new kind of buyer.

His broader argument is that autonomous work requires purchasing power. An agent carrying out a longer job without human intervention may need paid services along the way. Giving it a budget could therefore let it complete more complex tasks, provided it can be trusted with money. Curn’s prediction that agents will conduct most economic activity within a few years is a forecast, while the immediate engineering requirement is more concrete: agents need a way to buy resources as part of doing their work.

That prospect has attracted payment and finance companies. Curn describes a growing collection of standards competing for a share of future agent transactions. For a service provider, the opportunity comes with an integration problem: many organizations want to define how agents pay, and supporting the emerging market means following several changing protocols.

1:531:54
Suggest correction

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

1:53 · section reference included

A crowded standards landscape

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 311 seconds
A crowded standards landscape

Curn starts his survey with L402, which he places in mid-2020, and moves through offerings from card networks, payment companies and AI companies. Examples include Mastercard Agent Pay and ACP from OpenAI and Stripe. The purpose of the list is to show how crowded the field has become. He calls agent commerce a heated battleground and acknowledges that keeping track of its standards and technologies is difficult.

4:414:43
Suggest correction

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

4:41 · section reference included

The seller’s case for crypto payments

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 487 seconds
The seller’s case for crypto payments

After a brief joke about presentation imagery and crypto’s familiar uses, Curn explains why agent commerce changed his otherwise skeptical view. His first argument concerns transaction economics. He regards credit cards, PayPal, ACH and bank debit as expensive or ineffective for microtransactions. If agents buy many small units of service, payment overhead can make those purchases impractical.

His second argument is about disputes. A buyer can consume an online service and then contest the payment through a bank, creating costs for the seller. Conventional commerce has trust signals and fraud-prevention services, but Curn says agent identity remains unclear despite standards under development. His preferred response is a one-way payment that protects the provider from a later dispute. This is a seller-oriented design choice: the reason he values that finality is the difficulty of knowing who is buying and assessing the buyer’s trustworthiness.

He also values the possibility of a public payment standard without a single company controlling it. His argument is conditional: a blockchain must actually be decentralized, with no company holding a majority of the network’s vote. Under that condition, he expects less opportunity for a dominant intermediary to extract fees. Decentralization is therefore part of his case for crypto, rather than a property he establishes for every system discussed.

Curn identifies Coinbase’s x402 and Stripe’s Machine Payments Protocol, or MPP, as the two largest crypto payment options in this area. He reports that statistics he checked the previous day showed x402 at about 20 times MPP’s transaction count and volume. That reported lead explains why Apify implemented x402 first, although it added MPP during the process as well. The comparison is a snapshot informing an implementation decision, not a permanent ranking.

5:285:30
Suggest correction

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

5:25 · section reference included

Verification leaves a window before settlement

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 643 seconds
Verification leaves a window before settlement

x402 builds on HTTP 402, Payment Required, a status code Curn describes as having waited almost 30 years for practical use. In his walkthrough, a client first sends an API request. The server returns 402, which he says the specification requires, and the client responds with a payment signature. The server then asks a facilitator, such as Coinbase, to verify that payment. In the sequence he presents, the server performs the requested work after verification and only afterward asks the facilitator to settle.

Settlement is the step that transfers money into the seller’s wallet through a blockchain operation. The distinction matters because, in Curn’s account, verifying the signature does not reserve the funds. Before the transaction reaches the blockchain, the buyer can use the same wallet balance for another transaction. His example is a client creating 1,000 signatures and sending 1,000 requests against the same money. Several providers could start work on apparently valid payments even though that balance cannot pay them all.

The buyer might never receive a result, but withholding the result does not recover resources already spent producing it. Curn distinguishes a simple API call with zero marginal cost from substantial work or a job that requires paying an external service. A provider may tolerate doing the first kind of work before settlement. For the second kind, discovering afterward that the money is gone means the provider has incurred costs without being paid.

His workaround changes the order: settle the payment before doing the work, then return the result with 200 OK and the payment response. This protects the seller from beginning a costly job against funds that remain spendable elsewhere. It also makes successful delivery especially important. Once the client has paid, a failed job leaves the client dissatisfied; collecting first does not eliminate the obligation to complete the service.

8:238:25
Suggest correction

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

8:23 · section reference included

Payment and authentication compete for the status code

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 669 seconds
Payment and authentication compete for the status code

Curn next describes a composition problem between x402 and MCP authentication. In the initial response he discusses, x402 requires HTTP 402 while MCP authentication requires HTTP 401. A single HTTP response cannot carry both status codes. The conflict is therefore about two protocols demanding control of the same response field.

He says companies often resolve this by creating dedicated hostnames for payment gateways, MCP and other payment protocols. Each host can then follow its own response requirements. Curn considers that duplication an antipattern because the payment method starts determining where a client must access the service. His analogy is having 20 different Amazons for different credit cards: the seller’s offering is the same, but the buyer is routed to a different storefront according to how it pays.

His proposed improvement is to allow payment requirements to be conveyed entirely through headers without requiring status 402. A payment-required header could carry the payment information while the response status serves another protocol’s needs. He acknowledges the marketing appeal of 402, but argues that the protocol should offer a way around the status-code dependency. He presents this as a desired change, rather than an available solution he demonstrates.

10:5811:00
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

A spending ceiling does not secure a metered job

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 786 seconds
A spending ceiling does not secure a metered job

The original exact payment scheme charges a fixed amount per call. Curn regards that as a good fit for simple APIs with known prices. Apify actors create a different billing problem: they can run for a few seconds or a few hours and consume resources along the way. Their pay-as-you-go, metered billing depends on the work actually performed, so a fixed per-call charge does not naturally express the final cost.

Curn places the introduction of exact payments in May 2025 and the announcement of an up to scheme in December 2025. He says the latter took almost another half-year to become available, arriving two or three months before the talk. Apify was excited because a maximum authorized amount seemed to offer a way to support its variable-cost services.

The improvement did not solve the problem Apify needed solved. In Curn’s example, a client authorizes a maximum of $5 and the server may charge any amount up to $5. That flexibility lets the charge reflect usage, but he says the same double-spending exposure remains. A ceiling controls how much the seller may collect; it does not ensure that the authorized money will still be available after the seller has performed the job.

12:1812:21
Suggest correction

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

12:16 · section reference included

Collect first, refund later—and consider escrow

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 944 seconds
Collect first, refund later—and consider escrow

Apify’s working approach uses exact payments to collect a fixed amount upfront, performs the job, and refunds the unused money to the client’s wallet afterward. This lets a fixed initial payment support a final charge based on actual consumption. Curn says it worked, but identifies the cost of the workaround: a charge followed by a refund requires two blockchain transactions, with settlement time and possible fees for each.

It also requires the buyer to trust the server to return the remainder. The client hands over money before knowing the final charge and relies on the provider’s refund. Curn treats that trust requirement as a relatively minor issue, yet finds the overall arrangement clunky. His objection is that support for variable usage should be built into the payment protocol rather than requiring providers to assemble a charge-and-refund workaround.

Batch settlement looks more promising to him. In the mechanism he outlines, a client first makes an actual blockchain deposit into escrow. The server returns a cryptographic voucher that the client can use to sign microtransactions within the batch. The important change is that the arrangement starts with money deposited on-chain, rather than relying only on a signature against a wallet balance.

Individual requests, such as API calls or purchases of individual tokens, then use voucher-backed payments off-chain. Curn describes these payments as cryptographically guaranteed locally, avoiding a blockchain write for every small purchase. The provider accumulates them and settles a batch on-chain. It can repeat that process and eventually release the escrow’s remaining money. The intended benefit is to spread blockchain overhead across many purchases. Apify had not completed this implementation at the time of the talk, so Curn’s enthusiasm is prospective; he does not report operational results or establish the details of its guarantees.

13:5113:55
Suggest correction

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

13:51 · section reference included

Buy a prepaid token, then use the established tools

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 1018 seconds
Buy a prepaid token, then use the established tools

Curn returns to the constraints shaping Apify’s integration. The company wanted to avoid separate service endpoints for every payment method and awkward adaptations of variable usage. It also had tens of thousands of customers depending on its existing API. Reworking that API whenever a new agent payment standard appeared would put a mature service contract under continual pressure.

His alternative is an agent general interface, abbreviated AGI. It is a simple website containing one Markdown document that explains how agents can buy from Apify using x402 or MPP. Curn argues that this interface can change quickly because agents can read updated instructions, whereas a conventional API must remain compatible with existing integrations. The design rests on an expectation of agent flexibility: the agent interprets the current purchasing instructions instead of depending entirely on a fixed programmatic contract.

The purchase itself is deliberately narrow. An agent supplies money—$5 in his example—and receives a prepaid Apify token. It then uses that token through Apify’s normal API or MCP to run jobs and services. This separates obtaining prepaid access from executing the tools: new payment protocols handle the purchase, while the existing interfaces continue to handle the work. Curn says an agent can pick up the instructions simply by being pointed to the page, without a separate skill.

16:0316:05
Suggest correction

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

16:03 · section reference included

The attempted purchase exposes an early ecosystem

For the demonstration, Curn says Apify had to build its own local wallet tool. It creates a local cryptographic key and supports funding the wallet and displaying a QR code. He presents the need to supply this tooling as evidence that the ecosystem remains very early. A payment protocol alone is insufficient for an agent purchase if the agent lacks practical wallet creation, funding and signing tools.

He begins with $10 in a local wallet and requests a token funded with $1. He reports receiving 402 Payment Required and describes a long payment-required payload, then uses a client to sign the payment. The demonstration does not finish as expected. Curn acknowledges the failure and moves on because only a minute remains. The sequence illustrates the intended request-and-sign flow, but it does not establish a completed payment or a successfully issued prepaid token.

17:5618:00
Suggest correction

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

17:56 · section reference included

The growth argument depends on the economics of buying

Selected presentation frame from x402 isn’t good (yet) — Jan Curn, Apify at 1199 seconds
The growth argument depends on the economics of buying

Curn closes by encouraging experimentation. He says crypto terminology had made the system seem complicated before he tried it, but that getting started was simpler than expected and could take about 10 minutes. That is his account of initial experimentation, rather than a claim that a production integration is equally quick. He also estimates transaction volume at about $1 million per month, emphasizing how small the market still is relative to the wider economy.

His expected growth driver is a change in the build-or-buy calculation. If token subsidies end and users must pay for the tokens their agents consume, building a capability from scratch may become less attractive than buying an external service. In that scenario, agent payments become a practical part of choosing the cheaper way to accomplish a task. He predicts rapid growth and suggests agent commerce might overtake ordinary commerce, but the argument remains conditional on those economic changes and on agents choosing to purchase services.

He ends by thanking the audience, inviting them to Apify’s booth and mentioning another talk about MCP and CLI two hours later on Expo stage two. The presentation closes with applause.

19:1219:15
Suggest correction

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

19:12 · section reference included

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]