Help
Short answers for setup, wallets, and payment approvals.
I didn’t get a verification email
Check spam. Confirm Resend / DNS is verified for your sending domain. You can also open the check-email page again after signing up — it resends when you request it.
Wallet won’t connect on localhost
- Use
http://localhost:3001(not a LAN IP) so extensions inject. - Unlock MetaMask / Phantom, then refresh.
- Base / Coinbase opens a passkey popup in the browser — allow popups if your browser blocks them.
Base app says use your passkey (not QR)
Correct for Base Smart Wallet. On Veyra, click Base / Coinbase and complete the passkey prompt in the browser popup. Don’t scan the WalletConnect QR with the Base app.
Coinbase says “No matching assets found”
That happens when a QR is scanned with Send/Receive (it looks for a payment address). Base app users should use the passkey popup instead. For other mobile wallets, use the WalletConnect option and that app’s WalletConnect scanner.
Pricing and plan limits
From the product spec: Free = 1 agent + 2 sources; Pro ≈ £19/mo (up to 10 agents); Team ≈ £79/mo (shared sources, higher MCP usage). We charge for control-plane access — not payment volume. Checkout runs through RevenueCat Web Billing. See Pricing.
Approve link says wrong wallet
Connect the same address shown as “Pay from”. The payment is bound to the source that was selected when the agent created it.
I rejected in MetaMask but dashboard still said awaiting
That was fixed: rejecting in the wallet (or Decline on the page) now marks the payment rejected. Refresh the dashboard if you still see a stale row.
Wallet rejects with insufficient funds
Expected. Approvals request a real USDC transfer (+ ETH for gas on Base). Fund the wallet, then open a fresh approve link from the dashboard (“Approve in wallet”).
MCP tools return unauthorized
Use the full veyra_… bearer token from onboarding (shown once). If you rotated credentials, update your client config. Paused or revoked endpoints cannot pay.
Agent keeps retrying create_payment
Tell the agent not to retry on awaiting_approval — give the human next_action.url instead. Reuse the same idempotency_key for true retries; new keys create new payments.
Browser push for approvals
On the dashboard, enable Browser notifications. When an agent payment needs approval, Veyra can push to your browser even if the tab is closed. Tap the notification to open the approve link and confirm in your wallet.
Requires a secure context (HTTPS or localhost), notification permission, and VAPID keys on the server.
A payment went out but I didn't get what I paid for
There are two different situations here, and they're handled very differently:
- Veyra approved or executed something it shouldn't have — wrong amount, wrong recipient, ignored a policy limit, a bug in the auto-pay flow. That's on us, and we can investigate using the exact audit trail every payment already generates. Report it below.
- The recipient took the payment and didn't deliver. Once a payment confirms on-chain, it's final — there is no chargeback on crypto rails, and Veyra has no way to reverse or claw back a transfer, the same as any other on-chain payment. This is true however the payment was sent, not a Veyra limitation. Treat this like sending cash: only let an agent pay recipients you actually trust.
Report an issue
Include a payment ID if you have one — we'll pull the full record (recipient, amount, policy decision, on-chain reference) automatically so you don't have to dig it up.