You say what you want. You approve what runs.
- 01
Describe your intent
Tell PayAI what you want done, in your own words — one action or several.
- 02
Review the plan
PayAI resolves the recipient, quotes any trade live and checks your balance. You see every action, amount and recipient, in order, before anything executes.
- 03
Approve and execute
Your wallet authorizes each transaction. PayAI carries the plan out on Monad, step by step, and checks every result on-chain.
Say what you want done.
01
Name the essentials
The action, the amount and token, and who it's for — a 0x address, a .nad name or a saved payee.
02
Leave something out, and it asks
PayAI never guesses an amount or a recipient. If something is missing, it asks for just that.
Send
Name the amount, the token and who it's for. Plain wording is fine — so is a question.
- Send 50 USDC to ‹.nad or wallet address›
- Can you send 0.5 MON to ‹.nad or wallet address›?
Pay several people
Say "each" when everyone gets the same amount, or write each transfer out.
- Send 5 USDC each to ‹.nad or wallet address› and ‹.nad or wallet address›
- Send 1 MON to ‹.nad or wallet address› and 2 MON to ‹.nad or wallet address›
Trade
Swap between tokens, or buy and sell by amount, dollar value or share of your balance. For any other Monad token, paste its contract address (CA) first, then say what to trade — “buy $20 of it”.
- Swap 100 USDC to MON
- Buy $20 of MON with USDC
- Sell half my MON for USDC
Chain actions
Join actions with "and" or "then". They run in the order you wrote them, and each waits for the one before it.
- Swap 10 MON to USDC and send it to ‹.nad or wallet address›
- Send 1 MON to ‹.nad or wallet address›, then swap 5 USDC to MON
Schedule and automate
Add when it should happen: a day, a date, or how often.
- Send 200 USDC to ‹.nad or wallet address› tomorrow
- Send 20 USDC to ‹.nad or wallet address› every Friday
Rooms
Say the total and how many people share it.
- Create a room for 100 USDC for 5 people
Ask about your wallet
Questions are answered from your own wallet and history. Nothing is prepared.
- What's my USDC balance?
- Show my latest transaction
Where today's limits are
- “Send it” after a swap sends exactly what the swap returned. Amounts worked out between steps, like “half of it” or “the rest”, aren't supported yet.
- A swap's output can be sent on when it's USDC. MON received from a swap can't be passed to the next step yet.
- Scheduled and recurring payments go in their own message — they can't be combined with other actions yet.
- Sends in chat are MON or USDC. Trades work with any Monad token by its contract address.
- DeFi protocols aren't available from Ask yet — they're coming through partner integrations.
- If PayAI can't do something yet — staking or bridging, for example — it says so instead of guessing.
How a recurring payment runs.
You set the terms and sign them once. From then on PayAI carries out each run on schedule — checking it first, never going past the limits you signed — and records every one. You can pause, edit or cancel it at any time; cancelling Reserved Funds returns what was set aside.
| Step | Stage | What happens | Who |
|---|---|---|---|
| Set up onceOnce, when you create it | |||
| 01 | Recipient | Choose who gets paid — a 0x address, a .nad name or a saved payee. Start in Automations, or from a request in Ask PayAI. | You |
| 02 | Token and amount | MON, USDC or another Monad token, and the amount for each run. Decimals are read from the token contract, never assumed. | You |
| 03 | Funding | Wallet Automation keeps funds in your wallet; each run draws only what is due. Reserved Funds sets the total aside in the AutomationVault contract, which can only pay that recipient or refund you. | You |
| 04 | Schedule | One-time, daily, weekly, monthly or every few days, weeks or months — in your own timezone. | You |
| 05 | Authorize | You sign the exact terms once. The agent wallet that runs it is capped per transaction and per day on-chain, so it cannot spend beyond them. | You |
| Every runAutomatically, at every scheduled time | |||
| 06 | Check | Recipient, amount and limits are checked again before anything is sent. A run that fails is stopped, nothing moves, and you are told why. | PayAI |
| 07 | Execute | The payment is sent on Monad from the capped agent wallet, at the scheduled time. | PayAI |
| 08 | Record | The run is recorded with its transaction hash and shows up in your History and notifications. | PayAI |
Set up once
Once, when you create it
01Recipient
YouChoose who gets paid — a 0x address, a .nad name or a saved payee. Start in Automations, or from a request in Ask PayAI.
02Token and amount
YouMON, USDC or another Monad token, and the amount for each run. Decimals are read from the token contract, never assumed.
03Funding
YouWallet Automation keeps funds in your wallet; each run draws only what is due. Reserved Funds sets the total aside in the AutomationVault contract, which can only pay that recipient or refund you.
04Schedule
YouOne-time, daily, weekly, monthly or every few days, weeks or months — in your own timezone.
05Authorize
YouYou sign the exact terms once. The agent wallet that runs it is capped per transaction and per day on-chain, so it cannot spend beyond them.
Every run
Automatically, at every scheduled time
06Check
PayAIRecipient, amount and limits are checked again before anything is sent. A run that fails is stopped, nothing moves, and you are told why.
07Execute
PayAIThe payment is sent on Monad from the capped agent wallet, at the scheduled time.
08Record
PayAIThe run is recorded with its transaction hash and shows up in your History and notifications.
Two ways to fund an automation
You choose per automation. Wallet Automation keeps funds in your wallet; Reserved Funds lock them in AutomationVault. Neither mode puts your balance on a PayAI server.
Wallet Automation
Funds stay in your wallet
- You approve a spending allowance once; nothing moves until a run fires.
- Each run pulls only the exact amount due, never more.
- Revoke the approval at any time and the automation simply stops.
- Required for Bulk Payments.
Best when you want to keep custody and flexibility.
Reserved Funds
Funds set aside up front
- Funds are set aside up front in the AutomationVault contract.
- The reservation is locked to the recipient you chose — it can only pay them.
- A run doesn't depend on what your wallet holds when it fires.
- Refund whatever is unspent, whenever you want.
Best when a payment must not depend on your wallet balance at run time.
Built for money you cannot afford to lose
Funds never leave your control. Every payment is screened before it sends and approved by you, every run settles on Monad Mainnet with a receipt you can verify, and anything set aside comes back if you cancel.
Your money stays yours
Payments and trades you start are signed by your own wallet, and PayAI never holds its keys. Payment Automations are the exception in the app: they run from a capped agent wallet, only within the limits you approve when you set them up.
Confirmation before execution
Nothing you start signs itself. A PayAI wallet asks for your passkey — once per approved plan, used only for that plan's transactions; a connected wallet asks you to sign. What you approve is what you were shown.
Your wallet, or ours
Create a PayAI wallet from a passkey — no seed phrase, because there is nothing for us to hold — or connect the wallet you already use. Link both to one account.
Every payment is checked
Before anything sends, we make sure it's going to the right place, for the right amount, within your limits.
Cancelled means refunded
Cancel an automation backed by Reserved Funds and what was set aside is released back to you automatically — the same when a schedule finishes its last run.
Settles on Monad
Payments settle on Monad any time of day, with a transaction hash you can always look up.
Nothing to hide
Every payment is recorded permanently, so you can prove it happened whenever you need to.
Something wrong? Report it
Report an issue on any transaction from the dashboard, and the Support Center tracks it — with your history beside it rather than in a separate inbox.
Public docs, not a private map
A few GET routes are public on purpose. Anything that can move funds stays behind a session in the app. The rest is not a partner API.
Public endpoints
/api/fees
Configured fee estimates (not authoritative; contracts charge their on-chain rate).
/api/onchain
Live contract addresses on this deployment.
/api/tokens
Verified Monad token registry.
/api/health
Liveness: network connected or not.
HTTP, documented
The public GET routes and merchant key live in the docs. Session routes that move money are the app backend, not a published SDK.
Verified contracts
PayAIForwarder, PayAITradeExecutor, PaymentExecutor, MerchantRegistry, and AutomationVault are on Monad and linked from the docs.
Idempotent by design
Every execution carries a request id enforced in the app and on-chain, so a retry can never double-pay.
Part of the Monad stack
PayAI plugs into what the ecosystem already uses, so an automation works with the wallet and the name you already have.
Monad Mainnet
Every payment and automation settles on Monad, with fast confirmation and fees low enough for recurring runs.
Nad Name Service
Pay a .nad or .nads name instead of a 42-character address. Resolved on-chain, then re-verified server-side before anything sends.
Any EIP-6963 wallet
MetaMask, Rabby, Backpack, OKX, Coinbase and more are detected automatically — plus WalletConnect for mobile.
Durable scheduling
Automations are indexed and persisted, so a due payment survives restarts and runs when it's due.
Ready to try it?
Connect your wallet and describe your first action in a couple of minutes.
Non-custodial · On-chain execution · Built on Monad