Solana swaps with local signing, confirmed receipts, trading volume and filtered live trade data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <PumpView API key>. Get a key from your account or through wallet-signature onboarding.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Build and simulate an unsigned ExactIn swap, without spending funds. Requires a Bearer API key and its linked wallet, but no data subscription or credits. Check get_trading_config first. At least one leg must be SOL/WSOL or USDC; minimum value is $5 unless Unlimited is active. Execution costs 0.5% plus tips and network fees. Returns id, unsigned transaction_base64, expiry, expected/minimum output and cost breakdown. Review them, sign locally, then call submit_swap. Persist request_id; retry the identical intent after a build timeout. A 409 means conflicting intent; 410 means expired build and requires an explicit decision to create a new intent. Never silently increase slippage.
Exact input amount in atomic units, encoded as a decimal integer string, at most u64. SOL/WSOL has 9 decimals and USDC 6; resolve other token decimals first. Example: 0.06 SOL is "60000000".
Base58 public key of the signing wallet linked to this API-key account. Obtain/link it through onboarding; never pass a private key.
Asset to spend: SOL for native balance, WSOL for SPL wrapped balance, USDC, or a base58 token mint. One leg must resolve to SOL/WSOL/USDC.
Client-generated idempotency key, persisted before calling. Reuse with identical arguments after a timeout; changing the intent under this ID returns 409.
Asset to receive using the same aliases or a base58 mint. Must differ from the input after alias resolution; SOL-to-WSOL wrapping alone is unsupported.
Explicit signer-approved slippage tolerance. 100 basis points = 1%; 10000 allows 100%. Never silently increase it to fix a failed route.
Total acceleration tip in SOL lamports, separate from platform and network fees. 2000000 lamports = 0.002 SOL; charged only if the signed transaction executes.
Cap on the compute-unit priority fee in lamports. Excludes the base network fee, tips, token-account rent and platform fee; 1000000 = 0.001 SOL.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Build and simulate an unsigned ExactIn swap, without spending funds. Requires a Bearer API key and its linked wallet, but no data subscription or credits. Check get_trading_config first. At least one leg must be SOL/WSOL or USDC; minimum value is $5 unless Unlimited is active. Execution costs 0.5% plus tips and network fees. Returns id, unsigned transaction_base64, expiry, expected/minimum output and cost breakdown. Review them, sign locally, then call submit_swap. Persist request_id; retry the identical intent after a build timeout. A 409 means conflicting intent; 410 means expired build and requires an explicit decision to create a new intent. Never silently increase slippage.
| Argument | Type | Description |
|---|---|---|
| amount* | string | Exact input amount in atomic units, encoded as a decimal integer string, at most u64. SOL/WSOL has 9 decimals and USDC 6; resolve other token decimals first. Example: 0.06 SOL is "60000000". |
| wallet* | string | Base58 public key of the signing wallet linked to this API-key account. Obtain/link it through onboarding; never pass a private key. |
| input_mint* | string | Asset to spend: SOL for native balance, WSOL for SPL wrapped balance, USDC, or a base58 token mint. One leg must resolve to SOL/WSOL/USDC. |
| request_id* | string | Client-generated idempotency key, persisted before calling. Reuse with identical arguments after a timeout; changing the intent under this ID returns 409. |
| output_mint* | string | Asset to receive using the same aliases or a base58 mint. Must differ from the input after alias resolution; SOL-to-WSOL wrapping alone is unsupported. |
| slippage_bps* | integer | Explicit signer-approved slippage tolerance. 100 basis points = 1%; 10000 allows 100%. Never silently increase it to fix a failed route. |
| tip_lamports | integer | Total acceleration tip in SOL lamports, separate from platform and network fees. 2000000 lamports = 0.002 SOL; charged only if the signed transaction executes. |
| max_priority_fee_lamports | integer | Cap on the compute-unit priority fee in lamports. Excludes the base network fee, tips, token-account rent and platform fee; 1000000 = 0.001 SOL. |
{
"type": "object",
"title": "build_swapArguments",
"required": [
"request_id",
"wallet",
"input_mint",
"output_mint",
"amount",
"slippage_bps"
],
"properties": {
"amount": {
"type": "string",
"title": "Amount",
"pattern": "^[1-9][0-9]{0,19}$",
"examples": [
"60000000"
],
"description": "Exact input amount in atomic units, encoded as a decimal integer string, at most u64. SOL/WSOL has 9 decimals and USDC 6; resolve other token decimals first. Example: 0.06 SOL is \"60000000\"."
},
"wallet": {
"type": "string",
"title": "Wallet",
"maxLength": 44,
"minLength": 32,
"description": "Base58 public key of the signing wallet linked to this API-key account. Obtain/link it through onboarding; never pass a private key."
},
"input_mint": {
"type": "string",
"title": "Input Mint",
"examples": [
"SOL",
"USDC"
],
"maxLength": 44,
"minLength": 3,
"description": "Asset to spend: SOL for native balance, WSOL for SPL wrapped balance, USDC, or a base58 token mint. One leg must resolve to SOL/WSOL/USDC."
},
"request_id": {
"type": "string",
"title": "Request Id",
"pattern": "^[A-Za-z0-9_-]+$",
"examples": [
"agent-intent-20261016-001"
],
"maxLength": 80,
"minLength": 16,
"description": "Client-generated idempotency key, persisted before calling. Reuse with identical arguments after a timeout; changing the intent under this ID returns 409."
},
"output_mint": {
"type": "string",
"title": "Output Mint",
"examples": [
"USDC"
],
"maxLength": 44,
"minLength": 3,
"description": "Asset to receive using the same aliases or a base58 mint. Must differ from the input after alias resolution; SOL-to-WSOL wrapping alone is unsupported."
},
"slippage_bps": {
"type": "integer",
"title": "Slippage Bps",
"maximum": 10000,
"minimum": 0,
"examples": [
100
],
"description": "Explicit signer-approved slippage tolerance. 100 basis points = 1%; 10000 allows 100%. Never silently increase it to fix a failed route."
},
"tip_lamports": {
"type": "integer",
"title": "Tip Lamports",
"default": 2000000,
"maximum": 1000000000,
"minimum": 2000000,
"description": "Total acceleration tip in SOL lamports, separate from platform and network fees. 2000000 lamports = 0.002 SOL; charged only if the signed transaction executes."
},
"max_priority_fee_lamports": {
"type": "integer",
"title": "Max Priority Fee Lamports",
"default": 1000000,
"maximum": 100000000,
"minimum": 0,
"description": "Cap on the compute-unit priority fee in lamports. Excludes the base network fee, tips, token-account rent and platform fee; 1000000 = 0.001 SOL."
}
}
}Verify an already-broadcast invoice payment and activate the purchased data package. Bearer key for the invoice owner required; no data credits consumed. Reads Solana at finalized and validates payer, recipient, USDC amount, memo and payment window. It never broadcasts a payment. Returns paid=true and invoice_id on settlement. Repeating the same invoice/signature is safe and never grants access twice. 409 may mean payment not finalized: retry this confirmation with backoff, not the payment. 400 means transaction mismatch; 404 means missing/foreign invoice; 503 means RPC unavailable. After success, use get_access_status, then get_recent_trades or get_stream_connection.
| Argument | Type | Description |
|---|---|---|
| signature* | string | Base58 Solana transaction signature returned by your wallet after broadcasting this invoice payment. Not a signed transaction, wallet-login signature or private key. |
| invoice_id* | string | Invoice id returned by get_payment_instructions for this API-key account. Not a swap id or Solana transaction signature. |
{
"type": "object",
"title": "confirm_invoice_paymentArguments",
"required": [
"invoice_id",
"signature"
],
"properties": {
"signature": {
"type": "string",
"title": "Signature",
"pattern": "^[1-9A-HJ-NP-Za-km-z]+$",
"maxLength": 100,
"minLength": 80,
"description": "Base58 Solana transaction signature returned by your wallet after broadcasting this invoice payment. Not a signed transaction, wallet-login signature or private key."
},
"invoice_id": {
"type": "string",
"title": "Invoice Id",
"pattern": "^[0-9a-f]{32}$",
"examples": [
"0123456789abcdef0123456789abcdef"
],
"description": "Invoice id returned by get_payment_instructions for this API-key account. Not a swap id or Solana transaction signature."
}
}
}Inspect the authenticated account's live-data grants, rate limit and feed health. Call before consuming data or after an access error. Bearer key required; no data credits consumed. Returns unexpired grants (remaining=-1 means Unlimited), http_rate_limit shared across account keys, and source health. An empty grants list means no unexpired package; a grant can still have zero credits. Key-specific budgets are managed in the dashboard and are not in this response. Use get_trading_usage for swap volume, get_trading_config for swap policy, and get_payment_instructions to create a data-package invoice.
No arguments.
{
"type": "object",
"title": "get_access_statusArguments",
"properties": {}
}Read one of your account's existing invoices without creating or paying another. Bearer key required; no package or data credits needed. Returns payer, recipient, exact atomic USDC amount, memo, expires (Unix seconds) and paid. paid=false means not yet settled by PumpView, not proof of no on-chain payment. If your wallet already broadcast, use confirm_invoice_payment with that signature. Do not pay again while waiting. Missing or another account's invoice returns 404.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | string | Invoice id returned by get_payment_instructions for this API-key account. Not a swap id or Solana transaction signature. |
{
"type": "object",
"title": "get_invoice_statusArguments",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "string",
"title": "Invoice Id",
"pattern": "^[0-9a-f]{32}$",
"examples": [
"0123456789abcdef0123456789abcdef"
],
"description": "Invoice id returned by get_payment_instructions for this API-key account. Not a swap id or Solana transaction signature."
}
}
}Get API-key setup and integration instructions before your first PumpView call. Public: no key or data credits needed. Returns dashboard/Agent Kit/docs URLs, ordered HTTP wallet-challenge steps, and separate trading/data workflows. Does not create an account, sign, pay or trade. Once connected, use get_trading_config for swap policy or get_access_status for your purchased access.
No arguments.
{
"type": "object",
"title": "get_onboarding_instructionsArguments",
"properties": {}
}Create a new unpaid USDC invoice for a live-data package; this spends no funds. Call only after choosing a current plan with list_data_plans and checking get_access_status. Trading alone needs no data subscription. Requires a Bearer key and linked Solana wallet; missing wallet returns 409, unknown plan 404, disabled sales 503. Returns invoice id, payer, recipient, mint, atomic amount, memo and Unix expiry. Each call creates another invoice, so retain its ID rather than retry blindly. Next use prepare_invoice_payment, review/sign/broadcast with your wallet, then confirm_invoice_payment with the transaction signature. get_invoice_status checks settlement. submit_swap is for swaps, not invoice payments. Never pay an expired invoice or repeat a payment while confirmation is pending.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Exact data-package id from list_data_plans. Current ids: day (Day Pass), starter (Starter), builder (Unlimited). Use the id, not the display name; confirm current price and availability first. |
{
"type": "object",
"title": "get_payment_instructionsArguments",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "string",
"title": "Plan",
"examples": [
"builder"
],
"maxLength": 40,
"description": "Exact data-package id from list_data_plans. Current ids: day (Day Pass), starter (Starter), builder (Unlimited). Use the id, not the display name; confirm current price and availability first."
}
}
}Read filtered market swap summaries from PumpView's supported SOL-pair feed. Use for recent market activity, not your submitted swap receipt (get_swap_status). Requires a Bearer key, active data grant and sufficient key budget. Each call consumes max(1, returned event count) credits; repeated reads also count. Unlimited has no package event cap, but an explicit key budget still applies. Returns events in feed order, a cursor and health. Filtering follows batch scanning, so advance using the returned cursor even for an empty batch. On 409 cursor_expired restart without after and record a gap; 402 means access or budget exhausted, 503 means unavailable source. Use get_stream_connection for continuous WSS delivery. Amounts are decoder floats, not full transaction accounting.
| Argument | Type | Description |
|---|---|---|
| mint | any | Optional exact token mint address in base58. Filters the traded token of the supported SOL-pair feed; omit for all mints. No ticker aliases. |
| after | any | Opaque cursor returned by the previous batch. Omit for a recent snapshot; supply unchanged to scan subsequent events. Not a timestamp or transaction signature. |
| limit | integer | Maximum accepted events scanned before mint/wallet filters, 1-500; default 100. The number returned can be smaller, including zero. |
| wallet | any | Optional exact base58 trader public key reported by the decoder. Combined with mint using AND; omit for all wallets. |
{
"type": "object",
"title": "get_recent_tradesArguments",
"properties": {
"mint": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Mint",
"default": null,
"description": "Optional exact token mint address in base58. Filters the traded token of the supported SOL-pair feed; omit for all mints. No ticker aliases."
},
"after": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "After",
"default": null,
"description": "Opaque cursor returned by the previous batch. Omit for a recent snapshot; supply unchanged to scan subsequent events. Not a timestamp or transaction signature."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 100,
"maximum": 500,
"minimum": 1,
"description": "Maximum accepted events scanned before mint/wallet filters, 1-500; default 100. The number returned can be smaller, including zero."
},
"wallet": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Wallet",
"default": null,
"description": "Optional exact base58 trader public key reported by the decoder. Combined with mint using AND; omit for all wallets."
}
}
}Get WSS setup for continuous live trades instead of polling get_recent_trades. Requires a Bearer key with an active eligible data grant/budget; 402 means access is unavailable. Returns url, an Authorization header template, first_message JSON and cursor-resume instructions. This lookup consumes no data credits and opens no background connection. Your runtime must connect and insert its own key; all keys share one concurrent WSS connection per account. Delivered events consume data credits/budget under the plan. Persist the last cursor to resume; an expired cursor requires a fresh snapshot and gap handling.
No arguments.
{
"type": "object",
"title": "get_stream_connectionArguments",
"properties": {}
}Check an existing account swap after submission, including after a timeout. Requires the owning account's Bearer key; no data credits consumed. Returns id, signature, status and receipt. States are built, submitted, confirmed, finalized, failed or expired. Execution receipts start at confirmed and may still be null while RPC metadata catches up. Poll this ID with backoff within the account rate limit; use get_trading_usage for aggregate volume. This call refreshes stored status/receipts but never submits, signs or rebuilds a trade.
| Argument | Type | Description |
|---|---|---|
| swap_id* | string | PumpView id returned by build_swap for this account, not a Solana signature or request_id. |
{
"type": "object",
"title": "get_swap_statusArguments",
"required": [
"swap_id"
],
"properties": {
"swap_id": {
"type": "string",
"title": "Swap Id",
"pattern": "^[0-9a-f]{32}$",
"examples": [
"0123456789abcdef0123456789abcdef"
],
"description": "PumpView id returned by build_swap for this account, not a Solana signature or request_id."
}
}
}Read the current server's swap policy before choosing build_swap parameters. Public: no API key or data credits needed. Returns enabled, mint aliases, allowed pair assets, fee basis points, USD minimums, tip limits and build TTL. enabled is configuration status, not a liquidity quote or an RPC health check. Use get_trading_usage for executed account volume and get_access_status for grants.
No arguments.
{
"type": "object",
"title": "get_trading_configArguments",
"properties": {}
}Read all-time executed volume for the authenticated account and each API key. Use for accounting, not market history (get_recent_trades) or one receipt (get_swap_status). Bearer key required; no data package or credits consumed. Returns available, totals and by_api_key. Successful swaps count once from confirmed; finalization never adds them again. SOL/USDC amounts are decimal strings; USD uses build-time prices. available=false means temporary unavailability, not zero volume. Newly confirmed receipts may appear shortly later.
No arguments.
{
"type": "object",
"title": "get_trading_usageArguments",
"properties": {}
}List current data packages and prices before buying a live-data subscription. Public: no key or credits needed. Returns plan IDs, price in atomic USDC (6 decimals), duration, event allowance, filters, account request/connection limits and sales_enabled. -1 credits means Unlimited. Trading alone needs no data package. If sales are enabled, choose a plan and call get_payment_instructions with its exact id to create an unpaid invoice.
No arguments.
{
"type": "object",
"title": "list_data_plansArguments",
"properties": {}
}Prepare an unsigned USDC payment for an existing unpaid, unexpired invoice. Bearer key required; no package or data credits needed. Returns a base64 legacy Solana transaction and last_valid_block_height. Review it against get_invoice_status: payer, recipient, mint, amount and pumpview:<id> memo. Your authorized wallet signs and broadcasts locally, using USDC plus SOL for network fees and possible token-account rent. PumpView never receives the private key. This tool does not sign, submit or activate the package. Next call confirm_invoice_payment with the wallet's broadcast signature. A 409 means expired/paid invoice. On blockhash expiry, check the old signature before preparing a replacement for the same invoice; never pay twice.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | string | Invoice id returned by get_payment_instructions for this API-key account. Not a swap id or Solana transaction signature. |
{
"type": "object",
"title": "prepare_invoice_paymentArguments",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "string",
"title": "Invoice Id",
"pattern": "^[0-9a-f]{32}$",
"examples": [
"0123456789abcdef0123456789abcdef"
],
"description": "Invoice id returned by get_payment_instructions for this API-key account. Not a swap id or Solana transaction signature."
}
}
}Broadcast the wallet-approved, signed build through Kolibrio. This can spend funds. Requires a Bearer key for the account that built the swap. Only the exact build_swap message is accepted; the wallet must already have reviewed and authorized its amounts and costs. Returns the swap ID, signature and current status; submitted is not confirmation. Repeating the same ID and signed bytes cannot create a different trade. After a timeout or uncertain delivery, poll get_swap_status; never automatically build a replacement or change its blockhash.
| Argument | Type | Description |
|---|---|---|
| swap_id* | string | PumpView id returned by build_swap for this account, not a Solana signature or request_id. |
| signed_transaction_base64* | string | Standard base64 of the complete serialized Solana v0 transaction from this build, after local wallet signing. Preserve the original message and blockhash. Not a signature string, seed, private key or JSON transaction. |
{
"type": "object",
"title": "submit_swapArguments",
"required": [
"swap_id",
"signed_transaction_base64"
],
"properties": {
"swap_id": {
"type": "string",
"title": "Swap Id",
"pattern": "^[0-9a-f]{32}$",
"examples": [
"0123456789abcdef0123456789abcdef"
],
"description": "PumpView id returned by build_swap for this account, not a Solana signature or request_id."
},
"signed_transaction_base64": {
"type": "string",
"title": "Signed Transaction Base64",
"maxLength": 1800,
"minLength": 100,
"description": "Standard base64 of the complete serialized Solana v0 transaction from this build, after local wallet signing. Preserve the original message and blockhash. Not a signature string, seed, private key or JSON transaction."
}
}
}