AI Engineer

Building safe Payment Infrastructure for the autonomous economy — Steve Kaliski, Stripe

3293 summary words 15 min summary Watch video

Start with the signal

15 min read

Summary

At-a-Glance

  • Verdict: Watch fully
  • Core thesis: Agents spending money require deterministic payment/checkout flows with scoped credentials and structured negotiation, not browser automation—Stripe built three primitives (shared payment tokens, machine payment protocol, agent-to-commerce protocol) to solve wrong place/thing/amount/credential problems
  • Why it matters: Defines infrastructure layer for autonomous economic agents at scale; shows working solutions to the four failure modes (wrong place/thing/amount/credential) with enforceable spend limits and auditable transactions
  • Best use: Reference architecture for agent payment flows; understand how Stripe's approach isolates non-deterministic discovery from deterministic transactions; evaluate for agent integrations

Executive Summary

Steve Kaliski, principal engineer at Stripe (4 years on issuing, 2 years on agent payments), argues agents are already economic actors spending tokens/subscription credits but cannot safely transact with arbitrary businesses. The core insight: discovery/exploration thrive on non-determinism (LLMs recommending products), but credentials/payments/checkout demand determinism. The challenge is enabling agents to buy from any merchant without four failure modes—wrong place (fake domains), wrong thing (buying orange shirt instead of purple), wrong amount (price drift, taxes, currency), wrong credential (pasting raw card numbers or using incompatible payment methods).

