Blinks (Solana Actions) turn a link into buy and sell buttons. Share a Pairity coin link on X, and people whose wallet or app supports Blinks can trade it right from the post. Every trade is built exactly like a trade on this site and signed in the trader's own wallet.
How it shows on X#
Post a normal coin page link: https://pairity.wtf/token/<MINT>. Wallets, browser extensions and apps that support Blinks read the site's actions.json, see that coin pages have an Action, and show a card with the coin's image, name and ticker, its description, and these buttons:
| Button | What it does |
|---|---|
| Buy 0.1 SOL / Buy 0.5 SOL / Buy 1 SOL | Buys with that amount of SOL |
| Buy (custom) | Buys with an amount you type, from 0.001 to 50 SOL |
| Sell 25% / Sell 50% / Sell 100% | Sells that share of the coins in your wallet |
Where Blinks are not supported, the link opens the coin page as usual. You can also share a dial.to link, which works in any browser:
https://pairity.wtf/token/<MINT>
solana-action:https://pairity.wtf/api/actions/trade/<MINT>
https://dial.to/?action=solana-action%3Ahttps%3A%2F%2Fpairity.wtf%2Fapi%2Factions%2Ftrade%2F<MINT>actions.json#
The discovery file at https://pairity.wtf/actions.json tells Blink clients which API backs which page:
{
"rules": [
{ "pathPattern": "/token/*", "apiPath": "/api/actions/trade/*" },
{ "pathPattern": "/api/actions/**", "apiPath": "/api/actions/**" }
]
}The trade action#
GET /api/actions/trade/{mint}
Returns the card: type, icon, title, description, label and links.actions with the buttons above. A coin whose fee split was changed after launch is shown disabled with an error.
POST /api/actions/trade/{mint}
The Blink client sends { "account": "<wallet>" } to the button's URL and gets back one unsigned transaction for that wallet:
| Query | Values |
|---|---|
side | buy or sell |
amount | Buys: SOL as a decimal, 0.001 to 50 |
percent | Sells: 1 to 100 (% of the coins in the wallet) |
slippageBps | Optional, 10 to 5000. Default 200 (2%), a bit more than the site default because a Blink is signed later |
curl -s 'https://pairity.wtf/api/actions/trade/<MINT>?side=buy&amount=0.5' \
-H 'content-type: application/json' \
-d '{"account":"<your wallet>"}'{
"type": "transaction",
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA…",
"message": "Buy at least 11904761.9 MCAT for 0.5 SOL"
}Errors come back as { "message": "…" }. Rate limits per IP: 60 card requests and 10 transactions per minute.
Good to know#
- Same fees as the site. Site fees apply (0% by default) and your platform-token discount is applied to the wallet that trades.
- One transaction only. Some coins paired with another token need two transactions for a trade. Blinks refuse those and point you to the coin page.
- Blinks are not available from restricted jurisdictions.
- The card shows the coin creator's own description. It is not checked or endorsed by the platform.
Warning