The Jupiter Developer Platform is live. Previous portal users keep their rate limits for free until 30 June 2026 — set up billing on the new platform before then. See the Migration Guide for details.
Use this file to discover all available pages before exploring further.
Try out the Plugin Playground to experience the full swap features and see the different customization options with code snippets.For the full customization options, you can refer to the repository.
If you are using TypeScript, you can use the type declaration file to get the full type definitions for the Plugin.
The integrated mode embeds the swap form directly into your application’s layout. This is ideal for creating a seamless swap experience within your dApp.
{ displayMode: "integrated"; integratedTargetId: string; // Required: ID of the container element containerStyles?: { width?: string; height?: string; borderRadius?: string; overflow?: string; }; containerClassName?: string;}
The widget mode creates a floating swap form that can be positioned in different corners of the screen. Perfect for quick access to swaps without taking up too much space.
The formProps object allows you to customize the initial state and behavior of the swap form! This can be useful for use cases like fixed token swaps for memecoin communities or fixed amount payments.
{ displayMode: "modal"; formProps?: { swapMode?: SwapMode; // Set the swap mode to "ExactIn", "ExactOut", or default to "ExactInOrOut" initialAmount?: string; // Pre-fill the swap amount (e.g. "100") initialInputMint?: string; // Pre-select the input token by its mint address initialOutputMint?: string; // Pre-select the output token by its mint address fixedAmount?: boolean; // When true, users cannot change the swap amount fixedMint?: string; // Lock one side of the swap to a specific token by its mint address referralAccount?: string; // Set the referral account for the swap referralFee?: number; // Set the referral fee for the swap }}
Jupiter Plugin supports third-party wallet integration through the enableWalletPassthrough prop. This allows your application to pass through an existing wallet provider’s connection in your application to Plugin. If you do not have an existing wallet provider, Plugin will provide a wallet adapter and connection - powered by Unified Wallet Kit.
{ // When true, wallet connection are handled by your dApp, // and use `syncProps()` to syncronise wallet state with Plugin. enableWalletPassthrough?: boolean; // Optional, if wallet state is ready, // you can pass it in here, or just use `syncProps()` passthroughWalletContextState?: WalletContextState; // When enableWalletPassthrough is true, this allows Plugin // to callback your app's wallet connection flow onRequestConnectWallet?: () => void | Promise<void>;}