Stripe and partners built three primitives to solve this. First, shared payment tokens: an agent provisions a credential (e.g., Visa card) with enforced limits ($25 max, 30-day expiry, scoped to specific seller's Stripe account). Even if the agent misparses price or is tricked by domain, Stripe rejects charges exceeding the mandate. The seller still receives brand/last-four for risk analysis, but the token is non-reusable beyond its mandate. Demo showed $50 charge failing against $25 token, then succeeding at $25.

Second, machine payment protocol (built with Tempo): HTTP tool calls return 402 status codes with encoded payment demands (amount, recipient, mechanism). Agent supplies scoped credential, gets response. Demo showed curl to protected endpoint failing, receiving payment payload (1 cent to specific recipient, USD on Tempo blockchain), approving, and transaction landing on-chain. This binds payment to specific API resource requests, not just checkout pages.

Third, agent-to-commerce protocol (ACP, built with OpenAI): structured JSON catalog/checkout APIs replace browser scraping. Seller exposes product catalog as JSON; agent initiates checkout with line items/quantity; seller returns structured cart state (prices, taxes, shipping options). Every cart update (change payment method, shipping) triggers new structured response. Demo used Stripe Press bookstore: agent requested AI book recommendations, received JSON product data, initiated checkout, and completed payment using shared token. ACP ensures seller controls relationship, receives risk signals, and relays accurate pricing/tax/shipping without agent misinterpreting DOM. Stripe Projects is a wrapper of these primitives for SaaS recurring billing. No public volume stats yet, but Stripe is 'very encouraged.'

Key Takeaways

  • Claim: Discovery and exploration benefit from non-determinism; credentials, payments, and checkout require determinism—this isolation is the critical separation | Evidence: LLMs can recommend products/code/businesses from huge corpus, but payment flows must be programmatic and verifiable. Kaliski positioned this as the foundational architectural principle; demo showed structured ACP replacing browser automation | Caveat: No discussion of how to enforce the boundary when agents make purchasing decisions autonomously without human approval loops; assumes agent discovery feeds into deterministic payment primitives | Implication: Agent architectures should treat payment/checkout as isolated tool calls with strict interfaces, not as extensions of reasoning loops; non-deterministic planners call deterministic payment APIs | Timestamp: 00:30
  • Claim: Agents are already economic actors with their own currency (tokens), proxied through subscriptions or LLM provider billing, but cannot transact with arbitrary businesses | Evidence: Every token input/output in Claude/Codex is effectively spending money, just confined to the LLM provider's billing system. Kaliski frames the challenge as enabling 'other currencies, spend patterns, payment methods, business interactions' | Caveat: No detail on how subscription-based agent spending (e.g., $20/month ChatGPT Plus) maps to per-transaction models; unclear if shared tokens work for prepaid balances vs. credit-based spending | Implication: Current agent spending is siloed; Stripe's primitives aim to generalize this to any merchant, enabling agent-to-business commerce at scale beyond walled LLM marketplaces | Timestamp: 01:45
  • Claim: Shared payment tokens enforce spend limits (amount, currency, time, seller) even if agent misparses price or is tricked by fake domain | Evidence: Demo: Visa card with high credit limit scoped to $25 max, 30-day expiry, specific seller Stripe account. $50 charge rejected ('requested amount greater than mandated'), $25 charge succeeded. Token includes brand/last-four for seller risk analysis but cannot be reused beyond mandate | Caveat: Scoped to 'particular seller'—unclear how this works across marketplaces or multi-seller platforms; no discussion of multi-currency mandates or dynamic pricing (e.g., surge pricing); no mention of dispute/chargeback flows if agent confirms wrong purchase | Implication: Minimizes blast radius of agent payment errors; sellers can accept agent payments without custom fraud logic; agents can delegate credential sharing without trusting seller's charge amount | Timestamp: 06:30
  • Claim: Machine payment protocol (MPP) binds payment to specific HTTP resource requests via 402 status codes and encoded payment demands | Evidence: Demo: curl to protected endpoint returned 402 with payload specifying 1 cent to recipient, USD on Tempo blockchain. Agent approved, transaction landed on-chain. Kaliski: 'HTTP requests should be able to be paid for…tool calls are just HTTP requests' | Caveat: Demo only showed Tempo blockchain payment; unclear if MPP works with traditional card rails or only crypto; no discussion of latency, retry logic, or partial payment failures; 'ephemeral interactions' suggests this is for micro-transactions, not high-value purchases | Implication: Enables pay-per-API-call models for agent tool use (vs. subscription or API key); aligns payment with resource consumption at tool-call granularity; could unlock usage-based pricing for agent services | Timestamp: 11:00
  • Claim: Agent-to-commerce protocol (ACP) replaces browser scraping with structured JSON catalog/checkout APIs, ensuring seller controls relationship and relays accurate pricing/tax/shipping | Evidence: Demo: Stripe Press exposed product catalog as JSON; agent requested AI books, received structured data (images, descriptions, prices); initiated checkout with line items; seller returned cart state (base price, tax, shipping options); agent changed payment method, seller returned updated state; payment completed with shared token. Kaliski: 'Instead of robot trying to pull information out of UI, it has structured data' | Caveat: Requires seller to implement ACP APIs; no mention of adoption incentives or backwards compatibility with existing e-commerce platforms (Shopify, WooCommerce, etc.); unclear how dynamic inventory, promotions, or personalized pricing are handled; no discussion of cart abandonment or session management | Implication: Agent-friendly commerce requires API-first product catalogs; sellers must expose structured endpoints to avoid agents scraping and misinterpreting DOM; ACP could become standard for agent-accessible storefronts | Timestamp: 13:30
  • Claim: Stripe Projects is a wrapper of shared payment tokens for SaaS recurring billing with OAuth-style refresh flows | Evidence: Audience question about recurring budgets (e.g., $25/week to OpenClaw); Kaliski confirmed Stripe Projects uses shared tokens with 'access and refresh flow where you can request subsequent usage,' similar to OAuth. Scoped to individual sellers but 'you could just create infinite of them' for higher budgets | Caveat: No detail on refresh token lifetime, revocation, or usage reporting; unclear if agents can autonomously request token refresh or require human approval; no mention of fraud detection for recurring agent spend | Implication: Enables subscription-like agent spending with per-seller isolation; agents can manage ongoing budgets without re-entering credentials; aligns with SaaS revenue models but may require new accounting/reporting for agent-driven spend | Timestamp: 17:00

Detailed Brief

Four failure modes of agent payments and why browser automation fails

  • Claims: Agents can buy from wrong place (fake domains that mimic Amazon.com), wrong thing (orange shirt instead of purple, 10x more expensive item), wrong amount (price drift, taxes, currency conversion), wrong credential (pasting card numbers, incompatible payment methods); Base approach of letting agents operate browsers (OpenClaw-style automation) is slow, hard to observe, and lacks certification of domain/amount/credential correctness; Browser-based checkout is finicky: filling forms, clicking pay, parsing prices from DOM—all prone to errors and non-determinism
  • Evidence: Kaliski: 'How does an agent certify it's in the right place or domain? Website looks a lot like Amazon.com but is Amazon.whatever'; Pricing example: 'I've seen totally different prices here than back at home. Prices can drift. There's miscalculations, different currencies, taxes'; Payment methods: 'There are other different payment methods that are hard or if not impossible for an agent to relay' (e.g., bank transfers, local payment methods)
  • Caveats: No discussion of whether agents can detect phishing/fake domains via certificate validation or domain reputation services; Assumes agents lack visual/semantic understanding to distinguish product variants (e.g., color, size) from images/descriptions; Does not address dynamic pricing (e.g., personalized discounts, A/B tests) that may legitimately differ from expected prices
  • Implications: Agent payment infrastructure must solve for verification (right place), product matching (right thing), pricing accuracy (right amount), and credential scoping (right credential) simultaneously—not just payment processing; Browser automation is insufficient for safe agent commerce; APIs and structured protocols are necessary; Agents need both discovery tools (non-deterministic) and transaction tools (deterministic) with clear handoff between them

Shared payment tokens: scoped credentials with enforceable mandates

  • Claims: Not all payment methods are universal like credit cards; some (bank transfers, local methods) are expressed differently; Handing raw card number to agent has no spend limit enforcement—agent/seller can charge any amount; Shared payment tokens encode mandate (smart contract) limiting credential to specific seller, amount, currency, time window; Stripe enforces limits even if agent/seller attempts to exceed mandate; seller still receives brand/last-four for risk analysis
  • Evidence: Demo: Visa card with high credit limit provisioned as shared token with $25 max, 30-day expiry, scoped to seller's Stripe account; $50 charge attempt failed: 'requested amount is greater than the amount that was mandated'; $25 charge succeeded; seller received card brand/last-four for existing fraud systems; Kaliski: 'We don't want the seller to be fully hidden from what's happening…we still send that information over'
  • Caveats: Scoped to 'particular seller'—no detail on multi-seller platforms (e.g., Amazon Marketplace) or seller identity verification; No mention of dispute resolution if agent approves wrong purchase but within mandate limits; Unclear how dynamic pricing (e.g., surge, promotions) interacts with fixed mandate amounts; No discussion of partial authorizations, holds, or refunds
  • Implications: Agents can safely delegate credential sharing without trusting seller's charge amount—Stripe acts as enforcement layer; Sellers gain agent payment acceptance without custom fraud/limit logic; existing risk systems still apply; Minimizes blast radius: even if agent compromised or makes wrong decision, financial exposure is capped per mandate; Could enable 'agent wallets' with per-merchant/per-task budgets managed programmatically

Machine payment protocol (MPP): binding payment to HTTP tool calls

  • Claims: Tool calls are HTTP requests; HTTP requests should be payable, not just via API keys; Ephemeral interactions with tools need payment mechanism without pre-provisioned credentials; MPP returns 402 status code with encoded payload specifying amount, recipient, mechanism (e.g., blockchain network); Agent supplies scoped credential, receives response; payment and resource access are atomic
  • Evidence: Demo: curl to protected endpoint returned 402; payload showed 1 cent to recipient, USD on Tempo blockchain; Agent approved payment; transaction landed on Tempo blockchain; endpoint returned success; Kaliski: 'We can communicate the need to pay in those HTTP requests by returning a forward to status code…supply that credential we showed earlier, so we can actually get a response'
  • Caveats: Demo only showed Tempo blockchain payment; unclear if MPP supports card rails, bank transfers, or only crypto; No discussion of latency (blockchain confirmation time), retry logic, or partial payment failures; 'Ephemeral interactions' suggests micro-transactions; unclear if MPP works for high-value purchases or requires different flow; No mention of idempotency, dispute resolution, or refund flows for tool calls
  • Implications: Enables pay-per-use agent tooling without subscription or API key overhead; aligns payment with resource consumption at tool-call granularity; Could unlock new business models: usage-based pricing for agent services (e.g., pay 1 cent per search, 5 cents per analysis); MPP + shared tokens = agents can pay for arbitrary tools with scoped credentials and per-call metering; May require blockchain infrastructure for micro-transactions; traditional card fees ($0.30 + 2.9%) uneconomical for sub-dollar payments

Agent-to-commerce protocol (ACP): structured catalog and checkout APIs

  • Claims: Agents scraping checkout pages risk misinterpreting pricing, taxes, shipping, restrictions; details of purchase matter for disputes/chargebacks; Proxy layer (agent between human and seller) increases risk of incorrectly relaying purchase details; ACP establishes standard APIs/objects for product catalogs, cart state, checkout updates across merchants; Every cart update (quantity, shipping, payment method) triggers structured response from seller with latest state; seller remains in control of relationship and risk signals
  • Evidence: Demo: Stripe Press bookstore exposed JSON product catalog (images, descriptions, prices); Agent requested AI book recommendations, received structured data, initiated checkout; Agent changed shipping/payment method; seller returned updated cart state (line items, base price, tax, shipping options) after each change; Payment completed using shared token; Kaliski: 'Seller continues to have relationship they expected with customer, but also receive signals and risk data they need to safely interact with agents'; Built with OpenAI as partner; Kaliski: 'We've segued from discovery where maybe we're doing web crawling. Now we've transitioned to purely programmatic back and forths'
  • Caveats: Requires seller to implement ACP APIs; no mention of adoption incentives, developer tooling, or integration complexity; No discussion of backwards compatibility with existing e-commerce platforms (Shopify, WooCommerce, Magento); Unclear how dynamic inventory, limited-time promotions, personalized pricing, or cart abandonment are handled; No mention of session management, authentication, or multi-step checkouts (e.g., shipping address validation)
  • Implications: Agent-friendly commerce requires API-first product catalogs; sellers must expose structured endpoints to avoid DOM scraping/misinterpretation; ACP could become standard protocol for agent-accessible storefronts, similar to REST/GraphQL for APIs; Sellers who only expose web UIs will be bypassed by agents or face non-deterministic interactions; API exposure is competitive advantage; Structured negotiation (request → response → updated state) ensures seller controls pricing/inventory/terms; agent cannot unilaterally change cart

Stripe Projects and recurring agent budgets

  • Claims: Stripe Projects wraps shared payment tokens for SaaS recurring billing; Similar to OAuth access/refresh flow: agent can request subsequent usage after token expiry; Higher budgets handled by 'picking a higher number'; still scoped to individual sellers but 'you could create infinite of them'; Subscription-like model: agent provides credential once, seller charges periodically using same scoped token
  • Evidence: Audience question: 'I want to give OpenClaw $25 a week to use with a particular model. How does that factor in?'; Kaliski: 'Similar to OAuth access and refresh flow where you can request subsequent usage'; Kaliski: 'You just pick a higher number. We still scope it to individual sellers, but you could just create infinite of them'; Confirmed Stripe Projects is 'built on shared payment tokens' and 'the recurring part is how the monthly part would work'
  • Caveats: No detail on token refresh lifetime, revocation mechanics, or usage reporting dashboards; Unclear if agents can autonomously request refresh or require human approval per refresh cycle; No mention of fraud detection, anomaly detection, or spend alerts for recurring agent usage; Does not address how unused budget carries over, expires, or resets per period
  • Implications: Enables subscription-like agent spending with per-seller isolation; agents manage ongoing budgets without re-entering credentials; Aligns with SaaS revenue models but may require new accounting/reporting for agent-driven recurring spend; Could enable 'agent allowances': human sets $100/month budget across multiple sellers, agent allocates as needed; Per-seller scoping prevents one compromised seller from draining entire agent budget

Notable Concepts & Terms

  • Shared payment tokens: Stripe-provisioned credentials encoding mandate (amount, currency, time, seller scope) enforceable by Stripe; agent shares token with seller, Stripe rejects charges exceeding mandate; works across 100+ payment methods; seller receives brand/last-four for risk analysis
  • Machine payment protocol (MPP): HTTP 402 status code + encoded payload specifying payment amount/recipient/mechanism for tool calls; agent supplies scoped credential, receives resource; binds payment to specific API requests; built with Tempo; supports blockchain payments (Tempo, Base)
  • Agent-to-commerce protocol (ACP): Structured JSON APIs for product catalogs, cart state, checkout updates; replaces browser scraping; seller returns updated state after each agent action (quantity change, shipping selection); built with OpenAI; ensures seller controls pricing/inventory/terms
  • Stripe Projects: Wrapper of shared payment tokens for SaaS recurring billing; OAuth-style refresh flow for subsequent usage; scoped per-seller but supports 'infinite' tokens for higher budgets; enables subscription-like agent spending
  • Non-determinism vs. determinism boundary: Core architectural principle: discovery/exploration (LLM recommendations, web crawling) benefit from non-determinism; credentials/payments/checkout require determinism (programmatic APIs, verifiable parties, structured negotiation); separation is critical for safe agent commerce
  • Tempo blockchain: Blockchain network supported by Stripe for transaction settlement (alongside Base); MPP demo showed 1-cent payment settled on Tempo; transaction data lives on-chain, Stripe replicates product view in internal system
  • Four failure modes: Wrong place (fake domains), wrong thing (incorrect product/variant), wrong amount (price drift/taxes/currency), wrong credential (raw card paste, incompatible payment method); shared tokens + MPP + ACP aim to solve all four

Operator Notes / Why Ken Should Care

  • Stripe's approach is infrastructural, not speculative: shared tokens, MPP, ACP are live products (Projects wraps tokens; ACP built with OpenAI; MPP supports Tempo/Base). No public volume stats, but 'very encouraged' suggests early traction.
  • Critical for agent GTM: if your product only exposes web UI, agents will scrape (non-deterministic, error-prone) or bypass you. ACP-style structured APIs are table stakes for agent-accessible commerce.
  • Shared tokens solve credential delegation without trust: agent doesn't trust seller's charge amount, seller doesn't trust agent's credential handling—Stripe enforces mandate. Applicable beyond payments (e.g., scoped API keys, resource quotas).
  • MPP enables pay-per-tool-call economics: micro-transactions (1 cent/call) uneconomical on card rails but viable on blockchain. Could unlock new agent service pricing models (usage-based vs. subscription).
  • Non-determinism/determinism boundary is reusable pattern: isolate LLM reasoning (discovery, recommendations) from structured tool execution (payments, writes, credential use). Applies to agent architectures beyond commerce.
  • Stripe's bet: autonomous economy requires verifiable parties (seller controls relationship/risk), structured negotiation (ACP cart updates), and scoped credentials (shared tokens). Browser automation won't scale.
  • Open questions: adoption incentives for ACP (seller integration cost vs. benefit?), backwards compat with Shopify/WooCommerce, handling of dynamic pricing/promotions, dispute resolution when agent approves wrong purchase within mandate.
  • Recurring budgets (Stripe Projects) map to subscription models but need refresh flows. Ken: consider how agents request budget increases, how humans approve/revoke, and how per-seller scoping prevents budget drain.
  • Blockchain vs. card rails: MPP demo used Tempo for 1-cent payment (card fees ~$0.30 make micro-transactions unviable). Implies MPP may be crypto-first; unclear if card-based MPP exists or is planned.
  • Watch for ACP adoption as signal of agent-commerce maturity. If OpenAI/Anthropic start routing agent purchases through ACP, sellers will implement quickly. Otherwise, fragmented protocols.

Watch Map

  • 00:00: Intro: Stripe issuing background, 2 years exploring agent payments
  • 00:30: Core thesis: discovery needs non-determinism, payments need determinism—isolation is critical
  • 01:45: Agents already economic actors (tokens = money, proxied through LLM subscriptions)
  • 03:00: Four failure modes: wrong place, thing, amount, credential
  • 04:30: Why browser automation fails: slow, unobservable, no domain/amount certification
  • 05:30: Ideal approach: bind to merchant, enforce policies, API-driven, verifiable identities
  • 06:30: Shared payment tokens: scoped credentials with mandates (amount, seller, time)
  • 07:00: Demo: shared token creation, $50 charge fails, $25 succeeds, seller receives card details
  • 10:00: Machine payment protocol: 402 status, encoded payment demand, blockchain settlement
  • 11:00: Demo: curl to protected endpoint, 402 response, 1-cent Tempo payment, success
  • 13:00: Agent-to-commerce protocol (ACP): structured catalog/checkout APIs, seller controls state
  • 13:30: Demo: Stripe Press bookstore, JSON product catalog, structured cart updates, payment with shared token
  • 16:30: TLDR: non-deterministic planner + deterministic constraints = small risk radius
  • 17:00: Q&A: blockchain (Tempo/Base, Stripe replicates data), recurring budgets (Stripe Projects, OAuth-style refresh), volume (no public stats)

Source/Metadata

  • Title: Building safe Payment Infrastructure for the autonomous economy — Steve Kaliski, Stripe
  • Transcript words: 4087
  • Duration seconds: 1125
  • Timestamp note: Timestamps provided for key segments and demo transitions; Q&A timestamped at end
Full transcript 2977 words · 18 min read
0:14

SPEAKER_04

I just want to thank everyone for being here. I'm from Stripe. Today I'm going to talk about building safe payment infrastructure for the autonomous economy, or how we can let robots spend money, and how businesses can receive money from robots. So just about me, I'm a principal software engineer at Stripe. I spent my first four years leading our issuing team, so that's our product that lets developers create physical and virtual credit cards that historically would be for humans, increasingly for robots. In the last two years, I've been exploring how to let robots spend money, and how Stripe businesses can adapt to that new kind of buyer.

0:49

SPEAKER_04

And if I have just one takeaway, if you stopped listening for the rest of the presentation, discovery and exploration benefit from non-determinism. So the amazing thing about LMs is this huge corpus of information. The world's information can predict and recommend code, or products, or businesses for you. But credentials, payments, and checkouts require determinism. So not just benefit from it, but require it. So that isolation of how do I find things, or what should I do from how am I going to transact is the critical separation. So we're going to talk about agents as economic actors, all the bad things that can happen,

1:28

SPEAKER_04

the solutions that Stripe and our partners have worked together on to fix those, and then a little bit of what's next. So again, maybe another takeaway. Agents are already economic actors. Right? They have their own currency and tokens. So as you are in cloud code, or Codex, or any other kind of application, you are in effect spending money. It might be proxied through the subscription you have, or converted from the tokens that are being inputted or outputted, turning into dollars. But in effect, we're already letting them spend. Right? Just not with any business, but the LM provider that they're

2:00

SPEAKER_04

working with. So how do we enable other currencies, and other spend patterns, and other payment methods, and other business interactions is our main question. So we probably want to zoom through this, because all we've talked about today is agents, I imagine. So agents produce text. Sometimes they need to read or write data, or interact with third parties. They do so using tools, and sometimes those tools require money. So how do we safely enable this? Again, we all know this, but crudely, an agent is just calling LM and calling tools. There's spend in both of them. And the tools in particular we're going to

2:34

SPEAKER_04

talk about are search, credential management, and payment. It's the magic, but it's also the risk. So what are the main problems? I can buy from the wrong place. I can buy the wrong thing. I can spend the wrong amount. I can use the wrong credential. So the base approach. The open clause style, let's just let the robot operate a human, hopefully not operate a human, but... Concerning slip. Hopefully it doesn't come true. Let the robot just operate the browser like a human. So, wrong place. Well, first, how does an agent certify it's in the right place or domain? How do I know that maybe the website looks a lot like Amazon.com, but is Amazon.whatever and is a fake one?

3:21

SPEAKER_04

The wrong thing. You could stumble through a site looking for a purple t-shirt and you could maybe less concerningly buy an orange t-shirt, but you could also buy something that's 10 times more expensive. The wrong amount. As we know, at least for me, I've seen totally different prices here than back at home. Prices can drift. There's miscalculations, different currencies, taxes, and so on. The number your robots may extract from the page may not actually be the amount of money that you want to spend. And of course, wrong credential. You could paste a credit card. You could go the wrong place. But, you know, as here, there are other different payment methods

3:57

SPEAKER_04

that are hard or, if not impossible, for an agent to relay. So, we want to be able to solve all four of those things. And again, the basic approach of taking a card number, bad. Browsing a site can be finicky, filling forms, clicking pay. It's all slow, hard to observe outcomes. And, you know, this isn't unique to payments, right? It's the same as operating any web app or anything that has a monetary risk. And that's why MCPs and APIs exist. So, you know, in Stripe parlance, the left-hand side dashboard is for a human. On the right-hand side, robots prefer code. So, the ideal approach is something where we can bind to a merchant. We can enforce spend policies.

4:35

SPEAKER_04

It can be API-driven and thus programmatic. And you can have verifiable identities. So, I'm going to talk about three different things that Stripe and our partners have built together around credentials, payment flows, and checkout to illustrate how we're trying to solve all of those problems. So, first, I want to talk about shared payment tokens. And the idea here is that, you know, first, not all payment methods are universal, like credit cards. Some are expressed in different ways. But there's also no way to enforce spend limits or controls when you just hand a card number to someone

5:08

SPEAKER_04

else. Right? You're going to trust them that they charge the amount that you've parsed out of the page or whatnot. And what we built with shared payment tokens is this idea that an agent can collect a payment credential and it can share it with the seller, you know, across hundreds of different payment method types. And it can encode a mandate or smart contract the limitations of that credential to be used by a particular seller. So, you know, we'll do a demo in a second, but I can apply usage limits to specific currencies, to amounts for time, and a particular seller. So, even if I've been duped by a domain or haven't parsed the amount correctly,

5:46

SPEAKER_04

I can still apply what I think is right in terms of the amount in the particular seller that I'm targeting. So, again, scope to a seller. It's enforced by Stripe, works across payment methods, and it's auditable. So, we're going to jump into a quick demo just to show you how that works. So, let's look at a common Stripe integration. So, I have my seller's Stripe account, and I want to charge $50. So, normally I would create a payment intent, and on line 39 I'd collect that payment method myself, and it would run, and that's all great. But now instead of collecting the payment method on my website, an agent is collecting a payment method that it may have already received

6:27

SPEAKER_04

from its human operator, or through the subscription that backs the harness, or whatever it may be. So, we're going to introduce a second Stripe account, and this is the agent Stripe account. And it's going to provision a shared payment token. Let's say it had collected a Visa card, and it's going to say that this Visa card, which has a much higher credit limit, is only going to work for $25. And it's only going to work for the next 30 days, and it's scoped to this particular seller, illustratively, my internal test account. So, we're going to go ahead and we're going to create that credential.

7:02

SPEAKER_04

payment method on my website, an agent is collecting a payment method that it may have already received from its human operator, or through the subscription that backs the harness, or whatever it may be. So, we're going to introduce a second Stripe account, and this is the agent Stripe account. And it's going to provision a share payment token. Let's say it had collected a Visa card, and it's going to say that this Visa card, which has a much higher credit limit, is only going to work for $25. And it's only going to work for the next 30 days, and it's scoped to this particular seller, illustratively, my internal test account. So, we're going to go ahead and we're going to create that credential. And instead of the seller using a payment method that they've collected, they're going to receive a token that's been granted to them, and try to run the payment.

7:07

SPEAKER_04

So, let's... Cool. So, the first thing we see is that we created that new shared payment token, which applies to that Visa card, it's active, it has that $25 limit, and it's going to expire in 30 days. Now, what's important as part of this also is we don't want the seller to be fully hidden from what's happening. So, in the same way that they would have otherwise collected a card and knew the brand and knew the last four and so on, we still send that information over. So, the brand and the last four, the credit type, they can use all these inputs in their existing risk analysis. So, an important part here too is that we're not trying to do something secret from the seller. We still want to provide the relevant information to the seller so that they can still apply their previous risk systems so that they can accept payment. But what we'll see is we actually had a failure here. So, the requested amount, which was $50, is greater than the amount that was mandated. So, again, we collected a credential, we shared it, we applied a limit, we trusted the seller, the seller tried to do more, and now Stripe still enforces limitations. So, again, this would work across any payment method type. And now that we can lower the cost, we'll see that this actually goes through. Yep, and that payment went through. So, now we're able to securely send credentials, apply limits, make sure there's a minimized blast radius, and still allow the seller to process payments as they normally would. Now, that covers credential sharing, but there's two more parts of this: how do we actually associate payment to a product, and then how do we do checkout. So, the second thing we built, we worked with our friends at Tempo, was what we call the machine payments protocol. So, back to that original point around tool calls, well, tool calls are just HTTP requests that agents can make. And HTTP requests should be able to be paid for, right? So, one way is you pass in an API key, but sometimes those interactions with tools can be ephemeral. So, we want to be able to communicate the need to pay in those HTTP requests by returning a forward to status code, and then supply that credential that we showed earlier, so that we can actually get a response. So, we've covered how do we get credentials, how do we know to pay for them, and associate with the actual product we're buying. So, again, closing that window of improved determinism, so maximizing determinism. Let's do a demo.

7:14

SPEAKER_04

So, now if we jump over here, I'm going to start a server. This server's a regular web server. It has protected endpoints that now require payment. So, let's say my robot is calling one of these endpoints to try to execute a tool. We'll make a curl request to it. It fails. It tells us that we need to pay. It gives us some encoded payload that explains what we're buying and who we're paying for and what we're paying for and the mechanism to pay for it. And I can go ahead and pay for it now. So, now we get some extra information back because we're speaking that protocol. We can see that it's going to cost a penny to this particular recipient. It'll be paid USD on the Tempo blockchain. And I can go ahead and approve it. So, now that goes through. We get our success. And then we can see a transaction landed on the blockchain. So, we're able to create credentials that have limited use. Now we can be told by a seller how they want money and have it be associated with the actual resource I'm requesting. And I can send them funds. But the last part is, let's just jump back in. It's that we're not always buying API calls. And sometimes the details of the purchase matter quite a bit. Right. The tax amount, maybe there's that. There's restrictions about the amount of things I can buy. All the things that a typical e-commerce site is trying to convey. And to that earlier point around the robot stumbling around a checkout page, there are a lot of details that we want to be able to relay back to the agent and ultimately back to the human buyer to make sure that the thing we're buying is the thing we think we're buying. We want to minimize disputes and chargebacks and so on. And if we have this proxy layer of the agent in between, we run the risk of incorrectly relaying those details. So, what we built with OpenAI being the agent to commerce protocol is a standard set of APIs and objects that can explain how checkouts work across the web. So, similar to the last thing we showed where the seller conveys the need to pay, we established a back and forth between agent, a seller, and their PSP, where every single time the agent wants to create a checkout or update the quantity or pick a shipping amount, the seller can relay back the latest state, respond to that request, and ultimately result in payment. So, we can illustrate how this works with a real business. So, Stripe operates something called Stripe Press. It's our store of books. And this is obviously a very cool, human-friendly way to look at it. But our equivalency is the robot-friendly way of looking at it. So, the ACP protocol, or the ACP covers a few things. How do we express a product catalog? So, instead of the robot stumbling around and having to click on links and figure out what to buy, we can express our products in JSON with images and descriptions and pricing. And then the robot can pick one of those and initiate a checkout. So, we can pull up a familiar UI. Maybe I'm asking for recommendations about AI books. And on the right-hand side, we'll see the requests that the agent makes. So, it tells a little bit about the buyer, the line items, and quantity it wants. And then the seller can relay back basically the state of the cart. So, instead of the robot trying to pull information out of a UI like this, it has structured data that it can refer to. So, the line items, the base price of each, applicable tax, the different fulfillment options, and so on. So, nothing surprising here, but our goal is to establish that determinism.

7:19

SPEAKER_04

So, we can pull up a familiar UI. Maybe I'm asking for recommendations about AI books. And on the right-hand side, we'll see the requests that the agent makes. So, it tells a little bit about the buyer, the line items, and quantity it wants. And then the seller can relay back the state of the cart. So, instead of the robot trying to pull information out of a UI like this, it has structured data that it can refer to. So, the line items, the base price of each, applicable tax, the different fulfillment options, and so on. So, nothing surprising here, but our goal is to establish that determinism. Right? We've segued from discovery where maybe we're doing some web crawling.

8:08

SPEAKER_04

Now, we've transitioned to purely programmatic back and forths. So, as I change payment methods or I change shipping and ultimately pay, those back and forths happen. Payment goes through using something like a shared payment token or otherwise to relay those credentials. So, at the end, we have API-driven commerce flows that are flexible to different payment methods, whether they're crypto or cards or any of the other hundreds of payments that exist. And critically, the seller remains in control. They continue to have the relationship that they expected to have with the customer, but also receive the signals and risk data that they need to safely interact with agents.

8:45

SPEAKER_04

And most of us have already done this with our products, but we want to make our products agent-friendly. And if we only expose web UIs or applications like that, we increase the likelihood of non-determinism interacting with our businesses. And instead, we should make them agent-friendly to maximize the deterministic flows that agents have with our businesses. So, leveraging things like shared payment tokens or wallets or other technologies to manage those credentials safely is important for agents so that they're able to not accidentally spend a gajillion dollars on a card. So, TLDR, discovery we should keep with non-determinism. That's perfect.

9:20

SPEAKER_04

Payments and checkout and credentials we want to shift towards exclusively deterministic. So, non-deterministic planner and constraints with verifiable parties and structured negotiation results in a small radius of risk and hopefully safe payments between agents and businesses. So, that's all I got. Thank you. I have two minutes and nine seconds if people have questions.

9:58

SPEAKER_04

You mentioned blockchain. Yeah. What is this hosted by Tempo or Stripe or do I know that data? Yeah, so Stripe supports a number of different protocols and a variety of networks including Base and Tempo. So, the transaction data innately lives on those chains and then Stripe replicates the product view of that data in our own system.

10:33

SPEAKER_04

I like that. This guy. The shared payment token is really cool. In terms of recurring budgets and payments, I'm thinking of, I want to give OpenClaw $25 a week to use with a particular model. How does that factor in? Yeah, so you touched on two points. The subscription thing and then sort of more enduring policies. On the subscription side, in the same way you give a credit card to a business and you permit it to spend $25 or whatever on a periodic basis, but it still uses the same credential. We have a similar idea there as well.

11:47

SPEAKER_04

Similar to OAuth access and refresh flow where you can request subsequent usage. And then on the other part about more balanced budgets, the sort of equivalency can work here where you just pick a higher number. We still scope it to individual sellers, but you could just create infinite of them.

12:13

SPEAKER_04

So I'm wondering if Stripe projects is just effectively a wrapper of these primitives that you've discussed during the session? Yes. Thank you for that plug. I did not have time to include that, but yes, Stripe projects is built on shared payment tokens.

12:53

SPEAKER_04

And then the manner in which a seller or SaaS business can express their products is the idea. And then the point you touched on, the recurring part, is how the monthly part would work. Thank you. You mentioned that you have started this two years ago. I'm wondering about the number of such payments done and the volume money moves. We don't have public stats on any of that, but I think in general we're very encouraged by it and we're really excited about trying to support more businesses and accepting that type of payment. Okay. Well, I'm at zero now. So thank you everyone. Appreciate it. And on the right-hand side, we'll see the requests that the agent makes.

13:34

SPEAKER_04

So, it tells a little bit about the buyer, the line items, and quantity it wants. And then the seller can relay back basically the state of the cart. So, instead of the robot trying to pull information out of a UI like this, it has structured data that it can refer to. So, the line items, the base price of each, applicable tax, the different fulfillment options, and so on. So, nothing surprising here, but our goal is to sort of establish that determinism. Right? We're like, we've segued from discovery where maybe we're doing some web crawling. Now, we've transitioned to just purely programmatic back and forths.

14:10

SPEAKER_04

So, you know, as I change payment methods or I change shipping and ultimately pay, those back and forths happen. Payment goes through using something like a shared payment token or otherwise to relay those credentials.

14:31

SPEAKER_04

So, you know, at the end, we have API-driven commerce flows that are flexible to different payment methods, whether they're crypto or cards or any of the other hundreds of payments that exist. And critically, the seller remains in control. They continue to have the relationship that they expected to have with the customer, but also receive the signals and risk data that they need to safely interact with agents. And sort of the, you know, goes without saying, most of us have already done this with our products, but, you know, we want to make our products agent-friendly. And if we only expose web UIs or applications like that, we increase the likelihood of non,

15:09

SPEAKER_04

you know, the non-determinism interacting with our businesses. And instead, we should make them agent-friendly to maximize the deterministic flows that agents have with our businesses. So, leveraging things like shared payment tokens or wallets or other technologies to then manage those credentials safely is then important for agents so that they're able to, you know, not accidentally spend a gajillion dollars on a card. So, TLDR, discovery we should keep with non-determinism. That's perfect. Payments and checkout and credentials we want to shift towards exclusively deterministic.

15:42

SPEAKER_04

So, non-deterministic planner and constraints with verifiable parties and structured negotiation results in a small radius of risk and hopefully safe payments between agents and businesses. So, that's all I got. Thank you.

16:02

SPEAKER_04

I have two minutes and nine seconds if people have questions. You mentioned blockchain. Yeah. What is this hosted by Tempo or Stripe or do I know that data? Yeah, so, you know, Stripe supports a number of different protocols and a variety of networks including base and Tempo. So, the transaction data innately lives on those chains and then Stripe replicates the sort of product view of that data in our own system. I like that. This guy. The shared payment token is really cool. In terms of say like recurring budgets and payments, like I'm thinking of, you know, I want to give OpenClaw $25 a week to use with like a particular model. How does that kind of factor in?

16:51

SPEAKER_04

Yeah, so you touched on two points. The subscription thing and then sort of more enduring policies. On the subscription side, in the same way you give a credit card to a business and you permit it to spend $25 or whatever on a periodic basis, but it still uses the same credential. We have a similar idea there as well. Sort of similar to in OAuth access and refresh flow where you can sort of like request subsequent usage. And then on the another part about like sort of more balanced budgets, the sort of equivalency can work here where you just pick a higher number. We still scope it to individual sellers, but you could just create infinite of them.

17:35

SPEAKER_04

So I'm wondering is Stripe projects just effectively a wrapper of these primitives that you've discussed during the session? Yes. Thank you for that plug. I did not have time to include that, but yes, Stripe projects is built on shared payment tokens. And then the mannerism in which seller or SaaS business can express their products is the idea. And then the point you touched on, the recurring part, is how the monthly part would work. Thank you. You mentioned that you have started this two years ago. I'm wondering about the number of such payments done and the volume money moves. We don't have public stats on any of that, but I think in general we're very encouraged by it

18:15

SPEAKER_04

and we're really excited about trying to support more businesses and accepting that type of payment. Okay.

18:26

SPEAKER_04

Well, I'm at zero now. So thank you everyone. Appreciate it.

Reading tools

Type to find a passage

Appearance
Ask this transcript

Add a note