Heirlet

Docs

How Heirlet reads and writes pump.fun paired coins.

What a paired coin is

A normal pump.fun coin trades against SOL. A paired coin trades against another asset: its quote mint. In Heirlet every quote asset is a House and every coin paired with it is one of its Heirs. Buyers pay in the House token and the House tokens collected by the bonding curve are locked inside it until the curve completes.

How Houses are read live

The House list is never hardcoded. Heirlet calls fetchSupportedQuoteMints() from the official pump SDK, which reads pump.fun's QuoteControl account and the whitelist inside the on-chain Global account. Each mint is then enriched with Jupiter token data, Jupiter prices and DexScreener volume, and classified (Stock / ETF, Stable, SOL, Memecoin, Crypto) from that data. The list is cached for five minutes.

maxCurveDepth

Global.maxCurveDepth says how deep a chain of pump coins used as quotes may go. At 0, a pump coin that is not already on the list cannot be a House and resolveQuoteMint throws CurveDepthExceededError. Above 0, the launcher accepts any eligible pump coin pasted by mint. The live value is shown on the Houses page.

Holder-rewards coins

With is_holder_reward set at creation, the creator fee of every trade goes to the coin's holders instead of a creator wallet. This is permanent and cannot be changed later.

Custom creator fee (bps)

For custom pairs (every House other than SOL and USDC) you may set a creator fee in basis points. The SDK validates the range against the on-chain configuration and raises CreatorFeeBpsOutOfRangeError otherwise. Leave it empty for the standard schedule.

Fee splits

Up to 10 recipients whose shares total exactly 100%. After the coin exists, Heirlet sends a second transaction that creates the fee-sharing config and sets the shares. Anyone can later call Sweep + distribute on the coin page to move accrued fees to the recipients.

How buys from SOL are routed

Direct routes exist for pump custom-quote curves in Jupiter. Heirlet requests a quote and a swap transaction from Jupiter's lite API, shows the route, price impact and minimum received, simulates the transaction and only then asks your wallet to sign. For a dev buy at launch, Heirlet swaps SOL into the House token and buys the new coin with it, in one transaction when it fits under 1232 bytes and in two labelled transactions otherwise.

Radar coverage and its limits

The radar polls the signatures of the pump QuoteControl account, fetches new transactions (including version-1 transactions), keeps successful ones that contain a CreateV2 instruction and reads the new mint, creator and quote mint from its accounts. It covers launches that pass through that account. SOL- and USDC-paired launches are not part of the radar. House history is indexed only from the time this app first saw each launch.

Verify every transaction on Solscan

Every action shows its real signature with a Solscan link as soon as it is submitted. Heirlet simulates before asking for a signature, never holds your keys and takes no platform fee. Open the link, check the program ids (6EF8rrec…wF6P for pump.fun), the accounts and the token transfers.

Create an heir of SPYx without Heirlet

import { Connection, Keypair, PublicKey, TransactionMessage, VersionedTransaction } from "@solana/web3.js";
import { OnlinePumpSdk } from "@pump-fun/pump-sdk";

const connection = new Connection(process.env.RPC_MAINNET!, "confirmed");
const sdk = new OnlinePumpSdk(connection);
const user = Keypair.fromSecretKey(/* your wallet secret key */ new Uint8Array([]));
const mint = Keypair.generate();

// Find SPYx in the live House list (never hardcode it).
const houses = await sdk.fetchSupportedQuoteMints();
const spyx = houses.find((h) => h.mint.toBase58() === "<SPYx mint>")!;
const quote = await sdk.resolveQuoteMint(spyx.mint);

const ix = await sdk.createV2Instruction({
  mint: mint.publicKey,
  name: "My Heir",
  symbol: "HEIR",
  uri: "<metadata uri from pump.fun/api/ipfs>",
  creator: user.publicKey,
  user: user.publicKey,
  mayhemMode: false,
  quoteMint: quote.mint,
  quoteTokenProgram: quote.quoteTokenProgram,
  pumpQuote: quote.pumpQuote?.accounts,
});

const { blockhash } = await connection.getLatestBlockhash();
const msg = new TransactionMessage({
  payerKey: user.publicKey,
  recentBlockhash: blockhash,
  instructions: [ix],
}).compileToV0Message();

const tx = new VersionedTransaction(msg);
tx.sign([user, mint]);
const sim = await connection.simulateTransaction(tx);
if (sim.value.err) throw new Error(JSON.stringify(sim.value.err));
console.log(await connection.sendTransaction(tx));

Launching and trading memecoins is high risk. Heirlet never holds your keys or funds; verify every transaction on Solscan.