Widget Docs

Embed Pay On Pump in three steps.

The widget is delivered as a lightweight React component (soon vanilla JS). It connects to our PumpFun routing service, quotes swaps, and ships a single Solana transaction that swaps to SOL then settles in USDC.

Quick start

  1. 1. Install SDK: npm install @payonpump/widget
  2. 2. Wrap your checkout: <PayOnPumpProvider apiKey="..." />
  3. 3. Render the widget where you need it:
import { PayOnPumpWidget } from "@payonpump/widget";

<PayOnPumpWidget
  merchant="monkes.fun"
  amountUsd={49}
  tokenMint="5pumpFunMintAddress"
  metadata={{ email, cartId }}
  onStatus={(event) => console.log(event)}
/>
ⓘ Pay On Pump uses the PumpFun IDL directly from Solana so you never manage token lists. Swaps route through Jupiter, convert to SOL, then our custody program sweeps into USDC on your vault wallet.

Interactive demo

Quote engine wired to PumpFun stub. Replace RPC + IDL with your own to go live.

Quote preview

0.82 SOL

Slippage ceiling: 0.34%

Integration checklist

Everything you need before mainnet launch.

Provision merchant

Create a merchant slug in the dashboard, upload a settlement wallet, and mint API keys.

Embed the widget

Wrap your checkout with PayOnPumpProvider and render PayOnPumpWidget with the amount and PumpFun mint.

Wire callbacks

Subscribe to status events for analytics, fulfilment, and ledgering inside your product.

Reference

PayOnPumpWidget props

Typed, tree-shakeable, and ready for server components.

PropTypeRequiredDescription
merchantstringYesSlug from the dashboard that maps to custody vaults.
amountUsdnumberYesUSD amount you expect to collect. Quote engine converts to SOL.
tokenMintstringYesPumpFun mint address to source liquidity from.
metadataRecord<string, string>NoApp-specific payload forwarded to webhook events.
onStatus(event) => voidNoCallback fired for quote + settlement lifecycle updates.

Webhook

quote.updated

quote

Triggered when the widget recomputes quotes or the user toggles slippage.

{
  "event": "quote.updated",
  "merchant": "monkes.fun",
  "referenceId": "af28-quote",
  "amountUsd": 49,
  "estimatedSol": 0.812,
  "slippageBps": 35
}

Webhook

payment.settled

payment

Fires after the Solana transaction confirms and the USDC sweep completes.

{
  "event": "payment.settled",
  "merchant": "monkes.fun",
  "referenceId": "af28-quote",
  "signature": "5j1...XYZ",
  "vault": "payOnPumpVaultPubkey",
  "usdValue": 49.01,
  "status": "success"
}

Need help?

Drop into our engineer-to-engineer Slack.

We’ll review CPI flows, slippage policies, and custom liquidity routing.