Make your bot tip correctly.
Replace the hardcoded tip with the live fare, send through Tipwise, and get a receipt for every transaction.
Four steps
Check your bot's wallet
See what it paid against the going rate. A hardcoded tip usually overpays in quiet hours and loses races in busy ones.
Ask for a fare
GET /fares returns Saver, Standard and Express with the tip, the priority fee and the honest chance of landing in time.
Send through Tipwise
Add the tip transfer to a Beam tip address, sign, and POST /send. Tipwise forwards it through Solami Beam.
Read the receipt
GET /receipt/:signature (or the lifecycle stream) says when it landed or why it did not, in plain English.
The code
import { createTipwise } from "./sdk"; // src/sdk.ts in the repository
const tipwise = createTipwise("https://api.tipwise.tech");
const standard = (await tipwise.fares()).find((f) => f.id === "standard")!;
// Add the tip to your own instructions, then sign as usual.
const tip = await tipwise.tipInstruction(wallet.publicKey, standard.tipLamports);
const signature = await tipwise.send(signedTx, "standard");
const receipt = await tipwise.waitForReceipt(signature);
console.log(receipt.explanation?.title); // "Landed in 3 blocks (1.2 s)."Live console
Real responses from the Tipwise API on mainnet. Read only.
GET /faresPress Run to see the live response.
API reference
- GET /fares
- Saver, Standard and Express: tip in lamports, SOL and dollars, priority fee, probability, whether it meets its promise.
- GET /quote?deadline=6&confidence=0.9
- A custom quote for any deadline in slots and confidence, with per bucket detail.
- POST /send
- Body { tx, fare? }. A base64 signed legacy or v0 transaction that tips at least 0.0001 SOL to a Beam tip address.
- GET /receipt/:signature
- Stages with slot and ms, landed slot, failure class, Beam landing record, the promise and a plain explanation.
- GET /tips/addresses
- Beam tip addresses and Jito tip accounts.
- GET /blockhash
- A recent confirmed blockhash, so browsers need no RPC key.
- POST /audit
- Body { address }. A wallet checkup over its last 100 transactions. 6 per minute per IP.
- POST /audit/:address/watch
- Stream new transactions of a wallet onto its checkup for 15 minutes.
- GET /audit/examples
- The three wallets that tipped most in the last 10 minutes.
- POST /demo/send
- Body { fare }. A free test send paid by Tipwise, rate limited.
- GET /track-record
- Promise versus reality and recent test trips.
- GET /stats
- Everything the site shows, for a first paint.
- GET /leaders
- The next block builders with their measured median tip and skipped blocks.
- GET /health
- Stream health, slots behind the chain tip.
Live events (GET /events, server-sent events)
- slot
- every new block
- tips
- each confirmed block: count, percentiles, sampled tips
- fares
- live fares, at most every 2 s when they change
- lifecycle
- every stage of every send, with its explanation
- products
- Solami product status, every 5 s
- audit
- a new transaction of a watched wallet
- probe
- a test trip went out
- heat, lag, quote, stream
- market heat, the lag test, a default quote, stream health
Run it with your own Solami key
Tipwise is open source. With a Solami key you can run the whole thing yourself: the streams, the API and this site. The README has the quick start, the key permissions and a deploy guide. Open the README