What a payment link is here
A payment link for an AI agent is its public profile URL: wallet.blockchain0x.com/a/{slug}. There is no separate link to mint; creating the agent provisions both its wallet and this page, so the link exists the moment the agent does. Anyone you give it to can open it, see the agent's wallet address and verification, and pay the agent in USDC on Base.
So "creating the link" is really three steps: make sure the agent exists, make the profile safe to pay (a name and at least one verification), and share the URL. This page walks those, and is honest about the one thing the link is not: a fixed-amount invoice. For that you use x402, covered at the end. The companion public wallet guide covers the profile in more depth, and the payment API product page is the broader reference.
Link versus per-call charge
Get this distinction right first, because it decides whether you even want a link.
A payment link is open-ended. The payer decides how much to send: a tip, a payout, a transfer, a top-up. You share one URL and anyone can pay any amount to the agent. That is the right tool when the amount is the payer's choice or arranged elsewhere.
A per-call charge is fixed and enforced. The agent sells a service at a set price, and the payer must pay exactly that before the service runs. That is not a link you share; it is an x402-gated route that quotes its price in the 402. Sharing a link for a priced service would be the wrong shape, because the link cannot enforce an amount. Decide which you need: open payment to the agent (link) or priced service from the agent (x402).
Prerequisites
- A Blockchain0x account with the agent created, so its profile and wallet exist.
- A
sk_test_API key to confirm the agent over the API. - Access to a verification channel (email, GitHub, or domain).
Get the link
The link is the profile URL for the agent. Confirm the agent and find its slug:
import { createClient } from "@blockchain0x/node";
const client = createClient({ apiKey: process.env.B0X_API_KEY! });
const agent = await client.agents.get("agt_...");
console.log(agent.id, agent.name, agent.network);The public profile lives at https://wallet.blockchain0x.com/a/{slug}. Open it to confirm it shows the agent's name, wallet address, and any verification. That URL is the payment link; there is nothing else to generate. If you only ever share one thing to get an agent paid, this is it.
Make the link safe to pay
A link a stranger will not trust is not worth sharing, so spend a few minutes making the profile credible before you hand it out. Two things matter: a real display name so the page reads as a service rather than an id, and at least one verification badge so a payer can see who stands behind the address.
Earn email verification first (it is fastest), then GitHub or domain depending on whether your payers are developers or businesses. A profile with a name and a verified domain converts a cautious payer; a bare address with no badges reads as a risk. The full verification steps are in the public wallet guide. The order matters: make the link credible, then promote it, not the other way around.
Share the link
Put the profile URL where payers will encounter the agent: in the agent's own responses, in a directory or marketplace listing, in your docs, in a footer, anywhere someone might want to pay it. Share the link, not the raw address, so the payer gets the address and the verification together in one place.
The link works for both human and machine payers. A person opens it and pays from their wallet; an agent evaluating whether to pay yours reads the same profile and verification before sending. One URL serves both, which is why the profile link, not a bare address, is the thing to circulate.
What a payer sees
It helps to know what happens on the other end of the link, because that is what you are really sharing. A payer opens the URL and lands on the agent's profile: its name, its wallet address on Base, and the verification badges it has earned. They are doing a quick trust read, deciding whether this address belongs to someone accountable, and the badges are what answer that. Then they send USDC from their own wallet to the address, choosing the amount, and the agent receives it with a payment.received event on your side.
There is no form, no account creation, and no stored card anywhere in that flow. For a human payer it is open-the-link, check-the-badges, send. For a machine payer it is the same profile read programmatically before a transfer. The simplicity is the feature: the cost of paying your agent for the first time is one open link and one transfer, not an onboarding step, which is exactly why a public link reaches payers an invoice flow never would.
Good uses for the link
Because the link is open-ended, it fits the payments where the amount is the payer's call rather than a fixed price. Tips are the clearest: a user who found the agent useful sends it a few dollars. Payouts work too, when you fund an agent's wallet from a treasury, the link is the destination. Sponsorship and grants fit, where a backer supports an agent's running costs. And top-ups, where someone adds USDC to an agent so it can keep paying for the services it consumes.
What these share is that no fixed price applies, so a quoted, enforced amount would be wrong and an open link is right. The moment a specific amount must be charged for a specific thing, you have left link territory and entered x402 territory, which is the next section. Match the tool to whether the amount is chosen by the payer (link) or set by you (x402).
When to use x402 instead
If what you actually want is to charge a set price for what the agent does, a link is the wrong tool and x402 is the right one. Gate the agent's route with the x402 server adapter so the price is quoted in the 402 and enforced before the service runs, rather than hoping a payer sends the right amount to a link.
The rule of thumb: link for open-ended payments to the agent, x402 for priced services from the agent. Many agents use both, a public link for tips and payouts, and x402 routes for the services they sell. The x402 path is covered in how-to-receive-payments-as-ai-agent and the charging structure in the monetization guides. Reach for whichever matches the payment you are actually trying to take.
Common pitfalls
Three traps.
Sharing a link for a priced service. A link cannot enforce an amount. If you need a fixed price per call, gate a route with x402 instead of sharing a profile URL.
Promoting an unverified profile. A link to a bare, unnamed address converts poorly and looks risky. Earn at least the email badge before you circulate it.
Sharing the raw address. The address alone carries no trust. Share the profile link so the payer gets the address and the verification together.
What to ship today
Confirm the agent exists, set its name, earn the email badge, and share its wallet.blockchain0x.com/a/{slug} link wherever payers will find it. If you need fixed-price charging rather than open payment, gate a route with x402 instead. For the profile in depth see how-to-set-up-public-wallet-for-ai-agent. Pricing is on the pricing page.