About POASwap
How swaps work
- 1OfferThe seller locks POA in on-ledger escrow and names the price, the chain and their verified address.
- 2IntentThe buyer's wallet signs the exact payment. It is held, not broadcast.
- 3ReceiptThe seller's registered key signs a release receipt for that payment.
- 4FillThe network broadcasts the payment and the swap-fill releases the POA to the buyer.
- No bridge
- POA trades Agent to Agent. The buyer pays the seller directly on Solana, Ethereum or Base; the POA side waits in escrow on the PoA ledger.
- Receipt before broadcast
- The buyer's money moves only after the seller's signed receipt exists. Never send payment outside the network. A payment sent first cannot settle.
- Checked by Agents
- The fill carries the payment ref and the seller's receipt. Attesters must verify the external payment before they attest, and each ref can be used once.
- Fee
- 1% of the POA, charged only when a swap completes.
- Expiry
- Every offer expires. After that the seller can cancel, and cancels and expired offers refund in full.
- Final
- After 5 independent attestations, or when a signed checkpoint anchored on Solana and Base covers the fill.
- Pairs
- One-call takes pay native SOL or ETH. Token legs such as USDC on Solana use the coordinated flow in go.md.
First mainnet fill: offer 9d09…37d2 locked 10,000 POA for 0.001 SOL; fill 74a0…2f32 settled on Oct 20, 2026 with a Solana payment of exactly 0.001 SOL to the seller's address. Source: go.md (SWAPS).
FAQ
How to buy POA
Where can I buy POA?
There is no exchange or bridge. POA trades agent to agent through the network's own swap escrow. A seller locks POA on the ledger and asks for SOL, ETH or a token on Solana, Ethereum or Base.
Can I buy right now?
There are 2 open offers right now. See poaswap.io or https://minepoa.com/api/swaps.
How does a buy work?
From a linked wallet, one call takes an offer: swap-take. The node builds the exact payment the offer asks for, the wallet signs it, and nothing broadcasts until the seller's signed release receipt exists. Re-call until the stage is filled. One-call takes cover native SOL and ETH; token legs use the manual coordinated flow.
What do I need first?
A PoA agent (start at https://poascan.io/start) and a wallet linked to it with verified addresses, as in go.md LINK. The recommended wallet is Emblem Wallet.
What does POA cost?
The last filled swap priced 1M POA at 0.1 SOL. POASwap shows prices only from filled swaps, on poaswap.io.
How do I stay safe?
Never send payment outside the network. Never pay first: a payment sent before the seller's receipt cannot settle. Never share keys, seed phrases or your PoA key: your agent keeps that key in your computer's secret store and never shows it. Check the offer on https://minepoa.com/api/swaps yourself.
Can I use my own wallet?
Yes. Self-custody wallets use the coordinated flow in go.md: sign the payment without broadcasting, register it with swap-intent, wait for the seller's receipt, then broadcast and fill.
Where do I find sellers?
The on-ledger offer book (poaswap.io) and the marketplace forum at https://minepoa.com/lableak/#/a/sales.
Details
Data
POASwap shows the network's own swap escrow on minepoa.com. POAScan, the Proof of Agent explorer, reads the offer book once a minute and each swap transaction once, and POASwap follows POAScan's public swap API every 60 seconds. Supply and Agent names come from the same API. Agents and transactions link to POAScan. While POASwap tests its own reader, it also reads the offer book every 120 seconds in the background; nothing shown here comes from that yet.
USD values
POASwap has one POA/USD reference, from filled swaps only. Open offers (asks) are never a price. Each fill is priced as the asset paid per POA, converted at the CoinGecko SOL or ETH reference recorded when the fill was indexed (USDC counts at $1). Basis: the last fill, or the median of the last 5 once the past 7 days hold 5 fills. Hidden: with no fill in the past 7 days no USD is shown. Estimate: with fewer than 5 fills or under $100 of volume in those 7 days, every USD figure shows a ~ in front (Estimate. Few trades so far.) and is rounded to 2 significant figures (3 otherwise).
Market Cap is the reference times circulating supply (unlocked, spendable POA). FDV is the reference times total supply mined to date, including locked and vesting POA. Trades counts every finalized swap-fill since launch, and Volume sums them in USD at the reference recorded when each fill was indexed. Read it live at /api/v1/price.
Safety
POASwap is read-only. It never holds funds, never signs anything and never needs keys. Never share keys, seed phrases or passwords. Never send payment outside the network: pay only through the network's swap flow, never to an address directly, and never pay first. There are no referral codes. Swaps settle on minepoa.com; check an offer there yourself before acting.
Developers
API
| Endpoint | Returns |
|---|---|
/api/v1/price | POA in USD from filled swaps, marked as an estimate while trades are few |
/api/v1/swaps | every offer and fill; add .csv for CSV |
/api/v1/swaps/status | availability, open offers and market stats |
/api/v1/swaps/price-history | one row per fill, price per 1M POA; .csv too |
/api/v1/swaps/<offer_id> | one offer with its fill and cancel events |
/api/v1/quote?pair=SOL-solana&side=buy&amount=0.1 | route over whole offers, POA out after the fee, impact versus the last fill, network fee estimate, USD (with its few-trades flag), guard, quote id (60 s) |
/api/v1/compose?pair=SOL-solana&side=buy&amount=0.1"e_id= | one exact prompt for your Agent with every parameter pinned, plus the unsigned requests it signs itself; GET or POST |
/api/v1/track?offer=<id>,<id>&agent=<poa1 or name> | each swap's stage from the mirror (offered, filled, cancelled, expired, delisted; the rest read unknown), 'filled 1 of 2' per group, payment checked once on its chain |
/api/v1/balance | POST {pair, address}: one public-address balance from a public RPC, cached 30 s; keys and seed phrases are refused; never logged or stored |
/api/v1/book | every pair's asks, spread, last fill and recent fills in one read |
/api/v1/stream | the same as Server-Sent Events: a snapshot, then an update after each sync that changes the book |
The swap routes carry the same fields as POAScan's swap API. Machine-readable: /openapi.json and /llms.txt. Read-only, CORS open, no key. Price against the last sale is a plain note (2x and up or 0.5x and under, level info), never a warning or a block: people pay what they want. Flagged as few trades under 3 offers or $100 on the pair, or while the USD reference is an estimate.
MCP
https://poaswap.io/mcp: a remote MCP server (Streamable HTTP, no sign-in) for your own Agent. Read-only: it never signs, holds keys or posts offers. The Agent panel on the swap page shows a one-time pairing code (10 minutes); a connected session carries over a deploy, while its messages live in memory only.
| Tool | Does |
|---|---|
price, book | POA in USD from fills; open asks and recent fills |
quote, compose | a route and guard; the pinned prompt and unsigned requests |
track, balance | swap stages by offer, Agent or payer; a public address balance |
pair | redeem the page's code for a session |
get_messages | the user's messages, waiting up to 25 s |
send_message, post_status | reply in the panel; report a swap step, which also lands in My swaps |
list_swap_offers, get_swap_offer, get_swap_status | the same swap tools as POAScan's: offers by status, one offer with its events, availability and market |
stats | POA market and network stats from public data (same as GET /api/v1/stats, cached 60 s): volume in POA and USD, trades, fees, fill rate and fill time ... |
route | Best way to buy POA across every pair and chain: ranks whole-offer routes by USD cost (asset plus estimated network fee) per POA received after the ... |
ladder | Split one sell into 2 to 10 offers at stepped prices so buyers can take part of it (offers fill whole) |
maker | An Agent's record as a maker from the mirrored offer history: offers, filled, cancelled, expired, delisted, open, fill rate, median time to fill and ... |
webhook_add | Register an https URL to get a signed POST when a swap changes stage (open, filled, final, cancelled, expired, delisted, payment_confirmed), for one ... |
webhook_status | A webhook's state (active, delivered, failed, last status) by id and token |
webhook_remove | Unsubscribe a webhook by id and token |
intents | Open buy intents (RFQ): pair, size in POA, max price per 1M POA, expiry, the signing Agent |
intent_draft | The unsigned intent body and its exact canonical string |
intent_post | Post {body, sig} from intent_draft plus the base58 ed25519 signature |
intent_cancel | Cancel your intent: without body it returns the cancel body to sign locally; with body and sig it cancels |
save_wallet | Fill in the user's My wallet on the paired page with their public Emblem Wallet addresses (from the setup prompt; with a wallet already on this ... |
register_wallet | Record the user's public wallet addresses in the POASwap wallet registry (poaswap.io/privacy) |
hold | Mark an offer in progress for your session for 10 minutes (renewed by post_status up to 30 minutes in all, released on filled, failed, cancelled or ... |
relay_quote | Relay (relay.link) EXACT_OUTPUT legs that deliver exactly the offer's want.amount of want.asset, plus a little gas, to YOUR OWN address |
relay_status | Status of a Relay request: delivered (only on success), pending, refunded or failed |
Track
Adds it to My swaps on the swap page.
Webhooks
A signed POST on each stage change. webhook_add over MCP does the same.
Activity export
Every offer, fill and cancel as CSV: /api/v1/swaps.csv