Terminal Walkthrough
In this step by step walkthrough, we will utilize the Solana Dapp Scaffold codebase to demonstrate integrating Jupiter Swap Terminal!
You can also watch the tutorial on YouTube!
Let's Get Started​
Since we are building on top of the Solana Dapp Scaffold, we'll start by setting up the necessary codebase and dependencies.
- Terminal Playground: To play with different settings,features and styling.
- Open Source Repository: To understand and make use of the Jupiter Terminal better.
- API Type Reference: To utilize the different references.
Set up​
Clone the repository to local machine or working environment.
git clone https://github.com/solana-labs/dapp-scaffold.git
Install the dependencies.
pnpm install
Load the site in your localhost.
pnpm dev
Modify files​
Change network configuration​
Next, navigate to dapp-scaffold/src/contexts/NetworkConfigurationProvider.tsx
file and change your network configuration from devnet
to mainnet-beta
.
const [networkConfiguration, setNetworkConfiguration] = useLocalStorage("network", "mainnet-beta");
Add Jupiter Terminal script​
In the dapp-scaffold/src/pagers/_document.tsx
file, include your Jupiter Terminal script.
...
<Html>
<Head>
<link rel="shortcut icon" href="/favicon.ico"/>
<script src="https://terminal.jup.ag/main-v3.js" data-preload />
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
...
Add necessary imports​
In the dapp-scaffold/src/views/home/index.tsx
file, include these imports.
...
import useUserSOLBalanceStore from '../../stores/useUserSOLBalanceStore';
import { Connection, PublicKey, Transaction } from '@solana/web3.js';
import { notify } from 'utils/notifications';
export const HomeView: FC = ({ }) => {
...
Use Jupiter Terminal Playground​
Here comes the fun part, this is where you can customize the settings and configurations that best fit your app or site in Jupiter Terminal Playground!
After playing around with what you deem fit best, at the bottom of the playground, the code snippet
will be readily generated.
All you need to do is copy the code in the code snippet section and paste it directly in the dapp-scaffold/src/views/home/index.tsx
file (remember to add an OnClick
to be able to interact with the Terminal).
...
return (
<div className="md:hero mx-auto p-4">
<div className="md:hero-content flex flex-col">
<div className='mt-6'>
<button OnClick={() =>
window.Jupiter.init({
displayMode: "integrated",
integratedTargetId: "integrated-terminal",
endpoint: "https://api.mainnet-beta.solana.com",
formProps: {
fixedInputMint: true,
fixedOutputMint: true,
swapMode: "ExactIn",
fixedAmount: true,
initialAmount: "200000000",
initialSlippageBps: 1,
},
})
}> Launch Jupiter Terminal
</button>
...
If you need assistance or have questions, feel free to reach out to us on Discord!