Money
In short ​
- A buyer pays the whole price, in USDC, into your payout contract: a contract made for your wallet that nobody owns.
- A payout sends 99.9% of it to your wallet and 0.1% to Agentify.
- From Settings you can usually send a payout yourself. Otherwise Agentify pays out, on no fixed date.
- A payment is final: a buyer cannot reverse it, and a refund is yours to give.
Where the money arrives ​
The buyer — a program, buying on behalf of a person — pays into your payout contract: a smart contract on the Base network, made from your wallet's address, which keeps the money until it is paid out and then sends 99.9% to your wallet and 0.1% to Agentify. Nobody owns it. Neither Agentify nor anybody else can change whom it pays or in what shares, and no account of ours holds your money at any point. The money is USDC, which is issued by Circle, and Circle can freeze USDC at any address, your payout contract and the shared 0xSplits warehouse it pays through included, for as long as the money waits there.
A payout pays out everything that came in since the one before, so the sales between two payouts reach your wallet as one transfer from the 0xSplits warehouse rather than from a buyer. If your accounting is used to one line per sale, there will be one line per payout instead, covering many sales, and looking for your wallet's address on a buyer's payment finds nothing, because the payment request a buyer pays against names your payout contract.
Saving your wallet costs nothing and writes nothing to the chain: the payout contract's address follows from your wallet, and it can receive USDC from that moment. The first payout puts the contract itself on the chain, and from then on a block explorer shows its two recipients and their shares.
Getting paid out ​
You can get paid out at any time, from the Settings screen of your dashboard, which shows your payout contract, what a payout sent now would bring your wallet, and the one transaction that pays it out. A payout already sent is counted in that amount until the network has carried it out, and when Settings cannot read the network it says it does not know the amount. When a payout would bring nothing, Settings says so and offers no transaction. On the live channel a Coinbase Wallet sends the payout from Settings once you approve it. On the test channel Coinbase Wallet's payout is not known to work, because Coinbase's window refuses transactions on the test network from the wallets it creates now, so Settings has no Coinbase payout button there. On either channel, any other wallet that holds a little ETH for the network's fee and lets you paste data into a transaction can send it. Either way that one transaction pays your share to your wallet and our 0.1% to us. It carries no money of its own and costs only the fee. Sending a payout is the step-by-step for whoever holds the wallet.
If you never send one, your share arrives with Agentify's own payout, which pays out every payout contract, yours included. There is no fixed day for that, and until somebody pays it out, the money waits in the contract.
What they pay in ​
Buyers pay in USDC, a digital dollar whose rate is pegged to the dollar. A product's price may be written in USD or USDC; either way the buyer is asked for the same number of USDC. There is no exchange-rate conversion in between, so a price in any other currency is refused when the product is published. A WooCommerce shop priced in another currency is converted at its merchant's own rate before any price reaches Agentify (how). The test channel uses Base Sepolia and test USDC, which is worth nothing; the live channel uses Base and real USDC. Turning USDC into money in a bank happens outside Agentify.
These payments are final. A buyer cannot reverse one the way a charge on a bank card is reversed, because these payments have no such mechanism, so the case where money is taken back off your account a month after the sale does not happen here. Whatever you give back, you give back yourself and by your own decision.
When the money reaches you ​
The buyer is charged either after you have delivered or at the moment of purchase, and you choose which, product by product (When your buyer is charged). Either way the payment goes into your payout contract, and your share reaches your wallet with the payout after it.
One rule follows from that choice. While your answer comes before the money, your silence costs the buyer nothing: if you do not deliver, the purchase did not happen. After the charge, the same silence leaves the buyer without the goods, and Agentify records the order as unfulfilled; what you do about it is yours to decide. What that looks like in each failure is on What can go wrong.
You delivered and the money did not arrive ​
This is possible for goods that are paid for after your delivery. We check the payment first — the signature and the funds — then hand you the order, receive the goods and only then execute the payment, and in that gap the funds can leave the buyer's wallet for something else. The order tells you whether the charge failed or whether nobody knows yet if it went through.
When nobody knows, Agentify keeps looking for the payment on the Base network in the background, without charging the buyer a second time. If it finds the payment, the goods you made go to the buyer; if it finds proof that the payment never happened, the buyer may pay again. Nobody at Agentify does this by hand, and no time is promised: on the live channel the network is read through a free public service that can turn requests away for long stretches, so an answer can stay unknown for a long time, and nothing else on our side settles it meanwhile.
What it can cost you is the price of one sale, so the thing to weigh is how expensive and how irreversible your delivery is: access you can revoke and a parcel already on its way are worth different amounts to you. While nobody knows whether the buyer was charged, taking back what you gave out may be taking it from somebody who paid. Putting the money first removes the case: for a product paid for ahead of the delivery you never deliver anything unpaid.
What proves a sale happened ​
A paid sale leaves a receipt when its goods are released or its parcel's shipment is recorded. It records what was bought and for how much, and the price stays on it unchanged after your price has moved. A test receipt is marked as such and does not prove that real money moved. The Receipts screen of your dashboard lists them, and what each field means is on Orders.
A receipt follows the goods, so an order paid for and never delivered has
none, and neither has a payment nobody knows the outcome of. Receipts
therefore do not account for all the money you received. A paid order without a
receipt still names the transaction that paid it once the payment has gone
through: Order details on your dashboard shows it, the order your integration
reads back carries it as transaction, and the buyer's status carries the same
one. When the answer to a
purchase is lost on the way and the agent repeats it, it receives what was
already delivered, with no second charge and no second delivery asked of you.
If the buyer did not get the goods ​
Three situations leave a buyer without the goods, and each asks something different of you.
| What happened | What Agentify records | What is yours to do |
|---|---|---|
| You cannot deliver an order the buyer has paid for | the order reads unfulfilled, and a late delivery still counts | deliver late, or close fulfillment with an explanation for the buyer; any refund is yours to arrange |
| Nobody knows whether the buyer paid | the payment reads unknown while Agentify keeps looking for it, with no promise of when | wait, or close fulfillment; a payment that turns up after you closed brings the order back to the ones that need you |
| You closed fulfillment | the order reads closed by you, with your explanation shown as your words, and the original payment stays recorded | nothing more on Agentify; a refund or another remedy happens outside it |
A missed delivery deadline records that the order was not fulfilled in time; it does not oblige you to return the whole price. Cancellation and refund policy are yours, and a refund may be partial, use another currency or network, or be replaced by another agreement. Agentify does not send a refund, check one or judge whether you and the buyer have settled. You hold the buyer's details only where the product needs them: a parcel's address, with the name and phone number it carries, and whatever a purchase parameter your product asks for holds, such as an email. A paid order also names its payment's transaction, when one was recorded, in Order details whether or not the goods were delivered, and on its receipt once there is one. The transaction is on a public chain, but a block explorer shows as its sender the payment service that submitted it, not the buyer: the wallet that paid is the address the USDC transfer inside the transaction came from. USDC sent back on Base to that address reaches the wallet that paid. The same address on another network may belong to nobody, because some wallets exist on Base alone, so a refund in another currency or on another network needs the buyer to say where. A wallet's address says where a payment came from, not who the person is or how to write to them, so anything beyond sending USDC back to that wallet waits until the buyer reaches you.
You close fulfillment from Orders → Order details → Close fulfillment on your dashboard, or your engineer does it from your integration (Closing fulfillment). It cannot be undone: Agentify stops accepting deliveries for that order and records that you closed it, with your explanation if you give one. Any claim about a refund in it stays your statement. Closing moves no money and stops no work already running in your shop. A charge already on its way when you closed can still go through; if it does, the order shows again among those that need you on Orders, and your integration is sent a notice.
Agentify retains its 0.1% commission on the original payment, and neither the payout contract nor the shared warehouse gives it back. Agentify has no staff who handle refunds and does not pay a buyer back from its own funds.
What we take ​
We take 0.1% of every payment, and it is inside your price. The buyer pays the price of your product and nothing on top of it, and your payout contract sends 99.9% of it to you and 0.1% to us, both in the same payout transaction, whoever sends it. If you want what reaches you to be the whole of a price you have in mind, raise the product's price yourself. There is no subscription and no monthly fee. The Settings screen of your dashboard names the commission, and saving your wallet there is how you accept it.
The contract divides what has accumulated in it, not each sale on its own, and rounds each share down to the smallest unit of USDC, a millionth of a dollar. It also leaves one such unit behind on a balance rather than pay the network fee of emptying it. So a payout gives you about 99.9% of what came in and never more, and what the rounding leaves over is divided in a later payout. For the same reason there is no exact commission to read off a single order.
Your wallet ​
If you have no wallet yet ​
Your wallet is an address on Base, the network these payments run on: 0x
followed by forty letters and digits. If your business has none, the
dashboard's Settings make one with you: Create or connect a Coinbase Wallet
opens Coinbase's window over the page, where you create a Coinbase Wallet or
connect one you already have, and its address comes into the box, to be saved
when you press the button beside it. You manage that wallet at
wallet.coinbase.com.
The wallet is yours, and so is the way into it. Nothing leaves it without your approval in Coinbase's window, and Coinbase keeps no copy of your passkey or of a recovery key you create and cannot get you back in without them, so set up a way back while you still can get in (how Coinbase's recovery works).
Any other wallet app that supports the Base network, such as MetaMask, works as well. It shows the address, which is what you enter in Settings, and a recovery phrase, which stays with you and is never entered anywhere at Agentify: whoever holds the phrase holds the money. On the test channel your wallet only ever receives test USDC, so it needs no money of its own. Settings there has no Coinbase payout button, so the test channel's payout is sent from a wallet of this kind, which need not be the wallet it pays.
Replacing your wallet ​
A new wallet comes with a new payout contract, and the old contract goes on paying the old wallet. Whatever is already in it is paid out to the old wallet only, whoever sends the payout: if somebody else may hold that wallet's keys, it is theirs to collect, and if you have lost access to it, it is lost with it.
On the live channel a wallet you have already saved is not replaced at once, because the wallet is the one setting that sends your money somewhere else, and a dashboard session left open on another device could ask for a change. Everyone who signs in to your dashboard is sent a message first, saying the change was asked for and from which account's session, and the new address takes effect forty-eight hours after the messages went out. Until then buyers pay into the old contract, and every screen of your dashboard shows the waiting address, the moment it takes effect and a button that cancels the change. Cancelling also signs out every session on your account, including a copy somebody may have taken of your own browser's, and keeps the browser you cancel from signed in on a new session. So if you can no longer trust the old wallet, replace it at once and pause selling for those two days.
A change that cannot be announced to every account is not recorded at all, and the dashboard says why. A message about a change that was then refused is safe to ignore, because every message says the change takes effect only if your Settings screen shows it waiting. The first wallet you save applies at once, and on the live channel every account is sent a message about it afterwards. On the test channel every change applies at once and nothing is sent.
What is not settled yet ​
- How a buyer reaches your support to arrange a remedy outside Agentify. Until something does, you hold the buyer's details only where the product needs them, and, on a paid order, its payment's transaction, which leads on the chain to the wallet that paid.
- How long finding a payment whose answer was lost can take. No time is promised, and on the live channel it depends on a free public service.
- Who pays the network fee on a buyer's payment and how it sits against the price of the goods.
- Reconciling what came in against what was sold. Your wallet receives one transfer per payout, covering every sale since the payout before it, and nothing yet shows which sales a payout covered. A receipt follows the goods, so an order paid for and not delivered has none, and matching the payouts into your wallet against the orders is still yours to do by hand.
- Whether Coinbase Wallet lets you pay a payout's fee in USDC, as Coinbase says it does, and what it shows on a first payout from a wallet that holds nothing yet. Settings offers Coinbase Wallet's payout on the live channel only, so both can be tried only there, and neither has been tried yet.
- The written terms of the commission. Until they are published, saving your wallet on the screen that names the commission is the whole of how you accept it.
- Who counts as the seller on paper, what document your accounting receives for a sale and for our commission on it, and how a stablecoin payment is reported.