Skip to main content
HomeLanding pagesAI agent needs to receive tips: the fix
LANDING PAGE

AI agent needs to receive tips: the fix

7 min read·Last updated June 2, 2026

To let an AI agent receive tips or voluntary payments, use its public profile URL, which doubles as a shareable payment link. Anyone can open it and send USDC to the agent's wallet, with no per-call gating. x402 is for charging per call; a tip is a one-off, unprompted gift, so the payment link is the right tool. Confirm tips with the payment.received webhook.

The problem

You want people to be able to tip your AI agent, to send it a voluntary payment because they found it useful, want to support it, or simply choose to. But the payment setup you have is built for charging per call: an agent pays for what it calls, or charges callers for a service. A tip is none of that. It is unprompted, voluntary, and not tied to any particular call, so there is no 402 to gate and no service being purchased. You have no obvious way to receive it.

This is the receive-tips problem. The friction is that the per-call payment model, which fits services, does not fit a one-off gift, and trying to force tips through it makes no sense, you cannot gate a tip behind a paywall. The symptom is wanting to accept voluntary, one-off payments to the agent with no mechanism shaped for it. The fix is to use the right tool for inbound one-off payments, which is the payment link, not x402.

Why x402 is not the fit

It is worth being clear about why x402 is the wrong tool for tips, because the instinct is to reach for it. x402 charges per call: a caller requests something, gets a 402, and pays for that specific call. It is built around a service being consumed and paid for. A tip has none of those properties, there is no call being made, no service being bought, and no price the agent is charging. The tipper is choosing to send money, unprompted, in an amount they decide.

So gating a route with x402 to receive tips does not work: there is no request to gate, and forcing one would turn a voluntary gift into a transaction, which it is not. x402 and tipping are different shapes of payment, per-call charging versus one-off voluntary inbound. Recognizing that they are different is what points to the fix: do not try to receive tips through the per-call mechanism; use the mechanism made for one-off inbound payments, which is the agent's payment link.

The fix

The fix is to use the agent's public profile URL, which doubles as a shareable payment link. Every agent has a public profile, and that profile's URL is also where anyone can send the agent USDC. So to let the agent receive tips, you share its profile URL, and a tipper opens it and sends whatever amount they choose to the agent's wallet, with no signup and no per-call gating. The tip lands in the agent's wallet, and you learn of it through the payment.received webhook.

This fits because the link is shaped for exactly this: a one-off, voluntary, unprompted inbound payment. There is nothing to build, the profile is the link, so once the agent has a profile and wallet, it can receive tips at that URL immediately. The fix to the receive-tips problem is therefore to share the link the agent already has, not to construct a tipping system on top of the per-call rail. The link concept is covered in how-to-create-payment-link-for-ai-agent.

How to set it up

Setting up tipping is mostly sharing a URL. Find the agent's public profile URL, the link to its profile, and put it where supporters can reach it: in the agent's responses, on a project page, in documentation, wherever people who value the agent might want to tip it. There is no separate link to create; the profile URL is the payment link, so the setup is making that URL discoverable.

Then wire confirmation. Set up the payment.received webhook and verify deliveries with webhooks.verify, so each tip becomes a durable event you can record. With that, you know when a tip arrives, who sent it, and how much, which lets you acknowledge tippers or track support over time. That is the whole setup: share the profile URL as the tip link, and listen for payment.received to confirm tips. The general guidance on paying an agent, including one-off payments, is in best-way-to-pay-ai-agent.

Verify it works

Confirm tipping works by sending a test tip on Base Sepolia. Open the agent's profile URL yourself, or from a test sender, and send a small amount of test USDC to the agent. Confirm it lands in the agent's wallet and that a payment.received event fires and verifies, so you know both the inbound payment and your confirmation path work. That single test tip, sent and confirmed, proves the agent can receive voluntary payments.

If the tip does not arrive, check that you are using the correct profile URL for the agent and that the sender is on the same network, Base Sepolia for the test. If the tip arrives but you get no event, check the webhook endpoint and signature verification. Once a test tip settles to the agent and you see the confirming event, the receive-tips problem is solved, and the same flow works on Base mainnet by sending real USDC to the live profile URL.

Good uses beyond tips

The payment link solves tipping, but its real scope is any one-off or voluntary inbound payment, so it is worth knowing the adjacent uses. Sponsorship works the same way: a supporter sends the agent a larger one-off amount to back it. Payouts to the agent, someone sending it funds it is owed, use the same link. And topping up the agent's wallet, adding balance so it can keep paying for what it calls, is just another inbound payment to the same URL.

So the fix for tips doubles as the fix for a whole class of inbound payments. The dividing line is per-call versus one-off: if someone is paying for a specific service the agent provides, that is x402; if they are sending a single, voluntary, or owed amount, that is the link. Knowing the link covers tips, sponsorships, payouts, and top-ups means you reach for it whenever the payment is one-off inbound, and reach for x402 only when charging per use.

Identity helps people tip with confidence

One thing worth pairing with the tip link is the agent's verifiable identity, because a tipper is sending money to a URL and wants to know it reaches the right agent. The same public profile that serves as the payment link can carry verified badges, email, GitHub, domain, that confirm who stands behind the agent. So a supporter opening the link sees not just a place to send USDC but evidence of which agent and operator they are tipping, which makes them more comfortable sending.

This matters more for larger voluntary payments like sponsorships than for small tips, but in both cases identity turns a bare link into a trustworthy destination. So if you want people to tip or sponsor your agent with confidence, set up its identity alongside sharing the link: the link receives the payment, and the verified profile reassures the sender they are paying the agent they intend to. The two work together, the link as the mechanism and the identity as the trust, which is why a well-set-up tippable agent has both.

If your agent needs to receive tips, the link is the tool. The concept and good uses are in how-to-create-payment-link-for-ai-agent, and the broader question of how to pay an agent, including one-off payments, is in best-way-to-pay-ai-agent. Together they take you from no way to tip to an agent that receives voluntary payments at a shareable link. Pricing is on the pricing page.

FAQ

Frequently asked questions.

How does my AI agent receive tips?

Through its payment link, which is the agent's public profile URL on Blockchain0x. You share that URL, and anyone who wants to tip the agent opens it and sends USDC to the agent's wallet. There is no per-call gating and no signup for the sender; it is a simple, voluntary, one-off payment to the agent, confirmed by the payment.received webhook.

Why not use x402 to receive tips?

Because x402 charges per call for a service, which is the wrong shape for a tip. A tip is unprompted and voluntary, not tied to a specific call the tipper is paying for, so gating a route does not fit. The payment link lets someone send a one-off amount whenever they choose, which is exactly what a tip is. Use x402 for charging, the link for tips.

Do I need to build a payment-link feature?

No. The agent's public profile URL already works as a shareable payment link, so there is nothing to build; you just share the URL. The link is the profile, so once the agent has a profile and wallet, it can receive tips at that URL. You do not create a separate link object; the profile is the link.

How do I know when the agent received a tip?

Listen for the payment.received webhook, which fires when a payment settles to the agent, and verify it with webhooks.verify. That gives you a durable record of each tip, who sent it and how much, which you can use to thank tippers, track support, or simply reconcile. The webhook is how you turn an inbound link payment into a confirmed event.

What else can the payment link be used for?

Beyond tips, the same link suits any one-off or voluntary inbound payment: sponsorships, payouts to the agent, or topping up its wallet. It is the right tool whenever someone wants to send the agent a single amount rather than pay per call for a service. For metered, per-use revenue, use x402; for one-off inbound, use the link.

Create your free agent wallet in 5 minutes.

First payment confirmed in under ten minutes. Free to start.