Blinks

Trade any coin straight from an X post with Solana Actions.

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:

ButtonWhat it does
Buy 0.1 SOL / Buy 0.5 SOL / Buy 1 SOLBuys 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:

Links
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:

json
{
  "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:

QueryValues
sidebuy or sell
amountBuys: SOL as a decimal, 0.001 to 50
percentSells: 1 to 100 (% of the coins in the wallet)
slippageBpsOptional, 10 to 5000. Default 200 (2%), a bit more than the site default because a Blink is signed later
Request
curl -s 'https://pairity.wtf/api/actions/trade/<MINT>?side=buy&amount=0.5' \
  -H 'content-type: application/json' \
  -d '{"account":"<your wallet>"}'
Response (example)
{
  "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

A Blink in a post can be made to look like anything. Check the coin, the amount and the message in your wallet before you sign, and only trade coins you have researched.