# What is Heaven?
Source: https://docs.heaven.xyz/about
Heaven is an AMM and launchpad designed to house great ideas on Solana. One place for *everything* to live, from memes to companies.
This section is non-technical. If you want to jump into the API, you can [head here](/sdk/quickstart/api).
Below are some quick access points for this section:
*Another* launchpad... unless?
Tldr: *everyone*.
What does Heaven actually do?
Heaven's native token.
# Get Liquidity Pool Info
Source: https://docs.heaven.xyz/api-reference/data-api/get-liquidity-pool-info
/openapi.json post /data/pool-info
Fetch detailed information about a liquidity pool including current reserves, fees collected, market cap, creator verification status, and migration state.
This is the primary endpoint for displaying pool data in a UI. It returns human-readable values (UI amounts with decimals applied).
# Get Liquidity Pool State
Source: https://docs.heaven.xyz/api-reference/data-api/get-liquidity-pool-state
/openapi.json post /data/pool-state
Fetch the raw on-chain state of a liquidity pool by its mint address.
Returns the full deserialized `LiquidityPoolState` account data. Useful for advanced integrations that need access to all pool parameters.
# Get LP Balance
Source: https://docs.heaven.xyz/api-reference/data-api/get-lp-balance
/openapi.json post /data/lp-balance
Fetch a user's LP position in a pro pool.
Returns the LP token balance, pending fees, and whether the position exists on-chain. If the user has never added liquidity (or received LP tokens via transfer), `exists` will be `false` and all values will be zero.
The `lp_position_address` is the PDA derived from `[USER_LP_POSITION, pool, user]` — useful for monitoring the account directly via WebSocket subscriptions.
# Get Protocol Config State
Source: https://docs.heaven.xyz/api-reference/data-api/get-protocol-config-state
/openapi.json post /data/protocol-config-state
Fetch the on-chain protocol configuration for a given version.
The protocol config contains fee structures, pool creation parameters, and other protocol-wide settings. Different versions may have different fee tiers.
# Claim Creator Fees
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/claim-creator-fees
/openapi.json post /tx/pro/claim-creator-fees
Claim accumulated creator trading fees from a pro pool.
Creator fees accrue in SOL as users trade in the pool. The fee rate is determined by the pool's market cap based fee brackets. Only the designated fee receiver (initially the pool creator) can claim.
# Claim LP Fees
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/claim-lp-fees
/openapi.json post /tx/pro/claim-lp-fees
Claim accumulated LP provider trading fees from a pro pool.
LP fees accrue proportionally to your LP token balance. Fees are automatically tracked per LP position and can be claimed at any time.
# Create Pro Buy Transaction
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/create-pro-buy-transaction
/openapi.json post /tx/pro/buy
Generate a buy transaction for a pro pool.
**Flow:** First call `/quote/pro/buy` to get a quote, then pass the `quote_response` and `pool` address here. The returned transaction wraps SOL, executes the swap, and unwraps remaining SOL.
Pro pool buys work identically to standard pool buys but reference the pro pool's state account directly.
# Create Pro Pool
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/create-pro-pool
/openapi.json post /tx/pro/create
Create a new pro liquidity pool using an existing SPL token.
### Fee configuration
All fees default to **0%** except protocol fee (**0.3%**, set by protocol config). All fee fields are optional.
| Field | Fee type | Default |
|---|---|---|
| `creator_trading_fee` | Claimable by pool creator | 0% |
| `reflection_trading_fee` | Distributed to token holders | 0% |
| `liquidity_provider_trading_fee` | Distributed to LP providers | 0% |
| `creator_slot_trading_fee` | Slot-based sniper resistance | Disabled |
Each fee type accepts an array of `FeeBracketInput` with `market_cap_upper_bound`, `buy_fee_bps`, and `sell_fee_bps`. 1 bps = 0.01%, so 100 bps = 1%.
### Feature toggles
All optional, wrapped in a `features` object:
| Toggle | Default | Description |
|---|---|---|
| `enable_swap` | `true` | Allow buying and selling |
| `enable_deposit_liquidity` | `true` | Allow depositing liquidity |
| `enable_withdraw_liquidity` | `true` | Allow withdrawing liquidity |
| `enable_update_creator_trading_fee` | `true` | Allow fee bracket updates |
| `enable_same_slot_trading` | `false` | Allow buy+sell in same slot |
| `enable_sandwich_resistant_mode` | `false` | MEV sandwich protection |
# Create Pro Sell Transaction
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/create-pro-sell-transaction
/openapi.json post /tx/pro/sell
Generate a sell transaction for a pro pool.
**Flow:** First call `/quote/pro/sell` to get a quote, then pass the `quote_response` and `pool` address here. The transaction sells tokens for SOL.
# Deposit Liquidity
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/deposit-liquidity
/openapi.json post /tx/pro/add-liquidity
Deposit liquidity to a pro pool.
Deposits token A and SOL proportional to the current pool ratio. You receive LP tokens representing your share of the pool. If this is your first time adding liquidity, a new LP position PDA is created for your wallet.
**Parameters:** Specify `max_token_a` and `max_token_b` as upper bounds — the actual deposited amounts will match the pool's current ratio. Set `min_lp_tokens` to protect against slippage (use 0 to accept any amount).
# Quote Pro Buy
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/quote-pro-buy
/openapi.json post /quote/pro/buy
Get a buy quote for a pro pool.
Returns the estimated token output, fees, and minimum output after slippage. Unlike standard quotes, pro pool quotes require the `pool` address since pro pool PDAs include the creator in their derivation.
Pass the full response to `/tx/pro/buy` to build the transaction.
# Quote Pro Sell
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/quote-pro-sell
/openapi.json post /quote/pro/sell
Get a sell quote for a pro pool.
Returns the estimated SOL output, fees, and minimum output after slippage. Requires the `pool` address.
Pass the full response to `/tx/pro/sell` to build the transaction.
# Set Creator Fee
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/set-creator-fee
/openapi.json post /tx/pro/set-market-cap-creator-fee
Set market cap based creator fee brackets on a pro pool. Only the pool creator can call this.
Brackets are evaluated from lowest to highest `market_cap_upper_bound`. Use `9223372036854775807` (max int64) for the final catch-all bracket.
**Example** — charge 2% below $100k, 1% up to $1M, 0.5% above:
| `market_cap_upper_bound` | `buy_fee_bps` | `sell_fee_bps` | Effective rate |
|---|---|---|---|
| `100000000000` | `200` | `200` | 2% below $100k |
| `1000000000000` | `100` | `100` | 1% up to $1M |
| `9223372036854775807` | `50` | `50` | 0.5% above $1M |
# Set LP Fee
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/set-lp-fee
/openapi.json post /tx/pro/set-lp-fee
Set market cap based LP provider fee brackets on a pro pool. LP fees are distributed proportionally to liquidity providers. Only the pool creator can call this.
**Example** — 0.3% below $500k, 0.1% above:
| `market_cap_upper_bound` | `buy_fee_bps` | `sell_fee_bps` | Effective rate |
|---|---|---|---|
| `500000000000` | `30` | `30` | 0.3% below $500k |
| `9223372036854775807` | `10` | `10` | 0.1% above $500k |
# Set Reflection Fee
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/set-reflection-fee
/openapi.json post /tx/pro/set-reflection-fee
Set market cap based reflection fee brackets on a pro pool. Reflection fees are automatically distributed to token holders on each trade. Only the pool creator can call this.
**Example** — flat 0.25% reflection fee:
| `market_cap_upper_bound` | `buy_fee_bps` | `sell_fee_bps` | Effective rate |
|---|---|---|---|
| `9223372036854775807` | `25` | `25` | 0.25% at all market caps |
# Set Slot Fee
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/set-slot-fee
/openapi.json post /tx/pro/set-slot-creator-fee
Set slot-offset based creator fee brackets on a pro pool. Useful for **sniper resistance** — charge high fees in the first few seconds after launch that decay over time.
Each Solana slot is ~400ms. When active, slot fees **take precedence** over market cap based creator fees. Only the pool creator can call this.
**Example** — 50% for first ~2s, 10% for next ~4s, then normal fees:
| `slot_offset_upperbound` | `buy_fee_bps` | `sell_fee_bps` | Timing |
|---|---|---|---|
| `5` | `5000` | `5000` | First ~2 seconds (50%) |
| `15` | `1000` | `1000` | Next ~4 seconds (10%) |
Set `max_slot_offset: 15`, `max_fee_bps: 5000`, `enabled: true`.
# Toggle Deposit
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/toggle-deposit
/openapi.json post /tx/pro/toggle-deposit
Enable or disable deposits on a pro pool. Only the pool creator can call this.
When deposits are disabled, no new deposits can be made. Existing LP positions and withdrawals are unaffected.
# Toggle Swap
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/toggle-swap
/openapi.json post /tx/pro/toggle-swap
Enable or disable swapping on a pro pool. Only the pool creator can call this.
When swapping is disabled, all buy and sell transactions will fail. Useful for pausing trading during migrations or emergencies.
# Toggle Withdraw
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/toggle-withdraw
/openapi.json post /tx/pro/toggle-withdraw
Enable or disable withdrawals on a pro pool. Only the pool creator can call this.
When withdrawals are disabled, LP holders cannot withdraw. Use with caution as this locks LP funds.
# Transfer LP Tokens
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/transfer-lp-tokens
/openapi.json post /tx/pro/transfer-lp
Transfer LP tokens between users within a pro pool.
If the receiver doesn't have an existing LP position, a new one is created automatically (the payer covers the rent). The sender's LP balance is reduced and the receiver's is increased.
LP tokens represent a proportional share of the pool's reserves and accumulated fees.
# Update Creator Fee Receiver
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/update-creator-fee-receiver
/openapi.json post /tx/pro/update-creator-fee-receiver
Transfer creator fee receiver rights to a new wallet.
Both the current creator and the new receiver must sign the transaction. The pool must have:
- Fee claim status set to "Processed" (no pending claims)
- Fee distribution set to "Creator" mode
After the transfer, the new receiver can claim future creator trading fees.
# Withdraw Liquidity
Source: https://docs.heaven.xyz/api-reference/pro-pool-api/withdraw-liquidity
/openapi.json post /tx/pro/remove-liquidity
Withdraw liquidity from a pro pool by burning LP tokens.
You receive token A and SOL proportional to your share of the pool. Use `min_token_a` and `min_token_b` to set minimum acceptable amounts (slippage protection).
# Create Buy Transaction
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/create-buy-transaction
/openapi.json post /tx/buy
Generate a Base64 encoded buy transaction for a standard pool.
**Flow:** First call `/quote/buy` to get a quote, then pass the `quote_response` here to build the transaction. The returned transaction must be signed by the payer and submitted to the Solana network.
The transaction includes: compute budget instructions, wSOL wrapping, token ATA creation (if needed), the buy instruction, and wSOL unwrapping.
# Create Claim Creator Trading Fee Transaction
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/create-claim-creator-trading-fee-transaction
/openapi.json post /tx/claim-creator-trading-fees
Generate a Base64 encoded creator fee claim transaction for client-side signing and submission.
# Create Pool Transaction
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/create-pool-transaction
/openapi.json post /tx/create-standard-liquidity-pool
Generate a transaction to create a new standard liquidity pool with a vanity mint address.
This creates a new Token-2022 mint, sets up metadata, creates the pool, toggles it live, and optionally executes an initial buy — all in a single transaction. The pool uses Heaven's standardized parameters (virtual SOL seeding, fixed fee structure).
# Create Sell Transaction
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/create-sell-transaction
/openapi.json post /tx/sell
Generate a Base64 encoded sell transaction for a standard pool.
**Flow:** First call `/quote/sell` to get a quote, then pass the `quote_response` here to build the transaction. The returned transaction must be signed by the payer and submitted to the Solana network.
# Quote Buy
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/quote-buy
/openapi.json post /quote/buy
Get a quote for buying tokens in a standard pool.
Returns the estimated token output, fees, and minimum output after slippage. Pass the full response object to `/tx/buy` to build the transaction.
**Note:** The quote is calculated at the current on-chain state and may change by the time the transaction is submitted. Use `slippage_bps` to protect against price movements.
# Quote Initial Buy
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/quote-initial-buy
/openapi.json post /quote/initial-buy
Estimate the cost of purchasing a percentage of the initial token supply when creating a new standard pool.
Useful for calculating how much SOL is needed for the initial dev buy during pool creation.
# Quote Sell
Source: https://docs.heaven.xyz/api-reference/standard-pool-api/quote-sell
/openapi.json post /quote/sell
Get a quote for selling tokens in a standard pool.
Returns the estimated SOL output, fees, and minimum output after slippage. Pass the full response object to `/tx/sell` to build the transaction.
# Assets
Source: https://docs.heaven.xyz/assets
All of the heaven iconography, both static and animated.
## Transparent (static)
## Transparent (animated)
The below files are low-res gifs. Access high-res transparent mov's or webm's [here](https://drive.google.com/drive/folders/14vLJI8Wsv0WIdCoUVrQzlmFG9fiD67mS?usp=sharing).
## Opaque (static)
# Certora Audit
Source: https://docs.heaven.xyz/certora
Find a downloadable PDF [here](https://doc-asset.heaven.xyz/Heaven-Certora-Security-Assessment.pdf).
# No bonding curve
Source: https://docs.heaven.xyz/curve
Pump's original bonding curve mechanism was a genius way to bootstrap liquidity without requiring any LP funding from the deployer. At a certain threshold, the bonding curve would migrate over to Raydium and add real LP to a pool.
**When you own the AMM, none of this is required.**
Heaven uses a small amount of "virtual SOL" to set the floor for all launches.
**Here's how it works:**
Each pool on Heaven moves algorithmically as though it was seeded with 35 SOL, even though each pool is free to launch.
No one can "sell into" the virtual SOL in the LP, as it marks the floor for every new launch.
This means that all pools have enough liquidity to begin trading, similar to as if they were trading on a standard bonding curve. The difference is that there is no need to "migrate" on to a different AMM. Pools start trading on Heaven's AMM from day 1.
With this mechanism, creators can buy as much dev supply as they want (the \$LIGHT TGE happened on these very rails). It also means that users can pay for dex immediately after launching.
There is still a "virtual migration" cap set at \$100k, so that visualization tools like Axiom's Pulse, Photon's memescope, or even Heaven's own [ideas page](https://heaven.xyz/ideas) can function in a way that people are familiar with. Ultimately though, all pairs are trading directly on Heaven's AMM immediately.
## LP breakdown
**We are still experimenting with the optimal amount of opening virtual SOL for each LP on Heaven**. The LP ratio can easily be scaled up or down by changing the starting SOL balance for each pool. More SOL means that tokens will have thicker LP to marketcap ratios.
Currently, this is a breakdown of how LP the mc ratio scales:
| Pool SOL Balance | USD Value of Pool | Pool % Left | Market Cap |
| :--------------- | :---------------- | :---------- | :-------------- |
| 35 | \$12,600.00 | 100.00% | \$6,300.00 |
| 115 | \$41,400.00 | 30.43% | \$68,014.29 |
| 200 | \$72,000.00 | 17.50% | \$205,714.29 |
| 300 | \$108,000.00 | 11.67% | \$462,857.14 |
| 400 | \$144,000.00 | 8.75% | \$822,857.14 |
| 500 | \$180,000.00 | 7.00% | \$1,285,714.29 |
| 600 | \$216,000.00 | 5.83% | \$1,851,428.57 |
| 700 | \$252,000.00 | 5.00% | \$2,520,000.00 |
| 800 | \$288,000.00 | 4.38% | \$3,291,428.57 |
| 900 | \$324,000.00 | 3.89% | \$4,165,714.29 |
| 1000 | \$360,000.00 | 3.50% | \$5,142,857.14 |
| 1100 | \$396,000.00 | 3.18% | \$6,222,857.14 |
| 1200 | \$432,000.00 | 2.92% | \$7,405,714.29 |
| 1300 | \$468,000.00 | 2.69% | \$8,691,428.57 |
| 1400 | \$504,000.00 | 2.50% | \$10,080,000.00 |
| 1500 | \$540,000.00 | 2.33% | \$11,571,428.57 |
| 1600 | \$576,000.00 | 2.19% | \$13,165,714.29 |
| 1700 | \$612,000.00 | 2.06% | \$14,862,857.14 |
| 1800 | \$648,000.00 | 1.94% | \$16,662,857.14 |
| 1900 | \$684,000.00 | 1.84% | \$18,565,714.29 |
| 2000 | \$720,000.00 | 1.75% | \$20,571,428.57 |
# Fees
Source: https://docs.heaven.xyz/fees
There are two categories of fees on Heaven: **protocol fees** ([which go to \$LIGHT's flywheel](/god)), and **creator fees**.
These fees change based on whether a coin is [categorized](/permissioned) as a "community" or a "creator" coin.
Let's break down both fee structures separately:
### Protocol fees
| Action | Fee |
| -------------------------------------------- | ------------------ |
| Create a coin | Free |
| When a coin is trading \< \$100k mc | 1% protocol fee |
| When a community coin is trading > \$100k mc | 0.25% protocol fee |
| When a creator coin is trading > \$100k mc | 0.5% protocol fee |
### Creator fees
| Action | Fee |
| :--------------------------------- | :--- |
| Creator fee for a "community" coin | 0.1% |
| Creator fee for a "creator" coin | 1% |
### Transfer fees
There is a 1.5% transfer fee on \$LIGHT. This will be disabled at the end of epoch 838 (Sunday, August 24th).
Currently, when you swap \$LIGHT on Heaven's pools, this transfer fee does not apply, Heaven reverts the fee in the same transaction and sends the tokens back to you, and takes the fee from the SOL side of the transaction.
All fees collected are re-invested back into [the god flywheel](https://docs.heaven.xyz/god).
### Additional links
To learn more about how coins are categorized as "creator", or "community", head [here](/permissioned).
Heaven doesn't have any LP fees for primary pool providers. Find out why here.
# Flywheel
Source: https://docs.heaven.xyz/flywheel
Every ["creator" token](/permissioned) on Heaven gets its own flywheel address. If a creator enables the flywheel, everything sent to that address will be aped into their token and burned programmatically. If their native token is sent, it will be burnt directly.
It's time to move on from governance and token gating "utilities", and step into the era of revenue.
Heaven will forge a new path forward for builders, displaying data for each project that has enabled their flywheel directly on Heaven's screener, with an accessible endpoint for other screeners and terminals to pull continuous buyback data from tokens.
We will lead the charge by using the [flywheel mechanism ourselves](/god) with Heaven's native token [\$LIGHT](/light).
This is just the beginning of the flywheel machine, and the builder API for *real* internet capital markets.
# The god flywheel
Source: https://docs.heaven.xyz/god
It's not enough just to build the flywheel machine. We need to put it to use.
**100% of the revenue earned by Heaven as a protocol will go towards buying back \$LIGHT from day 1 onwards**.
The protocol earns trading fees from all swaps on the platform (see our fees [here](/fees)). 100% of the fees collected by Heaven will buy and burn [\$LIGHT](/light) programmatically in realtime, forever.
Heaven as a project will earn money the same way we propose other projects earn money on our platform, through \$LIGHT's trading fees and our tokens vesting. Directly leveraging Heaven's creator mechanisms, and aligning us fully with the success of \$LIGHT.
**Why are we doing this?** Because the ethos you hold as you create a launchpad attracts devs who hold a similar ethos. It is very hard to shake that bond once it has been made.
Pump's founding ethos was: "*the most fun place on the internet*".
Believe's founding ethos was: "*launch a memecoin for your business*".
***Heaven's founding ethos is: "great ideas live here".***
**A flywheel is not an afterthought. It's the entire reason that Heaven exists**. It's everything that we believe in. That is why there is a felt difference in how Heaven *feels* as a project vs. everything else in the market.
All our protocol revenue goes back into [\$LIGHT](https://x.com/search?q=%24LIGHT\&src=cashtag_click), forever.
**Because if we're not creating the god flywheel for our native token then what kind of an example do we set as a launchpad?**
# Brand guidelines
Source: https://docs.heaven.xyz/guidelines
An outline that explains how to use Heaven's logo, colors, typography, and illustrations.






















# Genesis
Source: https://docs.heaven.xyz/ico
All of the details for the $LIGHT ICO.
The Genesis Initial Coin Offering is how \$LIGHT enters into the world. An ICO that gives everyone an equal opportunity to purchase \$LIGHT. It also marks the opening of Heaven as a platform.
### Terms
* Sale starts at a \$0 mc
* Opening market cap = the total \$ amount contributed to the sale
* \$1 contributed = \$1 worth of \$LIGHT at market open
* Sale lasts for a maximum of 48h
* **Sale can be closed at any time within these 48h by the team**
* Partial refunds for **all contributors** may be issued after the sale in USDC-SOL, to reduce the total amount raised / opening mc.
* Partial refunds to **select contributors** who purchased large amounts of supply may be issued to reduce their holdings and create better distribution for the launch.
### Timing
* Genesis ICO begins on Wednesday, August 6th at 15:00 UTC ([genesis.heaven.xyz](https://genesis.heaven.xyz)).
* Ends on Friday, August 8th at 15:00 UTC **OR** whenever the team chooses to end the sale.
* \$LIGHT will begin trading on Monday, August 11th, 2025 .
* Heaven as a launchpad opens 72h hours after \$LIGHT begins trading.
### How to participate
There is no “connect wallet” or hot wallet signing necessary to participate in the Genesis ICO.\
\
At the beginning of the sale, you enter your receiving SOL wallet address. This is the wallet address that will receive your \$LIGHT tokens (and any proportionate refunds) to.\
\
Then, you receive a dedicated address to send SOL/USDC/USDT to. This wallet address is linked to your receiving wallet. Any funds sent to this receiving address will mark your contribution to the the ICO.
### Tokenomics and vesting
For more information on \$LIGHT, please head [here](/light).
### Why launch like this? Who is the marginal buyer?
An uncapped ICO **that we are able to end at any time** is the best possible route to allow the market to find a fair opening price for \$LIGHT and ensure even distribution amongst sale participants.\
\
There are a number of dynamics within the sale to incentivize marginal buy pressure on market open:
1. **We can end the sale at any time**. The sale can last anywhere from 10 minutes to 72h. Many people who are waiting to see where the price is headed before buying will be sidelined by the sale closing early, and forced to buy on market open.
2. **We can issue proportionate refunds in SOL**. The team holds the right to partially refund everyone proportionately to bring the total amount raised (and opening mc) down. This incentivizes buy pressure from existing sale participants on market open.
3. **“It’s just another launchpad”**. Heaven is far from a consensus trade or platform, and many people will initially fade \$LIGHT for that reason. Once the platform has launched and is generating revenue, those who initially faded will be sidelined and circle back.
# Intro
Source: https://docs.heaven.xyz/intro
Meet Heaven
The final launchpad & AMM on Solana.
# What is $LIGHT?
Source: https://docs.heaven.xyz/light
A deep dive into everything regarding Heaven's native token, $LIGHT.
\$LIGHT is Heaven’s native token. It is the first token to launch on Heaven, and will be deployed through Heaven’s [Genesis ICO](/ico).\
\
\$LIGHT is an invitation to take back our industry. 100% of Heaven’s revenue programmatically repurchases \$LIGHT in realtime from the open market and burns it. We call this [the god flywheel](/god).
### Token Properties
| Ticker | **LIGHT** |
| ----------- | ----------------- |
| Address | **N/A** |
| Supply Cap | **1,000,000,000** |
| Mintable | **No** |
| Deployed on | **Heaven** |
### Token Distribution
**Genesis ICO (50%)**: For the public during [Heaven's genesis](https://genesis.heaven.xyz).\
**Team (20%)**: For Heaven's founders and team members.\
**Community (10%)**: For Heaven's incubator program & community incentives.\
**Investors (5%)**: For investors & advisors.\
**Liquidity (5%)**: For seeding Heaven's initial DEX liquidity as well as future CEX liquidity.\
**Foundation (10%)**: For supporting the ongoing operation of the Heaven Labs Foundation (salaries, audits, listings, etc). **Foundation spending will be disclosed on a quarterly basis.**
### Vesting Schedule - Original
The original \$LIGHT vesting schedule is shown below. This remains the way that all vests are technically setup on Streamflow today.
### Vesting Schedule - Modified
The modified vesting schedule pledges the team's vested tokens each to a cliff vesting structure. On the first of each month, a new subsequent vest will be created by the team to adhere to this structure, outlined below:
**Genesis ICO (50%)** - Fully vested upfront \
**Team (20%)** - One year lock, followed by a one year linear vest. On the first of each month the team will re-vest tokens to adhere to this structure ([august](https://app.streamflow.finance/token-dashboard/solana/mainnet/LiGHtkg3uTa9836RaNkKLLriqTNRcMdRAhqjGWNv777/contract/5psoHAt1iuaoaxzvJE1CgCD2N5w9a6wZZzbEAUFzEKBH)).\
**Community (10%)** - Two year linear vest ([vesting](https://app.streamflow.finance/contract/solana/mainnet/6NDwo1qiTJNNYtQ3vc6xNZHhgP7U6Kis6bM8VpcEgFDx)).\
**Investors (5%)** - Two year linear vest ([2.5% colosseum vest](https://app.streamflow.finance/contract/solana/mainnet/HFWcUmT5L96ksTWKoNPtwutjqfhUzJTpfY7J64sCCKa3), [1.7% vested to strategic pool 1](https://app.streamflow.finance/contract/solana/mainnet/J5MGRQnsYZGgU9m6Noa285p6VmCqBypCmVw58Xbt6ZX7), [0.3% to be distributed manually by the team](https://app.streamflow.finance/contract/solana/mainnet/9VdJcu4sYQjDpqi9gqQJGz8mNeoTUXPo16KehWrfUw2c), [0.1% vested to strategic pool 2](https://app.streamflow.finance/contract/solana/mainnet/7Cjmmv8RUbGBBDhgyAEFNTMiusnCk9GiMwRCCtx1SKt8)).\
**Liquidity (5%)** - 2.5% unlocked upfront. 2.5% locked until required for CEX listings ([vesting](https://app.streamflow.finance/contract/solana/mainnet/AFzMefWhEpPtVNkictcp3CKJszft4wxCSn4AS8KNWfGP)).\
**Foundation (10%)** - Two year linear vest ([vesting](https://app.streamflow.finance/contract/solana/mainnet/7kCivVZVMF1v4PXRUgi4mrDk9TMWAGH3yjddW95qSGqH)).
## Supply Query API
Given that \$LIGHT is deflationary due to the [god flywheel](https://docs.heaven.xyz/god), and there are multiple different tranches of supply vesting, Heaven has built an endpoint that outputs the total supply, circulating supply, and locked supply for \$LIGHT.
That endpoint can be viewed [here](https://supply.api.heaven.xyz/supply?mint=LiGHtkg3uTa9836RaNkKLLriqTNRcMdRAhqjGWNv777).
## Access
Below are some quick access points for this section:
The 100% buyback flywheel that powers \$LIGHT.
The Initial Coin Offering to launch \$LIGHT into the world.
# Permissioned fees
Source: https://docs.heaven.xyz/permissioned
This section is solely speaking about deployer fees, not protocol fees. If you want learn more about Heaven's full fee structure, [head here](/fees).
A creator fee is a necessary component for legitimate ideas to get off the ground and get funding without having to sell supply.
But it doesn't make sense for the original creator to earn fees on a community takeover. It also doesn't make sense to have scams or larp launches earning creator fees.
This is where our permissioned fee structure comes in.
> *"Permissionless launches, permissioned fees" - Ghandi*
*Here's how it works:*
Each launch on heaven that passes \$100k in volume is reviewed and grouped into three distinct categories by our admins:
It's important to note that anyone can launch instantly on Heaven without restrictions, and the token will continue to trade throughout the following review process.
* **"Creator"** - There is an actual builder, team, or artist behind the coin. A 1% trading fee goes to the creator in SOL.
* **"Community / meme"** - A meme that was spawned organically (ex: a tiktok trend), there is no creator or team behind it. A 0.1% trading fee goes to the creator in SOL.
* **"Blocked"** - A larp or scam token designed to purely extract value from the ecosystem. 100% of the collected creator fees go towards [\$LIGHT buybacks](/god).
### Self-categorization
When someone is launching on Heaven, the deployer chooses whether to categorize their token as "Creator" or "Community".
**If they categorize their launch as "Creator", then the above review process begins and the coin receives an "In review" tag**. If this is the case, the 1% creator fee is held back for the creator by Heaven's contract, but they are not able to access it. **After the review is complete, the launch is grouped into one of the three categories**:
* **If the launch is categorized as "Creator"**: the 1% in [fees collected](/fees) are released and the creator can claim fees ongoing, or even route a portion of them back towards the flywheel address.
* **If the launch is categorized as "Community"**: 90% of the initial fees that were collected are go back into the [god flywheel](https://docs.heaven.xyz/god), repurchasing and burning the token. The remaining 10% of fees ([a 0.1% tax](/fees)) is then claimable by the deployer of the coin, and that 0.1% fee is then made available to claim ongoing.
**If they categorize their launch as "Community", then they skip this review process entirely**. This is useful for tools like RapidLaunch to have their launches auto-categorized as memes before deploying, ensuring that excess fees are not collected for attention coins right away.
### "Creator " ≠ high quality
**Being categorized as a "creator" is not a safety check or stamp of approval from Heaven**. It simply means that we have seen proof on the project's X or website that shows that has been deployed by the actual team, artist, or builder that it's claiming to be deployed by. After that, the fees are released.
### Fee routing
As a bonus, if someone launches a coin for an artist's work that goes viral (like the trencher and [@grizzle\_art](https://x.com/grizzle_art)), a permissioned fee structure allows us to route the creator tax to the actual artist's wallet. That means that with a 1% creator tax (in a vacuum with the same amount of volume), Grizz would've earned over \$790k from her TRENCHER artpiece. Instead she earned nothing while the fnf's ate off of her art.
I think Heaven's permissioned fee structure will empower many artists this way, and it's something we're really looking forward to enabling.
### Summary
To sum up, this categorization system means that anyone can launch on Heaven, but devs need to show that they are the creator, team, or artist behind the project to get access to the project's primary creator fees, otherwise the project is deemed a "community" coin.
This helps us to block fees for illegitimate devs, and protect creators. It also ensures that memes are able to live on Heaven with the same fee structure as other launchpads.
# Permissionless launches
Source: https://docs.heaven.xyz/permissionless
Every token launch on Heaven is free and takes under five seconds. We do not monitor or restrict launches. The more new deploys there are, the less room there is for AFK snipes to be profitable.
# Pro Pools
Source: https://docs.heaven.xyz/pro-pools
Standard launches on Heaven are designed for new token creation — every token uses the same parameters, the same virtual SOL seeding, and the same fee structure. This works well for 99% of launches.
**Pro Pools are for the other 1%.**
Pro Pools let you bring any existing SPL token onto Heaven's AMM with full control over liquidity, fees, and pool behavior. They're designed for established projects, protocol treasuries, artists, and anyone who needs more than a one-size-fits-all launch.
## How it works
Instead of creating a new token, you bring an existing mint address and seed the pool with your own liquidity:
1. **Create the pool** — specify your token mint, initial token amount, initial SOL amount, and optional fee/feature configuration
2. **Trade immediately** — the pool is live on Heaven's AMM as soon as the transaction confirms
3. **Manage ongoing** — toggle features, adjust fees, deposit/withdraw liquidity, and claim earnings
The creator wallet that deploys the pool retains full admin privileges over it.
## Custom initial liquidity
Unlike standard pools that use virtual SOL seeding, Pro Pools let you define exactly how much of your token and how much SOL to deposit. This sets the initial price and depth of the pool.
For example, depositing 1,000,000 tokens and 10 SOL creates a pool where 1 token costs 0.00001 SOL.
The creator receives LP tokens representing their share of the pool, which can be used to withdraw liquidity later.
## Fee configuration
Each trade on a Pro Pool generates fees across multiple categories:
| Fee type | Configurable by creator? | Description |
| :-------------------------- | :----------------------- | :--------------------------------------------------------- |
| **Creator trading fee** | Yes | Claimable by the pool creator (or designated fee receiver) |
| **LP provider trading fee** | Yes | Distributed proportionally to liquidity providers |
| **Reflection trading fee** | Yes | Automatically distributed to token holders |
| **Protocol trading fee** | No | Collected by Heaven's protocol. Set by protocol config. |
All configurable fee types support market cap based brackets. If omitted at pool creation, protocol config defaults are used. Creators can update fee brackets after pool creation using the set fee endpoints.
### Market cap based fees
Define up to 4 fee brackets with different buy/sell rates at different market cap thresholds. Fees are specified in basis points (1 bps = 0.01%).
| Market cap | Buy fee | Sell fee |
| :----------- | :------------ | :------------ |
| Below \$100k | 200 bps (2%) | 200 bps (2%) |
| Below \$1M | 100 bps (1%) | 100 bps (1%) |
| Above \$1M | 50 bps (0.5%) | 50 bps (0.5%) |
This lets you charge higher fees while the pool is small and reduce them as the token grows. If omitted at pool creation, the protocol config defaults are used.
### Slot-offset based creator fee
Optionally define up to 42 fee brackets based on how many Solana slots have passed since pool creation (\~400ms per slot). This is primarily useful for **sniper resistance** — charging high fees in the first few seconds after launch.
| Slot offset | Buy fee | Sell fee |
| :---------------- | :------------- | :------------- |
| 0-5 slots (\~2s) | 5000 bps (50%) | 5000 bps (50%) |
| 5-15 slots (\~6s) | 1000 bps (10%) | 1000 bps (10%) |
| 15+ slots | Normal fees | Normal fees |
When slot-based creator fees are active, they take precedence over market cap based creator fees. If not provided at pool creation, the protocol config default slot fees are used.
## Feature toggles
Pro Pool creators can enable or disable pool features at any time:
| Feature | Default | Description |
| :---------------------- | :------- | :------------------------------------------ |
| **Swap** | Enabled | Allow users to buy and sell tokens |
| **Deposit** | Enabled | Allow users to deposit liquidity |
| **Withdraw** | Enabled | Allow users to withdraw liquidity |
| **Update creator fee** | Enabled | Allow the creator to change fee brackets |
| **Same-slot trading** | Disabled | Allow buy + sell in the same Solana slot |
| **Sandwich resistance** | Disabled | Protect trades against MEV sandwich attacks |
These toggles give creators precise control over pool behavior. For example, you could disable withdrawals during a launch event, or disable same-slot trading to prevent wash trading.
## LP positions
Each user's liquidity in a Pro Pool is tracked via an on-chain **LP position** account (a PDA derived from the pool and user addresses). LP tokens represent a proportional share of the pool's reserves.
LP holders can:
* **Deposit** — deposit more tokens and SOL to increase their position
* **Withdraw** — burn LP tokens to withdraw tokens and SOL
* **Transfer LP tokens** — send LP tokens to another wallet
* **Claim LP fees** — withdraw accumulated trading fees
## Creator fee receiver
By default, the pool creator receives all creator trading fees. The fee receiver can be transferred to a different wallet — for example, routing fees to an artist's wallet, a DAO treasury, or a buyback address.
Transferring the fee receiver requires signatures from both the current receiver and the new one.
## Standard pools vs Pro Pools
| | Standard pool | Pro Pool |
| :------------------ | :------------------------- | :---------------------------------------------------------------------- |
| Token creation | New Token-2022 mint | Bring any existing SPL token |
| Initial liquidity | Virtual SOL seeding (free) | Custom token + SOL amounts |
| Fee structure | Fixed by protocol config | Creator, reflection, and LP fees configurable; protocol fee from config |
| Feature toggles | No | Yes (swap, deposit, withdraw, etc.) |
| LP management | No | Deposit/withdraw liquidity, transfer LP |
| Creator fee control | Limited | Full (set fees, change receiver) |
| Sniper resistance | 6 second linear decay | Configurable slot-offset fees |
## Getting started
To create a Pro Pool via the API:
1. Call [`/tx/pro/create`](/api-reference/pro-pool-api/create-pro-pool) with your token mint and initial liquidity
2. Sign and submit the returned transaction
3. Use the returned `pool` address for all future interactions
See the [Pro Pool API reference](/api-reference/pro-pool-api) for the full list of endpoints.
# Highly profitable
Source: https://docs.heaven.xyz/profit
## Full stack
Heaven is not just a launchpad, it is also a closed-loop AMM. This means that [the god flywheel](https://docs.heaven.xyz/god) earns typical launchpad fees, *and* typical AMM fees. "Wrapper" launchpads that are built on top of existing AMM's need to charge fees on top of what the AMM is charging. Instead, by [owning every aspect of the stack](https://docs.heaven.xyz/together), **Heaven earns 5-10x more revenue per dollar of volume** when compared with other "wrapper" launchpads, **without passing on any of the additional fees to users**.
## No LP fees
There are no LP fees on Heaven's pools. Instead, Heaven's pools naturally have a thicker initial LP to market cap ratio than pools on Bonk or Pump. Instead of relying on volume to thicken a pool as it's traded, that pool is algorithmically thicker on Heaven. Why do this, and what does it mean for protocol profitability?
### Why do this?
LP fees were initially implemented on Curve and Uniswap, where there was a vision for global collective liquidity to be bootstrapped and provided by token holders. In todays age, LP typically comes from a singular source for new token deploys, yet the LP fee has remained enshrined in existing AMM systems as a relic of the past.
When you deploy on Heaven, a significant amount of LP is then seeded and burned upon token creation with a relatively thick LP to market cap ratio. In this case there is no need for additional LPs. The token has plenty of LP to work with in the first place.
Many people have been trained to immediately equate "thicker LP" with "LP fees", but the two of these are mutually exclusive. By [algorithmically setting the "initial LP" in a pool](https://docs.heaven.xyz/curve), Heaven is able to dictate the thickness of that pool algorithmically. It removes the guesswork, and ensures that there is adequate LP throughout the token's lifespan.
### How does this impact Heaven as a protocol?
Because Heaven isn't paying any additional LP fees, and instead opting to have an [algorithmically thicker pool](https://docs.heaven.xyz.curve), this allows the standard 0.2% LP fee charged by AMMs today to instead be taken and [reinvested back into \$LIGHT's god flywheel](https://docs.heaven.xyz/god).
The impacts of this cannot be understated.
After graduation, Pump earns 0.05% of every trade on PumpSwap, while Heaven earns 0.25%. This is means that Heaven is 5x more profitable than Pump on "graduated" pairs, with no additional net fees being passed to the end user while retaining a thick LP to market cap ratio algorithmically, rather than by volume.
This scaled even more aggressively when compared with Bonk.
An additional benefit of this fee structure is that it aligns Heaven's incentives for tokens launched on Heaven to be successful. Heaven doesn't *need* there to be a ton of new pairs to be profitable.
## Additional revenue streams
### Creator tokens
Due to Heaven's permissioned fee structure, creator tokens have a 0.5% protocol fee rather than a 0.25% fee. Heaven provides far more support and functionality for Creator tokens and this is reflected here. This means 2x more money flowing back towards [the god flywheel](https://docs.heaven.xyz/god).
### A 1% fee when a token is less than \$100k
Heaven's 1% "pre-bond" fee kicks in whenever a pair is trading under a \$100k marketcap, not just before the pair "bonds". Traders are more willing to pay within this range due to high volatility, so this shouldn't be a single binary fee switch that turns off.
By implementing tiered fees, tokens that are ranging at lower levels after graduating, are generating more money for Heaven's flywheel.
## To sum
Heaven earns a significant amount more money than traditional AMM's and launchpads on the market today, without passing on any additional net fees to the end user, while [algorithmically ensuring that LP is healthy](https://docs.heaven.xyz/curve) on all Heaven pairs.
All of this additional margin goes back towards [the god flywheel](https://docs.heaven.xyz/god).
# Accounts
Source: https://docs.heaven.xyz/sdk/contract/accounts
For advanced users, you may need to interact with the Heaven program directly.
## Protocol Configuration
### Version 1: Community Token Configurations
* Protocol Fee - 1% for under 100K MC and 0.25% for over or equal to 100K MC
* Creator Fee - 0.1% for any MC
* Every pool is seeded with 1 Billion tokens and virtual 35 SOL
* USD volume threshold for creator fee claim - \$0
* Migration Market Cap Threshold - 100K
### Version 2: Creator Token Configurations
* Protocol Fee - 1% for under 100K MC and 0.5% for over or equal to 100K MC
* Creator Fee - 1% for any MC
* Every pool is seeded with 1 Billion tokens and virtual 35 SOL
* USD volume threshold for creator fee verification/claim - 100K
* Migration Market Cap Threshold - 100K
### Version 3: Pro Pool Configurations
* Protocol Fee - 0.3% for any MC
* Creator Fee - 0% by default, configurable by pool creator (market cap based brackets)
* LP Fee - 0% by default, configurable by pool creator (market cap based brackets)
* Reflection Fee - 0% by default, configurable by pool creator (market cap based brackets)
* Creator Slot Fee - optionally configurable for sniper resistance (slot-offset based brackets)
* Initial liquidity - custom token and SOL amounts set by creator
* Feature toggles - swap, deposit, withdraw, same-slot trading, sandwich resistance
* No migration threshold (pro pools do not migrate)
## Pool State
You can decode the pool state using the IDL or the SDK. The pool state contains all the information about the pool, including the tokens, reserves, fees, and other parameters.
```rust state.rs icon="rust" wrap expandable theme={null}
pub struct LiquidityPoolState {
pub info: LiquidityPoolInfo,
pub market_cap_based_fees: LiquidityPoolMarketCapBasedFees,
pub reserve: LiquidityPoolReserve,
pub lp_token: LiquidityPoolLpTokenInfo,
pub protocol_trading_fees: u64,
pub creator_trading_fees: u64,
pub creator_trading_fees_claimed_by_creator: u64,
pub creator_trading_fees_claimed_by_others: u64,
pub liquidity_provider_trading_fees: u64,
pub creator_trading_fee_protocol_fees: u64,
pub reflection_trading_fees: u64,
pub created_at_slot: u64,
pub trading_volume_usd: f64,
pub creator_trading_fee_trading_volume_threshold: f64,
pub creator_trading_fee_trading_volume_threshold_reached_unix_timestamp: u64,
pub token_a_vault: Pubkey,
pub token_b_vault: Pubkey,
pub protocol_config: Pubkey,
pub key: Pubkey,
pub token_a: LiquidityPoolTokenInfo,
pub token_b: LiquidityPoolTokenInfo,
pub permissions: LiquidityPoolPermissions,
pub feature_flags: LiquidityPoolFeatureFlags,
pub taxable_side: u8,
pub taxable_side_type: u8,
pub creator_trading_fee_distribution: u8,
pub creator_trading_fee_claim_status: u8,
pub fee_configuration_mode: u8,
pub is_migrated: u8,
_pad: [u8; 13],
pub slot_offset_based_fees: LiquidityPoolSlotOffsetBasedFees,
pub creator_trading_fee_receiver: Pubkey,
}
```
### Key Information
* **Fees**
* `protocol_trading_fees`: Total **Protocol Fee** collected.
* `creator_trading_fees`: Total **Creator Fee** collected.
* `creator_trading_fees_claimed_by_creator`: Total **Creator Fee** claimed by the creator.
* `creator_trading_fees_claimed_by_others`: Total **Creator Fee** claimed by others.
* `liquidity_provider_trading_fees`: Total liquidity provider trading fees collected.
* `creator_trading_fee_protocol_fees`: Total **Creator-Protocol Fee** collected.
* `reflection_trading_fees`: Total **Reflection Fee** collected.
* **Creator Fee Claim Status**
* `creator_trading_fee_claim_status`: Indicates if the creator fee verification is pending or completed.
* `0`: Unclaimed - The default state when the pool is created.
* `1`: Submitted - The creator has submitted an application for verification.
* `2`: Processed - The application has been processed.
* **Trading Volume**
* `trading_volume_usd`: The current trading volume (buy/sell) in USD.
* `creator_trading_fee_trading_volume_threshold`: The threshold for **Creator Fee** claim.
* `creator_trading_fee_trading_volume_threshold_reached_unix_timestamp`: Timestamp when the threshold was reached.
* **Creator Fee Distribution**
* `creator_trading_fee_distribution`: Indicates how the **Creator Fee** is to be distributed.
* `0`: Community - By default, the fee is distributed to the community as additional reflections.
* `1`: Creator - A creator can submit verification to claim the fee. Once approved, `creator_trading_fee_distribution` is set to `1`.
* `2`: Blocked - Cannot be claimed by creator.
* `3`: Shared - The fee is split between the creator and the flywheel.
* **Migration**
* You can use the `is_migrated` field to check if the pool has surpassed the market cap threshold (e.g. \$100k)
* `0`: Not migrated
* `1`: Migrated
## User LP Position (Pro Pools)
Pro pools track each user's liquidity via an on-chain LP position account. The PDA is derived from `[USER_LP_POSITION, pool, user]`.
```rust state.rs icon="rust" wrap theme={null}
pub struct UserLpPosition {
pub pool: Pubkey,
pub user: Pubkey,
pub lp_token_balance: u64,
pub reward_debt: u64,
pub pending_fees: u64,
pub bump: u8,
}
```
### Key Information
* **`lp_token_balance`**: The user's current LP token balance in this pool. Represents their proportional share of the pool's reserves.
* **`reward_debt`**: Internal accounting value used for fee distribution calculations. Updated when depositing, withdrawing, or claiming fees.
* **`pending_fees`**: Accumulated trading fees claimable by this LP position.
* **`pool`** / **`user`**: The pool and user public keys that this position belongs to.
* **`bump`**: The PDA bump seed.
You can query a user's LP position via the [`/data/lp-balance`](/api-reference/data-api/get-lp-balance) endpoint, or deserialize the account directly using the IDL.
***
# Addresses
Source: https://docs.heaven.xyz/sdk/contract/addresses
Addresses of the Heaven AMM on Solana
### Mainnet
| Description | Address |
| -------------------------------------------------- | -------------------------------------------- |
| Heaven AMM | HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o |
| Chainlink SOL/USD Feed | CH31Xns5z3M1cTAbKW34jcxPPciazARpijcHj9rxtemt |
| Chainlink Program | HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny |
| Protocol Configuration Version 1 (Community Token) | 42mepa9xLCtuerAEnnDY43KLRN5dgkrkKvoCT6nDZsyj |
| Protocol Configuration Version 2 (Creator Token) | KpXrCt3pjJYFind2kgk7nQ3dS6bqjC2Ze3zzE5MQ78v |
| Protocol Configuration Version 3 (Pro Pool) | HtYH4a2q1PXPErgNxVPTmoTKbE2Y7cpSQVDAEbQqgKCm |
# IDL
Source: https://docs.heaven.xyz/sdk/contract/idl
For advanced users, you may want to use the IDL to interact with the Heaven program directly.
```json heaven.json icon="brackets-curly" lines wrap expandable theme={null}
{
"address": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"metadata": {
"name": "Heaven DEX",
"version": "2.0.0",
"spec": "0.1.0",
"description": "Created with Anchor"
},
"instructions": [
{
"name": "add_liquidity_pro_pool",
"discriminator": [
125,
59,
108,
42,
18,
28,
34,
7
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"signer": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "token_a_mint"
},
{
"name": "token_b_mint"
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "user_lp_position",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
117,
115,
101,
114,
95,
108,
112,
95,
112,
111,
115,
105,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "liquidity_pool_state"
},
{
"kind": "account",
"path": "user"
}
]
}
}
],
"args": [
{
"name": "params",
"type": {
"defined": {
"name": "AddLiquidityParams"
}
}
}
]
},
{
"name": "admin_borrow_sol",
"discriminator": [
204,
72,
95,
215,
172,
192,
137,
252
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
116,
101,
109,
112,
95,
115,
111,
108,
95,
104,
111,
108,
100,
101,
114
]
},
{
"kind": "arg",
"path": "version"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_claim_msol",
"discriminator": [
124,
48,
60,
199,
203,
49,
36,
41
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "msol_ticket",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
109,
115,
111,
108,
95,
116,
105,
99,
107,
101,
116,
95,
97,
99,
99
]
},
{
"kind": "account",
"path": "protocol_config_state"
},
{
"kind": "arg",
"path": "ticket_number"
}
]
}
},
{
"name": "msol_mint",
"address": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
},
{
"name": "msol_ticket_sol_spent",
"docs": [
"CHECK"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
109,
115,
111,
108,
95,
116,
105,
99,
107,
101,
116,
95,
97,
99,
99,
95,
115,
111,
108,
95,
115,
112,
101,
110,
116
]
},
{
"kind": "account",
"path": "protocol_config_state"
},
{
"kind": "arg",
"path": "ticket_number"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "ticket_number",
"type": "u32"
}
]
},
{
"name": "admin_claim_pro_creator_trading_fees",
"discriminator": [
68,
130,
250,
72,
60,
94,
31,
22
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_claim_staking_rewards",
"discriminator": [
24,
163,
220,
171,
225,
222,
166,
248
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "protocol_config_wsol_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "protocol_config_state"
},
{
"kind": "const",
"value": [
6,
221,
246,
225,
215,
101,
161,
147,
217,
203,
225,
70,
206,
235,
121,
172,
28,
180,
133,
237,
95,
91,
55,
145,
58,
140,
245,
133,
126,
255,
0,
169
]
},
{
"kind": "account",
"path": "wsol_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "wsol_token_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "payer"
},
{
"kind": "account",
"path": "token_program"
},
{
"kind": "account",
"path": "wsol_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "wsol_mint"
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_claim_standard_creator_trading_fees",
"discriminator": [
182,
39,
168,
25,
96,
63,
76,
17
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_deposit_msol",
"discriminator": [
206,
189,
208,
166,
19,
81,
202,
48
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
116,
101,
109,
112,
95,
115,
111,
108,
95,
104,
111,
108,
100,
101,
114
]
},
{
"kind": "arg",
"path": "version"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_mint_msol",
"discriminator": [
140,
202,
57,
195,
97,
213,
168,
19
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
116,
101,
109,
112,
95,
115,
111,
108,
95,
104,
111,
108,
100,
101,
114
]
},
{
"kind": "arg",
"path": "version"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_repay_sol",
"discriminator": [
136,
61,
48,
232,
166,
26,
207,
46
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
116,
101,
109,
112,
95,
115,
111,
108,
95,
104,
111,
108,
100,
101,
114
]
},
{
"kind": "arg",
"path": "version"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_set_transfer_fee",
"discriminator": [
232,
193,
168,
3,
80,
92,
215,
176
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_a_mint",
"writable": true
},
{
"name": "current_owner",
"signer": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "protocol_config",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "protocol_config_version"
}
]
}
}
],
"args": [
{
"name": "protocol_config_version",
"type": "u16"
},
{
"name": "transfer_fee_bps",
"type": "u16"
},
{
"name": "maximum_fee",
"type": "u64"
}
]
},
{
"name": "admin_unstake_msol",
"discriminator": [
253,
218,
141,
252,
40,
9,
7,
154
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "msol_ticket",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
109,
115,
111,
108,
95,
116,
105,
99,
107,
101,
116,
95,
97,
99,
99
]
},
{
"kind": "account",
"path": "protocol_config_state"
},
{
"kind": "arg",
"path": "ticket_number"
}
]
}
},
{
"name": "msol_mint",
"address": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
},
{
"name": "msol_ticket_sol_spent",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
109,
115,
111,
108,
95,
116,
105,
99,
107,
101,
116,
95,
97,
99,
99,
95,
115,
111,
108,
95,
115,
112,
101,
110,
116
]
},
{
"kind": "account",
"path": "protocol_config_state"
},
{
"kind": "arg",
"path": "ticket_number"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "ticket_number",
"type": "u32"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_update_pro_liquidity_pool_state",
"discriminator": [
200,
69,
241,
64,
145,
146,
128,
112
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "update",
"type": {
"defined": {
"name": "AdminUpdateLiquidityPoolState"
}
}
}
]
},
{
"name": "admin_update_standard_liquidity_pool_state",
"discriminator": [
99,
228,
41,
63,
221,
244,
200,
199
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "update",
"type": {
"defined": {
"name": "AdminUpdateLiquidityPoolState"
}
}
}
]
},
{
"name": "admin_withdraw_msol",
"discriminator": [
249,
219,
141,
72,
210,
110,
216,
99
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
116,
101,
109,
112,
95,
115,
111,
108,
95,
104,
111,
108,
100,
101,
114
]
},
{
"kind": "arg",
"path": "version"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "admin_withdraw_transfer_fee",
"discriminator": [
117,
79,
164,
203,
126,
72,
22,
246
],
"accounts": [
{
"name": "token_program"
},
{
"name": "mint"
},
{
"name": "receiver",
"writable": true
},
{
"name": "protocol_fee_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "protocol_config_version"
}
]
}
}
],
"args": [
{
"name": "protocol_config_version",
"type": "u16"
}
]
},
{
"name": "buy",
"discriminator": [
102,
6,
61,
18,
1,
218,
235,
234
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "params",
"type": {
"defined": {
"name": "BuyParams"
}
}
}
]
},
{
"name": "claim_pro_creator_trading_fee_protocol_fees",
"discriminator": [
234,
35,
237,
15,
138,
49,
236,
153
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_pro_creator_trading_fees",
"discriminator": [
81,
123,
103,
113,
109,
150,
138,
93
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_pro_liquidity_provider_trading_fees",
"discriminator": [
242,
116,
228,
52,
32,
116,
172,
148
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"signer": true
},
{
"name": "token_a_mint"
},
{
"name": "token_b_mint"
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "user_lp_position",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
117,
115,
101,
114,
95,
108,
112,
95,
112,
111,
115,
105,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "liquidity_pool_state"
},
{
"kind": "account",
"path": "user"
}
]
}
}
],
"args": []
},
{
"name": "claim_pro_protocol_trading_fees",
"discriminator": [
221,
192,
101,
189,
255,
79,
194,
57
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_pro_reflection_trading_fees",
"discriminator": [
234,
144,
48,
252,
111,
6,
80,
58
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_standard_creator_trading_fee_protocol_fees",
"discriminator": [
0,
201,
226,
228,
127,
45,
69,
110
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_standard_creator_trading_fees",
"discriminator": [
165,
89,
221,
52,
170,
249,
34,
111
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_standard_protocol_trading_fees",
"discriminator": [
84,
206,
140,
245,
63,
212,
64,
237
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "claim_standard_reflection_trading_fees",
"discriminator": [
70,
148,
37,
147,
102,
20,
30,
23
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "protocol_admin",
"signer": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "close_protocol_lookup_table",
"discriminator": [
79,
72,
48,
39,
119,
3,
42,
116
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "lookup_table",
"writable": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "current_owner",
"signer": true
}
],
"args": [
{
"name": "version",
"type": "u64"
}
]
},
{
"name": "create_or_update_protocol_fee_admin",
"discriminator": [
21,
126,
176,
20,
85,
111,
53,
31
],
"accounts": [
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "current_owner",
"signer": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "new_admin",
"signer": true
},
{
"name": "protocol_fee_admin_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": []
},
{
"name": "create_or_update_protocol_owner",
"discriminator": [
170,
124,
128,
40,
48,
105,
139,
148
],
"accounts": [
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "current_owner",
"signer": true
},
{
"name": "new_owner",
"signer": true
},
{
"name": "protocol_owner_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": []
},
{
"name": "create_or_update_protocol_staking_admin",
"discriminator": [
4,
172,
196,
213,
120,
50,
30,
137
],
"accounts": [
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "current_owner",
"signer": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "new_admin",
"signer": true
},
{
"name": "protocol_staking_admin_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": []
},
{
"name": "create_pro_liquidity_pool",
"discriminator": [
209,
97,
85,
191,
187,
29,
196,
85
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "user",
"signer": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "token_a_mint"
},
{
"name": "token_b_mint",
"address": "So11111111111111111111111111111111111111112"
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "protocol_config"
},
{
"kind": "account",
"path": "token_a_program"
},
{
"kind": "account",
"path": "token_a_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "token_b_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "protocol_config"
},
{
"kind": "account",
"path": "token_program"
},
{
"kind": "account",
"path": "token_b_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "liquidity_pool_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
108,
105,
113,
117,
105,
100,
105,
116,
121,
95,
112,
111,
111,
108,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "account",
"path": "user"
},
{
"kind": "account",
"path": "token_a_mint"
},
{
"kind": "account",
"path": "token_b_mint"
}
]
}
},
{
"name": "protocol_config",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "protocol_config_version"
}
]
}
},
{
"name": "token_a_program"
},
{
"name": "user_lp_position",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
117,
115,
101,
114,
95,
108,
112,
95,
112,
111,
115,
105,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "liquidity_pool_state"
},
{
"kind": "account",
"path": "user"
}
]
}
}
],
"args": [
{
"name": "protocol_config_version",
"type": "u16"
},
{
"name": "params",
"type": {
"defined": {
"name": "CreateProLiquidityPoolParams"
}
}
}
]
},
{
"name": "create_protocol_config",
"discriminator": [
115,
114,
24,
111,
14,
53,
113,
254
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "owner",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "msol_token_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "protocol_config_state"
},
{
"kind": "account",
"path": "token_program"
},
{
"kind": "account",
"path": "msol_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "msol_mint",
"docs": [
"CHECK"
],
"address": "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "params",
"type": {
"defined": {
"name": "ProtocolConfigParams"
}
}
}
]
},
{
"name": "create_protocol_lookup_table",
"discriminator": [
249,
3,
99,
153,
168,
241,
243,
228
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "lookup_table",
"writable": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "current_owner",
"signer": true
}
],
"args": [
{
"name": "version",
"type": "u64"
}
]
},
{
"name": "create_standard_liquidity_pool",
"discriminator": [
42,
43,
126,
56,
231,
10,
208,
53
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "user",
"signer": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "token_a_mint"
},
{
"name": "token_b_mint",
"address": "So11111111111111111111111111111111111111112"
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "protocol_config"
},
{
"kind": "account",
"path": "token_a_program"
},
{
"kind": "account",
"path": "token_a_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "token_b_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "protocol_config"
},
{
"kind": "account",
"path": "token_program"
},
{
"kind": "account",
"path": "token_b_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "liquidity_pool_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
108,
105,
113,
117,
105,
100,
105,
116,
121,
95,
112,
111,
111,
108,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "account",
"path": "token_a_mint"
},
{
"kind": "account",
"path": "token_b_mint"
}
]
}
},
{
"name": "protocol_config",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "protocol_config_version"
}
]
}
},
{
"name": "token_a_program"
}
],
"args": [
{
"name": "protocol_config_version",
"type": "u16"
},
{
"name": "params",
"type": {
"defined": {
"name": "CreateStandardLiquidityPoolParams"
}
}
}
]
},
{
"name": "creator_set_pro_market_cap_creator_fee",
"discriminator": [
117,
206,
56,
2,
28,
37,
236,
235
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "fees",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
}
]
},
{
"name": "creator_set_pro_market_cap_lp_fee",
"discriminator": [
6,
193,
34,
9,
235,
85,
255,
246
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "fees",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
}
]
},
{
"name": "creator_set_pro_market_cap_reflection_fee",
"discriminator": [
227,
173,
96,
121,
45,
226,
164,
137
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "fees",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
}
]
},
{
"name": "creator_set_pro_slot_creator_fee",
"discriminator": [
21,
70,
77,
228,
4,
225,
3,
83
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "fees",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
}
]
},
{
"name": "creator_toggle_pro_deposit",
"discriminator": [
160,
137,
128,
204,
42,
179,
102,
202
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "enabled",
"type": "bool"
}
]
},
{
"name": "creator_toggle_pro_swap",
"discriminator": [
143,
190,
5,
129,
230,
59,
28,
89
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "enabled",
"type": "bool"
}
]
},
{
"name": "creator_toggle_pro_withdraw",
"discriminator": [
32,
47,
234,
5,
77,
146,
244,
178
],
"accounts": [
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "creator",
"signer": true
}
],
"args": [
{
"name": "enabled",
"type": "bool"
}
]
},
{
"name": "deactivate_protocol_lookup_table",
"discriminator": [
218,
12,
88,
58,
150,
44,
152,
72
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "lookup_table",
"writable": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "current_owner",
"signer": true
}
],
"args": [
{
"name": "version",
"type": "u64"
}
]
},
{
"name": "extend_protocol_lookup_table",
"discriminator": [
7,
227,
198,
1,
107,
113,
31,
88
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "lookup_table",
"writable": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "current_owner",
"signer": true
}
],
"args": [
{
"name": "version",
"type": "u64"
},
{
"name": "addresses",
"type": {
"vec": "pubkey"
}
}
]
},
{
"name": "initialize_protocol_lending",
"discriminator": [
0,
205,
237,
240,
27,
79,
27,
59
],
"accounts": [
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "protocol_staking_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
115,
116,
97,
107,
105,
110,
103,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
},
{
"name": "address_lookup_program",
"docs": [
"CHECK"
],
"address": "AddressLookupTab1e1111111111111111111111111"
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
116,
101,
109,
112,
95,
115,
111,
108,
95,
104,
111,
108,
100,
101,
114
]
},
{
"kind": "arg",
"path": "version"
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "recent_slot",
"type": "u64"
}
]
},
{
"name": "pro_buy",
"discriminator": [
103,
171,
196,
238,
159,
45,
187,
246
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "params",
"type": {
"defined": {
"name": "BuyParams"
}
}
}
]
},
{
"name": "pro_sell",
"discriminator": [
140,
79,
122,
96,
22,
137,
238,
124
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "params",
"type": {
"defined": {
"name": "SellParams"
}
}
}
],
"returns": "u64"
},
{
"name": "remaining_accounts_stub",
"discriminator": [
32,
143,
83,
94,
23,
34,
59,
239
],
"accounts": [
{
"name": "create_protocol_config_remaining_accounts",
"accounts": [
{
"name": "protocol_lending_lookup_table",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "kamino_lending_user_metadata",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "kamino_lending_referrer_user_metadata",
"docs": [
"CHECK"
]
},
{
"name": "rent",
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "kamino_lending_program",
"docs": [
"CHECK"
]
},
{
"name": "kamino_lending_obligation",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "kamino_lending_main_market",
"docs": [
"CHECK"
]
},
{
"name": "kamino_reserve_msol_state",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "kamino_reserve_sol_state",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "kamino_scope_prices",
"docs": [
"CHECK"
]
},
{
"name": "msol_liquid_staking",
"accounts": [
{
"name": "marinade_liquid_staking_state",
"docs": [
"#1 - Marinade Liquid Staking State",
"CHECK"
],
"writable": true
},
{
"name": "msol_mint",
"docs": [
"#2 - mSOL Mint",
"CHECK"
],
"writable": true
},
{
"name": "marinade_sol_leg_account",
"docs": [
"#3 - Marinade SOL Leg Account",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_leg_account",
"docs": [
"#4 - Marinade mSOL Leg Account",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_leg_authority",
"docs": [
"#5 - Marinade mSOL Leg Authority",
"CHECK"
]
},
{
"name": "marinade_reserve_sol_pda",
"docs": [
"#6 - Marinade Reserve SOL PDA",
"CHECK"
],
"writable": true
},
{
"name": "transfer_from",
"docs": [
"#7 - Transfer From",
"CHECK"
],
"writable": true
},
{
"name": "mint_to",
"docs": [
"#8 - Mint To",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_mint_authority",
"docs": [
"#9 - Marinade mSOL Mint Authority",
"CHECK"
]
},
{
"name": "system_program",
"docs": [
"#10 - System Program"
],
"address": "11111111111111111111111111111111"
},
{
"name": "token_program",
"docs": [
"#11 - Token Program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "marinade_finance_program",
"docs": [
"#12 - Marinade Finance Program",
"CHECK"
]
},
{
"name": "referral_state",
"docs": [
"#13 - Referral State",
"CHECK"
],
"writable": true
},
{
"name": "msol_token_partner_account",
"docs": [
"#14 - mSOL Token Partner Account",
"CHECK"
],
"writable": true
}
]
},
{
"name": "msol_staking_program",
"docs": [
"CHECK"
]
},
{
"name": "kamino_deposit_with_farm",
"accounts": [
{
"name": "deposit_accounts_owner",
"docs": [
"#1 - Deposit Accounts Owner"
],
"writable": true
},
{
"name": "accounts",
"accounts": [
{
"name": "deposit_accounts_obligation",
"docs": [
"#2 - Deposit Accounts Obligation"
],
"writable": true
},
{
"name": "deposit_accounts_lending_market",
"docs": [
"#3 - Deposit Accounts Lending Market"
]
},
{
"name": "deposit_accounts_lending_market_authority",
"docs": [
"#4 - Deposit Accounts Lending Market Authority"
]
},
{
"name": "deposit_accounts_reserve",
"docs": [
"#5 - Deposit Accounts Reserve"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Deposit Accounts Reserve Liquidity Mint"
]
},
{
"name": "deposit_accounts_reserve_liquidity_supply",
"docs": [
"#7 - Deposit Accounts Reserve Liquidity Supply"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_collateral_mint",
"docs": [
"#8 - Deposit Accounts Reserve Collateral Mint"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_destination_deposit_collateral",
"docs": [
"#9 - Deposit Accounts Reserve Destination Deposit Collateral"
],
"writable": true
},
{
"name": "deposit_accounts_user_source_liquidity",
"docs": [
"#10 - Deposit Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "deposit_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Deposit Accounts Placeholder User Destination Collateral"
]
},
{
"name": "deposit_accounts_collateral_token_program",
"docs": [
"#12 - Deposit Accounts Collateral Token Program"
]
},
{
"name": "deposit_accounts_liquidity_token_program",
"docs": [
"#13 - Deposit Accounts Liquidity Token Program"
]
},
{
"name": "deposit_accounts_instruction_sysvar_account",
"docs": [
"#14 - Deposit Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_borrow_with_farm",
"accounts": [
{
"name": "borrow_accounts_owner",
"docs": [
"#1 - Borrow Accounts Owner"
],
"writable": true
},
{
"name": "accounts",
"accounts": [
{
"name": "borrow_accounts_obligation",
"docs": [
"#2 - Borrow Accounts Obligation"
],
"writable": true
},
{
"name": "borrow_accounts_lending_market",
"docs": [
"#3 - Borrow Accounts Lending Market"
]
},
{
"name": "borrow_accounts_lending_market_authority",
"docs": [
"#4 - Borrow Accounts Lending Market Authority"
]
},
{
"name": "borrow_accounts_borrow_reserve",
"docs": [
"#5 - Borrow Accounts Borrow Reserve"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_mint",
"docs": [
"#6 - Borrow Accounts Borrow Reserve Liquidity Mint"
]
},
{
"name": "borrow_accounts_reserve_source_liquidity",
"docs": [
"#7 - Borrow Accounts Reserve Source Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_fee_receiver",
"docs": [
"#8 - Borrow Accounts Borrow Reserve Liquidity Fee Receiver"
],
"writable": true
},
{
"name": "borrow_accounts_user_destination_liquidity",
"docs": [
"#9 - Borrow Accounts User Destination Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_referrer_token_state",
"docs": [
"#10 - Borrow Accounts Referrer Token State"
]
},
{
"name": "borrow_accounts_token_program",
"docs": [
"#11 - Borrow Accounts Token Program"
]
},
{
"name": "borrow_accounts_instruction_sysvar_account",
"docs": [
"#12 - Borrow Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#13 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#14 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#15 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_repay_with_farm",
"accounts": [
{
"name": "repay_accounts_owner",
"docs": [
"#1 - Repay Accounts Owner"
],
"writable": true
},
{
"name": "accounts",
"accounts": [
{
"name": "repay_accounts_obligation",
"docs": [
"#2 - Repay Accounts Obligation"
],
"writable": true
},
{
"name": "repay_accounts_lending_market",
"docs": [
"#3 - Repay Accounts Lending Market"
]
},
{
"name": "repay_accounts_repay_reserve",
"docs": [
"#4 - Repay Accounts Repay Reserve"
],
"writable": true
},
{
"name": "repay_accounts_reserve_liquidity_mint",
"docs": [
"#5 - Repay Accounts Reserve Liquidity Mint"
]
},
{
"name": "repay_accounts_reserve_destination_liquidity",
"docs": [
"#6 - Repay Accounts Reserve Destination Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_user_source_liquidity",
"docs": [
"#7 - Repay Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_token_program",
"docs": [
"#8 - Repay Accounts Token Program"
]
},
{
"name": "repay_accounts_instruction_sysvar_account",
"docs": [
"#9 - Repay Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#10 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#11 - Farms Accounts Reserve Farm State"
]
},
{
"name": "lending_market_authority",
"docs": [
"#12 - Lending Market Authority"
]
},
{
"name": "farms_program",
"docs": [
"#13 - Farms Program"
]
}
]
}
]
},
{
"name": "associated_token_program",
"docs": [
"CHECK"
]
},
{
"name": "temp_sol_holder",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "chainlink_program",
"docs": [
"CHECK"
]
},
{
"name": "chainlink_sol_usd_price_feed",
"docs": [
"CHECK"
]
},
{
"name": "clock",
"address": "SysvarC1ock11111111111111111111111111111111"
},
{
"name": "kamino_withdraw_with_farm",
"accounts": [
{
"name": "withdraw_accounts_owner",
"docs": [
"#1 - Withdraw Accounts Owner",
"CHECK"
]
},
{
"name": "accounts",
"accounts": [
{
"name": "withdraw_accounts_obligation",
"docs": [
"#2 - Withdraw Accounts Obligation",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_lending_market",
"docs": [
"#3 - Withdraw Accounts Lending Market",
"CHECK"
]
},
{
"name": "withdraw_accounts_lending_market_authority",
"docs": [
"#4 - Withdraw Accounts Lending Market Authority",
"CHECK"
]
},
{
"name": "withdraw_accounts_withdraw_reserve",
"docs": [
"#5 - Withdraw Accounts Withdraw Reserve",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Withdraw Accounts Reserve Liquidity Mint",
"CHECK"
]
},
{
"name": "withdraw_accounts_reserve_source_collateral",
"docs": [
"#7 - Withdraw Accounts Reserve Source Collateral",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_collateral_mint",
"docs": [
"#8 - Withdraw Accounts Reserve Collateral Mint",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_supply",
"docs": [
"#9 - Withdraw Accounts Reserve Liquidity Supply",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_user_destination_liquidity",
"docs": [
"#10 - Withdraw Accounts User Destination Liquidity",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Withdraw Accounts Placeholder User Destination Collateral",
"CHECK"
]
},
{
"name": "withdraw_accounts_collateral_token_program",
"docs": [
"#12 - Withdraw Accounts Collateral Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_liquidity_token_program",
"docs": [
"#13 - Withdraw Accounts Liquidity Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_instruction_sysvar_account",
"docs": [
"#14 - Withdraw Accounts Instruction Sysvar Account",
"CHECK"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State",
"CHECK"
],
"writable": true
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State",
"CHECK"
],
"writable": true
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program",
"CHECK"
]
}
]
}
]
},
{
"name": "temp_sol_holder_msol_vault",
"docs": [
"CHECK"
],
"writable": true
}
]
},
{
"name": "kamino_lending_user_metadata",
"accounts": [
{
"name": "owner",
"signer": true
},
{
"name": "fee_payer",
"writable": true,
"signer": true
},
{
"name": "user_metadata",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "referrer_user_metadata",
"docs": [
"CHECK"
]
},
{
"name": "rent",
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "kamino_lending_program",
"docs": [
"CHECK"
]
}
]
},
{
"name": "kamino_lending_init_obligation",
"accounts": [
{
"name": "obligation_owner",
"signer": true
},
{
"name": "fee_payer",
"writable": true,
"signer": true
},
{
"name": "obligation",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "lending_market",
"docs": [
"CHECK"
]
},
{
"name": "seed1_account",
"docs": [
"CHECK"
]
},
{
"name": "seed2_account",
"docs": [
"CHECK"
]
},
{
"name": "owner_user_metadata",
"docs": [
"CHECK"
]
},
{
"name": "rent",
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
]
},
{
"name": "kamino_lending_refresh_reserve",
"accounts": [
{
"name": "reserve",
"writable": true
},
{
"name": "lending_market"
},
{
"name": "pyth_oracle"
},
{
"name": "switchboard_price_oracle"
},
{
"name": "switchboard_twap_oracle"
},
{
"name": "scope_prices"
}
]
},
{
"name": "kamino_lending_refresh_obligation",
"accounts": [
{
"name": "lending_market"
},
{
"name": "obligation",
"writable": true
}
]
},
{
"name": "refresh_msol_price_list",
"accounts": [
{
"name": "oracle_prices",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "oracle_mappings",
"docs": [
"CHECK"
]
},
{
"name": "oracle_twaps",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "instruction_sysvar_account_info"
},
{
"name": "marinade_liquid_staking_state",
"docs": [
"CHECK"
]
},
{
"name": "pythnet_custody_price_sol_account",
"docs": [
"CHECK"
]
},
{
"name": "marinade_liquid_staking_state_2",
"docs": [
"CHECK"
]
},
{
"name": "pythnet_custody_price_sol_account_2",
"docs": [
"CHECK"
]
}
]
},
{
"name": "msol_liquid_staking",
"accounts": [
{
"name": "marinade_liquid_staking_state",
"docs": [
"#1 - Marinade Liquid Staking State",
"CHECK"
],
"writable": true
},
{
"name": "msol_mint",
"docs": [
"#2 - mSOL Mint",
"CHECK"
],
"writable": true
},
{
"name": "marinade_sol_leg_account",
"docs": [
"#3 - Marinade SOL Leg Account",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_leg_account",
"docs": [
"#4 - Marinade mSOL Leg Account",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_leg_authority",
"docs": [
"#5 - Marinade mSOL Leg Authority",
"CHECK"
]
},
{
"name": "marinade_reserve_sol_pda",
"docs": [
"#6 - Marinade Reserve SOL PDA",
"CHECK"
],
"writable": true
},
{
"name": "transfer_from",
"docs": [
"#7 - Transfer From",
"CHECK"
],
"writable": true
},
{
"name": "mint_to",
"docs": [
"#8 - Mint To",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_mint_authority",
"docs": [
"#9 - Marinade mSOL Mint Authority",
"CHECK"
]
},
{
"name": "system_program",
"docs": [
"#10 - System Program"
],
"address": "11111111111111111111111111111111"
},
{
"name": "token_program",
"docs": [
"#11 - Token Program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "marinade_finance_program",
"docs": [
"#12 - Marinade Finance Program",
"CHECK"
]
},
{
"name": "referral_state",
"docs": [
"#13 - Referral State",
"CHECK"
],
"writable": true
},
{
"name": "msol_token_partner_account",
"docs": [
"#14 - mSOL Token Partner Account",
"CHECK"
],
"writable": true
}
]
},
{
"name": "msol_liquid_staking_cpi",
"accounts": [
{
"name": "marinade_liquid_staking_state",
"docs": [
"#1 - Marinade Liquid Staking State",
"CHECK"
],
"writable": true
},
{
"name": "msol_mint",
"docs": [
"#2 - mSOL Mint",
"CHECK"
],
"writable": true
},
{
"name": "marinade_sol_leg_account",
"docs": [
"#3 - Marinade SOL Leg Account",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_leg_account",
"docs": [
"#4 - Marinade mSOL Leg Account",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_leg_authority",
"docs": [
"#5 - Marinade mSOL Leg Authority",
"CHECK"
]
},
{
"name": "marinade_reserve_sol_pda",
"docs": [
"#6 - Marinade Reserve SOL PDA",
"CHECK"
],
"writable": true
},
{
"name": "transfer_from",
"docs": [
"#7 - Transfer From",
"CHECK"
],
"writable": true,
"signer": true
},
{
"name": "mint_to",
"docs": [
"#8 - Mint To",
"CHECK"
],
"writable": true
},
{
"name": "marinade_msol_mint_authority",
"docs": [
"#9 - Marinade mSOL Mint Authority",
"CHECK"
]
},
{
"name": "system_program",
"docs": [
"#10 - System Program"
],
"address": "11111111111111111111111111111111"
},
{
"name": "token_program",
"docs": [
"#11 - Token Program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "marinade_finance_program",
"docs": [
"#12 - Marinade Finance Program",
"CHECK"
]
},
{
"name": "referral_state",
"docs": [
"#13 - Referral State",
"CHECK"
],
"writable": true
},
{
"name": "msol_token_partner_account",
"docs": [
"#14 - mSOL Token Partner Account",
"CHECK"
],
"writable": true
}
]
},
{
"name": "kamino_deposit_with_farm",
"accounts": [
{
"name": "deposit_accounts_obligation",
"docs": [
"#2 - Deposit Accounts Obligation"
],
"writable": true
},
{
"name": "deposit_accounts_lending_market",
"docs": [
"#3 - Deposit Accounts Lending Market"
]
},
{
"name": "deposit_accounts_lending_market_authority",
"docs": [
"#4 - Deposit Accounts Lending Market Authority"
]
},
{
"name": "deposit_accounts_reserve",
"docs": [
"#5 - Deposit Accounts Reserve"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Deposit Accounts Reserve Liquidity Mint"
]
},
{
"name": "deposit_accounts_reserve_liquidity_supply",
"docs": [
"#7 - Deposit Accounts Reserve Liquidity Supply"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_collateral_mint",
"docs": [
"#8 - Deposit Accounts Reserve Collateral Mint"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_destination_deposit_collateral",
"docs": [
"#9 - Deposit Accounts Reserve Destination Deposit Collateral"
],
"writable": true
},
{
"name": "deposit_accounts_user_source_liquidity",
"docs": [
"#10 - Deposit Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "deposit_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Deposit Accounts Placeholder User Destination Collateral"
]
},
{
"name": "deposit_accounts_collateral_token_program",
"docs": [
"#12 - Deposit Accounts Collateral Token Program"
]
},
{
"name": "deposit_accounts_liquidity_token_program",
"docs": [
"#13 - Deposit Accounts Liquidity Token Program"
]
},
{
"name": "deposit_accounts_instruction_sysvar_account",
"docs": [
"#14 - Deposit Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program"
]
}
]
},
{
"name": "kamino_deposit_with_farm_cpi",
"accounts": [
{
"name": "deposit_accounts_owner",
"docs": [
"#1 - Deposit Accounts Owner"
],
"writable": true,
"signer": true
},
{
"name": "accounts",
"accounts": [
{
"name": "deposit_accounts_obligation",
"docs": [
"#2 - Deposit Accounts Obligation"
],
"writable": true
},
{
"name": "deposit_accounts_lending_market",
"docs": [
"#3 - Deposit Accounts Lending Market"
]
},
{
"name": "deposit_accounts_lending_market_authority",
"docs": [
"#4 - Deposit Accounts Lending Market Authority"
]
},
{
"name": "deposit_accounts_reserve",
"docs": [
"#5 - Deposit Accounts Reserve"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Deposit Accounts Reserve Liquidity Mint"
]
},
{
"name": "deposit_accounts_reserve_liquidity_supply",
"docs": [
"#7 - Deposit Accounts Reserve Liquidity Supply"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_collateral_mint",
"docs": [
"#8 - Deposit Accounts Reserve Collateral Mint"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_destination_deposit_collateral",
"docs": [
"#9 - Deposit Accounts Reserve Destination Deposit Collateral"
],
"writable": true
},
{
"name": "deposit_accounts_user_source_liquidity",
"docs": [
"#10 - Deposit Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "deposit_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Deposit Accounts Placeholder User Destination Collateral"
]
},
{
"name": "deposit_accounts_collateral_token_program",
"docs": [
"#12 - Deposit Accounts Collateral Token Program"
]
},
{
"name": "deposit_accounts_liquidity_token_program",
"docs": [
"#13 - Deposit Accounts Liquidity Token Program"
]
},
{
"name": "deposit_accounts_instruction_sysvar_account",
"docs": [
"#14 - Deposit Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_deposit_with_farm_client",
"accounts": [
{
"name": "deposit_accounts_owner",
"docs": [
"#1 - Deposit Accounts Owner"
],
"writable": true
},
{
"name": "accounts",
"accounts": [
{
"name": "deposit_accounts_obligation",
"docs": [
"#2 - Deposit Accounts Obligation"
],
"writable": true
},
{
"name": "deposit_accounts_lending_market",
"docs": [
"#3 - Deposit Accounts Lending Market"
]
},
{
"name": "deposit_accounts_lending_market_authority",
"docs": [
"#4 - Deposit Accounts Lending Market Authority"
]
},
{
"name": "deposit_accounts_reserve",
"docs": [
"#5 - Deposit Accounts Reserve"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Deposit Accounts Reserve Liquidity Mint"
]
},
{
"name": "deposit_accounts_reserve_liquidity_supply",
"docs": [
"#7 - Deposit Accounts Reserve Liquidity Supply"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_collateral_mint",
"docs": [
"#8 - Deposit Accounts Reserve Collateral Mint"
],
"writable": true
},
{
"name": "deposit_accounts_reserve_destination_deposit_collateral",
"docs": [
"#9 - Deposit Accounts Reserve Destination Deposit Collateral"
],
"writable": true
},
{
"name": "deposit_accounts_user_source_liquidity",
"docs": [
"#10 - Deposit Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "deposit_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Deposit Accounts Placeholder User Destination Collateral"
]
},
{
"name": "deposit_accounts_collateral_token_program",
"docs": [
"#12 - Deposit Accounts Collateral Token Program"
]
},
{
"name": "deposit_accounts_liquidity_token_program",
"docs": [
"#13 - Deposit Accounts Liquidity Token Program"
]
},
{
"name": "deposit_accounts_instruction_sysvar_account",
"docs": [
"#14 - Deposit Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_borrow_with_farm",
"accounts": [
{
"name": "borrow_accounts_obligation",
"docs": [
"#2 - Borrow Accounts Obligation"
],
"writable": true
},
{
"name": "borrow_accounts_lending_market",
"docs": [
"#3 - Borrow Accounts Lending Market"
]
},
{
"name": "borrow_accounts_lending_market_authority",
"docs": [
"#4 - Borrow Accounts Lending Market Authority"
]
},
{
"name": "borrow_accounts_borrow_reserve",
"docs": [
"#5 - Borrow Accounts Borrow Reserve"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_mint",
"docs": [
"#6 - Borrow Accounts Borrow Reserve Liquidity Mint"
]
},
{
"name": "borrow_accounts_reserve_source_liquidity",
"docs": [
"#7 - Borrow Accounts Reserve Source Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_fee_receiver",
"docs": [
"#8 - Borrow Accounts Borrow Reserve Liquidity Fee Receiver"
],
"writable": true
},
{
"name": "borrow_accounts_user_destination_liquidity",
"docs": [
"#9 - Borrow Accounts User Destination Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_referrer_token_state",
"docs": [
"#10 - Borrow Accounts Referrer Token State"
]
},
{
"name": "borrow_accounts_token_program",
"docs": [
"#11 - Borrow Accounts Token Program"
]
},
{
"name": "borrow_accounts_instruction_sysvar_account",
"docs": [
"#12 - Borrow Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#13 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#14 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#15 - Farms Program"
]
}
]
},
{
"name": "kamino_borrow_with_farm_cpi",
"accounts": [
{
"name": "borrow_accounts_owner",
"docs": [
"#1 - Borrow Accounts Owner"
],
"writable": true,
"signer": true
},
{
"name": "accounts",
"accounts": [
{
"name": "borrow_accounts_obligation",
"docs": [
"#2 - Borrow Accounts Obligation"
],
"writable": true
},
{
"name": "borrow_accounts_lending_market",
"docs": [
"#3 - Borrow Accounts Lending Market"
]
},
{
"name": "borrow_accounts_lending_market_authority",
"docs": [
"#4 - Borrow Accounts Lending Market Authority"
]
},
{
"name": "borrow_accounts_borrow_reserve",
"docs": [
"#5 - Borrow Accounts Borrow Reserve"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_mint",
"docs": [
"#6 - Borrow Accounts Borrow Reserve Liquidity Mint"
]
},
{
"name": "borrow_accounts_reserve_source_liquidity",
"docs": [
"#7 - Borrow Accounts Reserve Source Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_fee_receiver",
"docs": [
"#8 - Borrow Accounts Borrow Reserve Liquidity Fee Receiver"
],
"writable": true
},
{
"name": "borrow_accounts_user_destination_liquidity",
"docs": [
"#9 - Borrow Accounts User Destination Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_referrer_token_state",
"docs": [
"#10 - Borrow Accounts Referrer Token State"
]
},
{
"name": "borrow_accounts_token_program",
"docs": [
"#11 - Borrow Accounts Token Program"
]
},
{
"name": "borrow_accounts_instruction_sysvar_account",
"docs": [
"#12 - Borrow Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#13 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#14 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#15 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_borrow_with_farm_client",
"accounts": [
{
"name": "borrow_accounts_owner",
"docs": [
"#1 - Borrow Accounts Owner"
],
"writable": true
},
{
"name": "accounts",
"accounts": [
{
"name": "borrow_accounts_obligation",
"docs": [
"#2 - Borrow Accounts Obligation"
],
"writable": true
},
{
"name": "borrow_accounts_lending_market",
"docs": [
"#3 - Borrow Accounts Lending Market"
]
},
{
"name": "borrow_accounts_lending_market_authority",
"docs": [
"#4 - Borrow Accounts Lending Market Authority"
]
},
{
"name": "borrow_accounts_borrow_reserve",
"docs": [
"#5 - Borrow Accounts Borrow Reserve"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_mint",
"docs": [
"#6 - Borrow Accounts Borrow Reserve Liquidity Mint"
]
},
{
"name": "borrow_accounts_reserve_source_liquidity",
"docs": [
"#7 - Borrow Accounts Reserve Source Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_borrow_reserve_liquidity_fee_receiver",
"docs": [
"#8 - Borrow Accounts Borrow Reserve Liquidity Fee Receiver"
],
"writable": true
},
{
"name": "borrow_accounts_user_destination_liquidity",
"docs": [
"#9 - Borrow Accounts User Destination Liquidity"
],
"writable": true
},
{
"name": "borrow_accounts_referrer_token_state",
"docs": [
"#10 - Borrow Accounts Referrer Token State"
]
},
{
"name": "borrow_accounts_token_program",
"docs": [
"#11 - Borrow Accounts Token Program"
]
},
{
"name": "borrow_accounts_instruction_sysvar_account",
"docs": [
"#12 - Borrow Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#13 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#14 - Farms Accounts Reserve Farm State"
]
},
{
"name": "farms_program",
"docs": [
"#15 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_repay_with_farm",
"accounts": [
{
"name": "repay_accounts_obligation",
"docs": [
"#2 - Repay Accounts Obligation"
],
"writable": true
},
{
"name": "repay_accounts_lending_market",
"docs": [
"#3 - Repay Accounts Lending Market"
]
},
{
"name": "repay_accounts_repay_reserve",
"docs": [
"#4 - Repay Accounts Repay Reserve"
],
"writable": true
},
{
"name": "repay_accounts_reserve_liquidity_mint",
"docs": [
"#5 - Repay Accounts Reserve Liquidity Mint"
]
},
{
"name": "repay_accounts_reserve_destination_liquidity",
"docs": [
"#6 - Repay Accounts Reserve Destination Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_user_source_liquidity",
"docs": [
"#7 - Repay Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_token_program",
"docs": [
"#8 - Repay Accounts Token Program"
]
},
{
"name": "repay_accounts_instruction_sysvar_account",
"docs": [
"#9 - Repay Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#10 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#11 - Farms Accounts Reserve Farm State"
]
},
{
"name": "lending_market_authority",
"docs": [
"#12 - Lending Market Authority"
]
},
{
"name": "farms_program",
"docs": [
"#13 - Farms Program"
]
}
]
},
{
"name": "kamino_repay_with_farm_cpi",
"accounts": [
{
"name": "repay_accounts_owner",
"docs": [
"#1 - Repay Accounts Owner"
],
"writable": true,
"signer": true
},
{
"name": "accounts",
"accounts": [
{
"name": "repay_accounts_obligation",
"docs": [
"#2 - Repay Accounts Obligation"
],
"writable": true
},
{
"name": "repay_accounts_lending_market",
"docs": [
"#3 - Repay Accounts Lending Market"
]
},
{
"name": "repay_accounts_repay_reserve",
"docs": [
"#4 - Repay Accounts Repay Reserve"
],
"writable": true
},
{
"name": "repay_accounts_reserve_liquidity_mint",
"docs": [
"#5 - Repay Accounts Reserve Liquidity Mint"
]
},
{
"name": "repay_accounts_reserve_destination_liquidity",
"docs": [
"#6 - Repay Accounts Reserve Destination Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_user_source_liquidity",
"docs": [
"#7 - Repay Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_token_program",
"docs": [
"#8 - Repay Accounts Token Program"
]
},
{
"name": "repay_accounts_instruction_sysvar_account",
"docs": [
"#9 - Repay Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#10 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#11 - Farms Accounts Reserve Farm State"
]
},
{
"name": "lending_market_authority",
"docs": [
"#12 - Lending Market Authority"
]
},
{
"name": "farms_program",
"docs": [
"#13 - Farms Program"
]
}
]
}
]
},
{
"name": "kamino_repay_with_farm_client",
"accounts": [
{
"name": "repay_accounts_owner",
"docs": [
"#1 - Repay Accounts Owner"
],
"writable": true
},
{
"name": "accounts",
"accounts": [
{
"name": "repay_accounts_obligation",
"docs": [
"#2 - Repay Accounts Obligation"
],
"writable": true
},
{
"name": "repay_accounts_lending_market",
"docs": [
"#3 - Repay Accounts Lending Market"
]
},
{
"name": "repay_accounts_repay_reserve",
"docs": [
"#4 - Repay Accounts Repay Reserve"
],
"writable": true
},
{
"name": "repay_accounts_reserve_liquidity_mint",
"docs": [
"#5 - Repay Accounts Reserve Liquidity Mint"
]
},
{
"name": "repay_accounts_reserve_destination_liquidity",
"docs": [
"#6 - Repay Accounts Reserve Destination Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_user_source_liquidity",
"docs": [
"#7 - Repay Accounts User Source Liquidity"
],
"writable": true
},
{
"name": "repay_accounts_token_program",
"docs": [
"#8 - Repay Accounts Token Program"
]
},
{
"name": "repay_accounts_instruction_sysvar_account",
"docs": [
"#9 - Repay Accounts Instruction Sysvar Account"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#10 - Farms Accounts Obligation Farm User State"
]
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#11 - Farms Accounts Reserve Farm State"
]
},
{
"name": "lending_market_authority",
"docs": [
"#12 - Lending Market Authority"
]
},
{
"name": "farms_program",
"docs": [
"#13 - Farms Program"
]
}
]
}
]
},
{
"name": "order_unstake_msol_client",
"accounts": [
{
"name": "marinade_finance_program",
"docs": [
"CHECK"
]
},
{
"name": "marinade_liquid_staking_state",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "msol_mint",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "burn_msol_from",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "burn_msol_authority",
"docs": [
"CHECK"
],
"writable": true,
"signer": true
},
{
"name": "new_ticket_account",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "clock",
"address": "SysvarC1ock11111111111111111111111111111111"
},
{
"name": "rent",
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
]
},
{
"name": "order_unstake_msol_cpi",
"accounts": [
{
"name": "marinade_liquid_staking_state",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "msol_mint",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "burn_msol_from",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "burn_msol_authority",
"docs": [
"CHECK"
],
"writable": true,
"signer": true
},
{
"name": "new_ticket_account",
"docs": [
"CHECK"
],
"writable": true,
"signer": true
},
{
"name": "clock",
"address": "SysvarC1ock11111111111111111111111111111111"
},
{
"name": "rent",
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "token_program",
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
]
},
{
"name": "claim_msol_cpi",
"accounts": [
{
"name": "state",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "reserve_pda",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "ticket_account",
"docs": [
"CHECK"
],
"writable": true
},
{
"name": "transfer_sol_to",
"docs": [
"CHECK"
],
"writable": true,
"signer": true
},
{
"name": "clock",
"address": "SysvarC1ock11111111111111111111111111111111"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
]
},
{
"name": "kamino_withdraw_with_farm",
"accounts": [
{
"name": "withdraw_accounts_obligation",
"docs": [
"#2 - Withdraw Accounts Obligation",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_lending_market",
"docs": [
"#3 - Withdraw Accounts Lending Market",
"CHECK"
]
},
{
"name": "withdraw_accounts_lending_market_authority",
"docs": [
"#4 - Withdraw Accounts Lending Market Authority",
"CHECK"
]
},
{
"name": "withdraw_accounts_withdraw_reserve",
"docs": [
"#5 - Withdraw Accounts Withdraw Reserve",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Withdraw Accounts Reserve Liquidity Mint",
"CHECK"
]
},
{
"name": "withdraw_accounts_reserve_source_collateral",
"docs": [
"#7 - Withdraw Accounts Reserve Source Collateral",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_collateral_mint",
"docs": [
"#8 - Withdraw Accounts Reserve Collateral Mint",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_supply",
"docs": [
"#9 - Withdraw Accounts Reserve Liquidity Supply",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_user_destination_liquidity",
"docs": [
"#10 - Withdraw Accounts User Destination Liquidity",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Withdraw Accounts Placeholder User Destination Collateral",
"CHECK"
]
},
{
"name": "withdraw_accounts_collateral_token_program",
"docs": [
"#12 - Withdraw Accounts Collateral Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_liquidity_token_program",
"docs": [
"#13 - Withdraw Accounts Liquidity Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_instruction_sysvar_account",
"docs": [
"#14 - Withdraw Accounts Instruction Sysvar Account",
"CHECK"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State",
"CHECK"
],
"writable": true
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State",
"CHECK"
],
"writable": true
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program",
"CHECK"
]
}
]
},
{
"name": "kamino_withdraw_with_farm_cpi",
"accounts": [
{
"name": "withdraw_accounts_owner",
"docs": [
"#1 - Withdraw Accounts Owner",
"CHECK"
],
"writable": true,
"signer": true
},
{
"name": "accounts",
"accounts": [
{
"name": "withdraw_accounts_obligation",
"docs": [
"#2 - Withdraw Accounts Obligation",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_lending_market",
"docs": [
"#3 - Withdraw Accounts Lending Market",
"CHECK"
]
},
{
"name": "withdraw_accounts_lending_market_authority",
"docs": [
"#4 - Withdraw Accounts Lending Market Authority",
"CHECK"
]
},
{
"name": "withdraw_accounts_withdraw_reserve",
"docs": [
"#5 - Withdraw Accounts Withdraw Reserve",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Withdraw Accounts Reserve Liquidity Mint",
"CHECK"
]
},
{
"name": "withdraw_accounts_reserve_source_collateral",
"docs": [
"#7 - Withdraw Accounts Reserve Source Collateral",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_collateral_mint",
"docs": [
"#8 - Withdraw Accounts Reserve Collateral Mint",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_supply",
"docs": [
"#9 - Withdraw Accounts Reserve Liquidity Supply",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_user_destination_liquidity",
"docs": [
"#10 - Withdraw Accounts User Destination Liquidity",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Withdraw Accounts Placeholder User Destination Collateral",
"CHECK"
]
},
{
"name": "withdraw_accounts_collateral_token_program",
"docs": [
"#12 - Withdraw Accounts Collateral Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_liquidity_token_program",
"docs": [
"#13 - Withdraw Accounts Liquidity Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_instruction_sysvar_account",
"docs": [
"#14 - Withdraw Accounts Instruction Sysvar Account",
"CHECK"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State",
"CHECK"
],
"writable": true
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State",
"CHECK"
],
"writable": true
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program",
"CHECK"
]
}
]
}
]
},
{
"name": "kamino_withdraw_with_farm_client",
"accounts": [
{
"name": "withdraw_accounts_owner",
"docs": [
"#1 - Withdraw Accounts Owner",
"CHECK"
]
},
{
"name": "accounts",
"accounts": [
{
"name": "withdraw_accounts_obligation",
"docs": [
"#2 - Withdraw Accounts Obligation",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_lending_market",
"docs": [
"#3 - Withdraw Accounts Lending Market",
"CHECK"
]
},
{
"name": "withdraw_accounts_lending_market_authority",
"docs": [
"#4 - Withdraw Accounts Lending Market Authority",
"CHECK"
]
},
{
"name": "withdraw_accounts_withdraw_reserve",
"docs": [
"#5 - Withdraw Accounts Withdraw Reserve",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_mint",
"docs": [
"#6 - Withdraw Accounts Reserve Liquidity Mint",
"CHECK"
]
},
{
"name": "withdraw_accounts_reserve_source_collateral",
"docs": [
"#7 - Withdraw Accounts Reserve Source Collateral",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_collateral_mint",
"docs": [
"#8 - Withdraw Accounts Reserve Collateral Mint",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_reserve_liquidity_supply",
"docs": [
"#9 - Withdraw Accounts Reserve Liquidity Supply",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_user_destination_liquidity",
"docs": [
"#10 - Withdraw Accounts User Destination Liquidity",
"CHECK"
],
"writable": true
},
{
"name": "withdraw_accounts_placeholder_user_destination_collateral",
"docs": [
"#11 - Withdraw Accounts Placeholder User Destination Collateral",
"CHECK"
]
},
{
"name": "withdraw_accounts_collateral_token_program",
"docs": [
"#12 - Withdraw Accounts Collateral Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_liquidity_token_program",
"docs": [
"#13 - Withdraw Accounts Liquidity Token Program",
"CHECK"
]
},
{
"name": "withdraw_accounts_instruction_sysvar_account",
"docs": [
"#14 - Withdraw Accounts Instruction Sysvar Account",
"CHECK"
]
},
{
"name": "farms_accounts_obligation_farm_user_state",
"docs": [
"#15 - Farms Accounts Obligation Farm User State",
"CHECK"
],
"writable": true
},
{
"name": "farms_accounts_reserve_farm_state",
"docs": [
"#16 - Farms Accounts Reserve Farm State",
"CHECK"
],
"writable": true
},
{
"name": "farms_program",
"docs": [
"#17 - Farms Program",
"CHECK"
]
}
]
}
]
}
],
"args": []
},
{
"name": "remove_liquidity_pro_pool",
"discriminator": [
191,
55,
42,
44,
226,
98,
172,
79
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"signer": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "token_a_mint"
},
{
"name": "token_b_mint"
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "user_lp_position",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
117,
115,
101,
114,
95,
108,
112,
95,
112,
111,
115,
105,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "liquidity_pool_state"
},
{
"kind": "account",
"path": "user"
}
]
}
}
],
"args": [
{
"name": "params",
"type": {
"defined": {
"name": "RemoveLiquidityParams"
}
}
}
]
},
{
"name": "sell",
"discriminator": [
51,
230,
133,
164,
1,
127,
131,
173
],
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "params",
"type": {
"defined": {
"name": "SellParams"
}
}
}
],
"returns": "u64"
},
{
"name": "set_protocol_slot_fees",
"discriminator": [
181,
82,
19,
15,
126,
205,
152,
242
],
"accounts": [
{
"name": "owner",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
99,
111,
110,
102,
105,
103,
95,
115,
116,
97,
116,
101
]
},
{
"kind": "arg",
"path": "version"
}
]
}
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "fee_type",
"type": {
"defined": {
"name": "FeeType"
}
}
},
{
"name": "slot_fees",
"type": {
"defined": {
"name": "SlotFeeBracketsParams"
}
}
}
]
},
{
"name": "transfer_lp_tokens",
"discriminator": [
238,
121,
14,
82,
103,
109,
70,
180
],
"accounts": [
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "sender",
"signer": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "receiver"
},
{
"name": "sender_lp_position",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
117,
115,
101,
114,
95,
108,
112,
95,
112,
111,
115,
105,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "liquidity_pool_state"
},
{
"kind": "account",
"path": "sender"
}
]
}
},
{
"name": "receiver_lp_position",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
117,
115,
101,
114,
95,
108,
112,
95,
112,
111,
115,
105,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "liquidity_pool_state"
},
{
"kind": "account",
"path": "receiver"
}
]
}
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "update_allow_create_pool",
"discriminator": [
223,
252,
231,
62,
96,
219,
241,
214
],
"accounts": [
{
"name": "admin",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true
},
{
"name": "protocol_admin_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
102,
101,
101,
95,
97,
100,
109,
105,
110,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "allow_create_pool",
"type": "bool"
}
]
},
{
"name": "update_creator_trading_fee_receiver",
"discriminator": [
246,
229,
200,
79,
31,
21,
120,
25
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "new_receiver",
"signer": true
}
],
"args": []
},
{
"name": "update_pro_creator_trading_fee_receiver",
"discriminator": [
156,
240,
27,
243,
42,
165,
31,
0
],
"accounts": [
{
"name": "swap",
"accounts": [
{
"name": "token_a_program"
},
{
"name": "token_b_program"
},
{
"name": "associated_token_program",
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "liquidity_pool_state",
"writable": true
},
{
"name": "user",
"docs": [
"CHECK"
],
"signer": true
},
{
"name": "token_a_mint",
"docs": [
"CHECK"
]
},
{
"name": "token_b_mint",
"docs": [
"CHECK"
]
},
{
"name": "user_token_a_vault",
"writable": true
},
{
"name": "user_token_b_vault",
"writable": true
},
{
"name": "token_a_vault",
"writable": true
},
{
"name": "token_b_vault",
"writable": true
},
{
"name": "protocol_config",
"writable": true
},
{
"name": "instruction_sysvar_account_info",
"docs": [
"CHECK"
],
"address": "Sysvar1nstructions1111111111111111111111111"
}
]
},
{
"name": "new_receiver",
"signer": true
}
],
"args": []
},
{
"name": "update_protocol_config",
"discriminator": [
197,
97,
123,
54,
221,
168,
11,
135
],
"accounts": [
{
"name": "owner",
"signer": true
},
{
"name": "protocol_config_state",
"writable": true
},
{
"name": "protocol_owner_state",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
114,
111,
116,
111,
99,
111,
108,
95,
111,
119,
110,
101,
114,
95,
115,
116,
97,
116,
101
]
}
]
}
}
],
"args": [
{
"name": "version",
"type": "u16"
},
{
"name": "params",
"type": {
"defined": {
"name": "ProtocolConfigParams"
}
}
}
]
}
],
"accounts": [
{
"name": "LiquidityPoolState",
"discriminator": [
190,
158,
220,
130,
15,
162,
132,
252
]
},
{
"name": "MsolTicketSolSpent",
"discriminator": [
66,
196,
62,
134,
124,
149,
250,
66
]
},
{
"name": "ProtocolAdminState",
"discriminator": [
24,
124,
174,
225,
232,
30,
115,
192
]
},
{
"name": "ProtocolConfig",
"discriminator": [
207,
91,
250,
28,
152,
179,
215,
209
]
},
{
"name": "ProtocolOwnerState",
"discriminator": [
208,
64,
209,
204,
113,
226,
22,
98
]
},
{
"name": "UserLpPosition",
"discriminator": [
115,
204,
229,
204,
54,
180,
29,
195
]
}
],
"events": [
{
"name": "CreateLiquidityPoolEvent",
"discriminator": [
116,
216,
239,
141,
207,
211,
178,
127
]
},
{
"name": "CreateStandardLiquidityPoolEvent",
"discriminator": [
189,
56,
131,
144,
75,
63,
249,
148
]
},
{
"name": "CreatingLiquidityPoolEvent",
"discriminator": [
52,
128,
4,
166,
122,
176,
84,
207
]
},
{
"name": "HighReflectionFeeEvent",
"discriminator": [
198,
217,
229,
205,
94,
214,
14,
177
]
},
{
"name": "MigrationEvent",
"discriminator": [
255,
202,
76,
147,
91,
231,
73,
22
]
},
{
"name": "TradeEvent",
"discriminator": [
189,
219,
127,
211,
78,
230,
97,
238
]
},
{
"name": "UserDefinedEvent",
"discriminator": [
33,
21,
108,
20,
241,
244,
167,
131
]
}
],
"errors": [
{
"code": 6000,
"name": "UnsupportedTokenMint",
"msg": "Unsupported token mint"
},
{
"code": 6001,
"name": "InvalidTokenVaultBalance",
"msg": "Invalid token vault balance"
},
{
"code": 6002,
"name": "InvalidUserToken",
"msg": "Invalid user token"
},
{
"code": 6003,
"name": "InvalidTaxationMode",
"msg": "Invalid taxation mode"
},
{
"code": 6004,
"name": "InvalidOwner",
"msg": "Invalid owner"
},
{
"code": 6005,
"name": "InvalidLockLiquidityProviderTokenPercentage",
"msg": "Invalid lock liquidity provider token percentage"
},
{
"code": 6006,
"name": "CannotCreatePoolWithDisabledProtocolConfigVersion",
"msg": "Cannot create pool with the a disabled protocol config version"
},
{
"code": 6007,
"name": "InvalidTokenInputAmount",
"msg": "Invalid token input amount"
},
{
"code": 6008,
"name": "InvalidSwapTax",
"msg": "Invalid swap tax"
},
{
"code": 6009,
"name": "InvalidFeeMode",
"msg": "Invalid fee mode"
},
{
"code": 6010,
"name": "InvalidLiquidityProviderTokenLockVault",
"msg": "Invalid liquidity provider token lock vault"
},
{
"code": 6011,
"name": "InvalidUserLiquidityProviderTokenVault",
"msg": "Invalid liquidity provider token vault"
},
{
"code": 6012,
"name": "InsufficientBalance",
"msg": "Insufficient balance"
},
{
"code": 6013,
"name": "ExceededSlippage",
"msg": "Exceeded slippage"
},
{
"code": 6014,
"name": "InvalidAddLiquidityInput",
"msg": "Invalid add liquidity input"
},
{
"code": 6015,
"name": "InvalidRemoveLiquidityInput",
"msg": "Invalid remove liquidity input"
},
{
"code": 6016,
"name": "AddLiquidityDisabled",
"msg": "Add liquidity is disabled"
},
{
"code": 6017,
"name": "RemoveLiquidityDisabled",
"msg": "Remove liquidity is disabled"
},
{
"code": 6018,
"name": "SwapDisabled",
"msg": "Swap is disabled"
},
{
"code": 6019,
"name": "LiquidityPoolIsNotOpenYet",
"msg": "Liquidity pool is not open yet"
},
{
"code": 6020,
"name": "InvalidSwapInInputs",
"msg": "Invalid swap in inputs"
},
{
"code": 6021,
"name": "InvalidProtocolSwapFeeWallet",
"msg": "Invalid protocol swap fee wallet"
},
{
"code": 6022,
"name": "InvalidSwapOutInputs",
"msg": "Invalid swap out inputs"
},
{
"code": 6023,
"name": "InvalidPostFeeAmount",
"msg": "Invalid post fee amount"
},
{
"code": 6024,
"name": "ExceededQuoteTokenSlippage",
"msg": "Exceeded quote token slippage"
},
{
"code": 6025,
"name": "ExceededBaseTokenSlippage",
"msg": "Exceeded base token slippage"
},
{
"code": 6026,
"name": "LpTokensLocked",
"msg": "Lp tokens locked"
},
{
"code": 6027,
"name": "InvalidProtocolBaseTokenSwapFeeVault",
"msg": "Invalid protocol base token swap fee vault"
},
{
"code": 6028,
"name": "InvalidProtocolQuoteTokenSwapFeeVault",
"msg": "Invalid protocol quote token swap fee vault"
},
{
"code": 6029,
"name": "InvalidUserPoolStatsAccount",
"msg": "Invalid user pool stats account"
},
{
"code": 6030,
"name": "InvalidUserGlobalStatsAccount",
"msg": "Invalid user global stats account"
},
{
"code": 6031,
"name": "CannotUpdateLpLock",
"msg": "Cannot update lp lock"
},
{
"code": 6032,
"name": "ZeroAmount",
"msg": "Zero amount"
},
{
"code": 6033,
"name": "CannotUpdateLpOpenTime",
"msg": "Cannot update lp open time"
},
{
"code": 6034,
"name": "CannotSetLockBurnLpTokens",
"msg": "Cannot set lock burn lp tokens"
},
{
"code": 6035,
"name": "InvalidTax",
"msg": "Invalid tax"
},
{
"code": 6036,
"name": "InvalidChainlinkFeedAccount",
"msg": "Invalid chainlink feed account"
},
{
"code": 6037,
"name": "InvalidChainlinkProgram",
"msg": "Invalid chainlink program"
},
{
"code": 6038,
"name": "InvalidConfigVersion",
"msg": "Invalid config version"
},
{
"code": 6039,
"name": "CannotUpdateLockedTaxation",
"msg": "Cannot update locked taxation"
},
{
"code": 6040,
"name": "CannotClaimSwapFee",
"msg": "Cannot claim swap fee"
},
{
"code": 6041,
"name": "NonCreatorCannotAddLp",
"msg": "This pool does not allow non-creator to add lp"
},
{
"code": 6042,
"name": "SimpleAmmBaseTokenCannotHaveFreezeAuthority",
"msg": "Simple amm base token mint cannot have freeze authority"
},
{
"code": 6043,
"name": "SimpleAmmBaseTokenCannotHaveMintAuthority",
"msg": "Simple amm base token mint cannot have mint authority"
},
{
"code": 6044,
"name": "SimpleAmmQuoteTokenMustBeWSOL",
"msg": "Simple amm quote token mint must be WSOL"
},
{
"code": 6045,
"name": "SimpleAmmBaseTokenSupplyMustMatchInputAmount",
"msg": "Simple amm base token supply must match input amount"
},
{
"code": 6046,
"name": "SimpleAmmBaseTokenMustBeSplToken",
"msg": "Simple amm base token mint must be SPL token"
},
{
"code": 6047,
"name": "InvalidProgramAuthorityLookupTableAddress",
"msg": "Invalid program authority lookup table address"
},
{
"code": 6048,
"name": "CannotCreatePoolWithUnsupportedPoolType",
"msg": "CannotCreatePoolWithUnsupportedPoolType"
},
{
"code": 6049,
"name": "InvalidLendingMarket",
"msg": "InvalidLendingMarket"
},
{
"code": 6050,
"name": "KaminoPriceListRefreshIxNotFound",
"msg": "KaminoPriceListRefreshIxNotFound"
},
{
"code": 6051,
"name": "KaminoError",
"msg": "KaminoError"
},
{
"code": 6052,
"name": "ReserveRebalancing",
"msg": "Reserve rebalancing, please try again."
},
{
"code": 6053,
"name": "OnlySingleSwapAllowed",
"msg": "Only single swap allowed"
}
],
"types": [
{
"name": "AddLiquidityParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "max_token_a",
"type": "u64"
},
{
"name": "max_token_b",
"type": "u64"
},
{
"name": "min_lp_tokens",
"type": "u64"
}
]
}
},
{
"name": "AdminUpdateLiquidityPoolState",
"type": {
"kind": "enum",
"variants": [
{
"name": "CreatorTradingFeeClaimStatus",
"fields": [
{
"defined": {
"name": "CreatorTradingFeeClaimStatus"
}
}
]
},
{
"name": "CreatorTradingFeeDistribution",
"fields": [
{
"defined": {
"name": "CreatorTradingFeeDistribution"
}
}
]
},
{
"name": "CreatorTradingFeeReceiver",
"fields": [
"pubkey"
]
},
{
"name": "FeeConfigurationMode",
"fields": [
{
"defined": {
"name": "FeeConfigurationMode"
}
}
]
},
{
"name": "SlotOffsetBasedFees",
"fields": [
{
"name": "fee_type",
"type": {
"defined": {
"name": "FeeType"
}
}
},
{
"name": "fees",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
}
]
},
{
"name": "MarketCapBasedFees",
"fields": [
{
"name": "fee_type",
"type": {
"defined": {
"name": "FeeType"
}
}
},
{
"name": "fees",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
}
]
},
{
"name": "ToggleSwapPermission",
"fields": [
"bool"
]
},
{
"name": "SetCreatorTradingFeeTradingVolumeThreshold",
"fields": [
"f64"
]
}
]
}
},
{
"name": "BuyParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "max_sol_spend",
"type": "u64"
},
{
"name": "minimum_amount_out",
"type": "u64"
},
{
"name": "encoded_user_defined_event_data",
"type": "string"
}
]
}
},
{
"name": "CreateLiquidityPoolEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "liquidity_pool_id",
"type": "pubkey"
},
{
"name": "user",
"type": "pubkey"
},
{
"name": "base_token_input_transfer_fee_amount",
"type": "u64"
},
{
"name": "quote_token_input_transfer_fee_amount",
"type": "u64"
},
{
"name": "base_token_input_amount",
"type": "u64"
},
{
"name": "quote_token_input_amount",
"type": "u64"
},
{
"name": "lp_token_output_amount",
"type": "u64"
},
{
"name": "locked_lp",
"type": "bool"
}
]
}
},
{
"name": "CreateProLiquidityPoolParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "encoded_user_defined_event_data",
"type": "string"
},
{
"name": "initial_token_a_amount",
"type": "u64"
},
{
"name": "initial_token_b_amount",
"type": "u64"
},
{
"name": "creator_trading_fee",
"type": {
"defined": {
"name": "FeeBracketsParams"
}
}
},
{
"name": "reflection_trading_fee",
"type": {
"option": {
"defined": {
"name": "FeeBracketsParams"
}
}
}
},
{
"name": "liquidity_provider_trading_fee",
"type": {
"option": {
"defined": {
"name": "FeeBracketsParams"
}
}
}
},
{
"name": "creator_slot_trading_fee",
"type": {
"option": {
"defined": {
"name": "SlotFeeBracketsParams"
}
}
}
},
{
"name": "enable_same_slot_trading",
"type": "bool"
},
{
"name": "enable_sandwich_resistant_mode",
"type": "bool"
},
{
"name": "enable_deposit_liquidity",
"type": "bool"
},
{
"name": "enable_withdraw_liquidity",
"type": "bool"
},
{
"name": "enable_swap",
"type": "bool"
},
{
"name": "enable_update_creator_trading_fee",
"type": "bool"
}
]
}
},
{
"name": "CreateStandardLiquidityPoolEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "pool_id",
"type": "pubkey"
},
{
"name": "payer",
"type": "pubkey"
},
{
"name": "creator",
"type": "pubkey"
},
{
"name": "mint",
"type": "pubkey"
},
{
"name": "config_version",
"type": "u16"
},
{
"name": "initial_token_reserve",
"type": "u64"
},
{
"name": "initial_virtual_wsol_reserve",
"type": "u64"
}
]
}
},
{
"name": "CreateStandardLiquidityPoolParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "encoded_user_defined_event_data",
"type": "string"
},
{
"name": "initial_purchase_amount",
"type": "u64"
},
{
"name": "max_sol_spend",
"type": "u64"
}
]
}
},
{
"name": "CreatingLiquidityPoolEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "id",
"type": "pubkey"
},
{
"name": "base",
"type": "pubkey"
},
{
"name": "quote",
"type": "pubkey"
},
{
"name": "base_amount",
"type": "u64"
},
{
"name": "quote_amount",
"type": "u64"
}
]
}
},
{
"name": "CreatorTradingFeeClaimStatus",
"type": {
"kind": "enum",
"variants": [
{
"name": "Unclaimed"
},
{
"name": "Submitted"
},
{
"name": "Processed"
}
]
}
},
{
"name": "CreatorTradingFeeDistribution",
"type": {
"kind": "enum",
"variants": [
{
"name": "Community"
},
{
"name": "Creator"
},
{
"name": "Blocked"
},
{
"name": "Shared"
}
]
}
},
{
"name": "FeeBracket",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "market_cap_upper_bound",
"type": "u64"
},
{
"name": "buy_fee_bps",
"type": "u32"
},
{
"name": "sell_fee_bps",
"type": "u32"
}
]
}
},
{
"name": "FeeBrackets",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "brackets",
"type": {
"array": [
{
"defined": {
"name": "FeeBracket"
}
},
4
]
}
},
{
"name": "count",
"type": "u8"
},
{
"name": "_padding",
"type": {
"array": [
"u8",
7
]
}
}
]
}
},
{
"name": "FeeBracketsParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "brackets",
"type": {
"vec": {
"defined": {
"name": "FeeBracket"
}
}
}
},
{
"name": "count",
"type": "u8"
}
]
}
},
{
"name": "FeeConfigurationMode",
"type": {
"kind": "enum",
"variants": [
{
"name": "Global"
},
{
"name": "Local"
}
]
}
},
{
"name": "FeeType",
"type": {
"kind": "enum",
"variants": [
{
"name": "ProtocolFee"
},
{
"name": "LiquidityProviderFee"
},
{
"name": "CreatorFee"
},
{
"name": "CreatorFeeProtocolFee"
},
{
"name": "ReflectionFee"
}
]
}
},
{
"name": "HighReflectionFeeEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "liquidity_pool_id",
"type": "pubkey"
},
{
"name": "reflection_fee_amount",
"type": "u64"
},
{
"name": "total_reflection_fees",
"type": "u64"
}
]
}
},
{
"name": "LiquidityPoolAllowlist",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "swap",
"type": "u8"
},
{
"name": "remove_liquidity",
"type": "u8"
},
{
"name": "deposit_liquidity",
"type": "u8"
},
{
"name": "same_slot_trading",
"type": "u8"
},
{
"name": "update_creator_trading_fee",
"type": "u8"
},
{
"name": "padding1",
"type": {
"array": [
"u8",
2
]
}
}
]
}
},
{
"name": "LiquidityPoolFeatureFlags",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "sandwich_resistant_mode",
"type": "u8"
},
{
"name": "padding1",
"type": {
"array": [
"u8",
7
]
}
}
]
}
},
{
"name": "LiquidityPoolInfo",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "creator",
"type": "pubkey"
},
{
"name": "update_authority",
"type": "pubkey"
},
{
"name": "open_at",
"type": "u64"
},
{
"name": "created_at",
"type": "u64"
},
{
"name": "protocol_config_version",
"type": "u16"
},
{
"name": "r#type",
"type": "u8"
},
{
"name": "pool_authority_bump",
"type": "u8"
},
{
"name": "temp_sol_holder_bump",
"type": "u8"
},
{
"name": "_pad",
"type": {
"array": [
"u8",
3
]
}
}
]
}
},
{
"name": "LiquidityPoolLpTokenInfo",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "supply",
"type": {
"defined": {
"name": "LiquidityPoolLpTokenSupply"
}
}
},
{
"name": "decimals",
"type": "u8"
},
{
"name": "_pad",
"type": {
"array": [
"u8",
7
]
}
}
]
}
},
{
"name": "LiquidityPoolLpTokenSupply",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "initial",
"type": "u64"
},
{
"name": "total",
"type": "u64"
},
{
"name": "unlocked",
"type": "u64"
},
{
"name": "locked",
"type": "u64"
},
{
"name": "burnt",
"type": "u64"
}
]
}
},
{
"name": "LiquidityPoolMarketCapBasedFees",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "protocol_trading_fee",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
},
{
"name": "liquidity_provider_trading_fee",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
},
{
"name": "creator_trading_fee",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
},
{
"name": "creator_trading_fee_protocol_fee",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
},
{
"name": "reflection_trading_fee",
"type": {
"defined": {
"name": "FeeBrackets"
}
}
}
]
}
},
{
"name": "LiquidityPoolReserve",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "token_a",
"type": "u64"
},
{
"name": "token_b",
"type": "u64"
},
{
"name": "snapshot_slot",
"type": "u64"
},
{
"name": "snapshot_a",
"type": "u64"
},
{
"name": "snapshot_b",
"type": "u64"
},
{
"name": "accumulated_fee_per_lp_token",
"type": "u64"
},
{
"name": "initial_a",
"type": "u64"
},
{
"name": "initial_b",
"type": "u64"
},
{
"name": "leader_slot_window",
"type": "u8"
},
{
"name": "_pad",
"type": {
"array": [
"u8",
7
]
}
}
]
}
},
{
"name": "LiquidityPoolSlotOffsetBasedFees",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "protocol_trading_fee",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
},
{
"name": "liquidity_provider_trading_fee",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
},
{
"name": "creator_trading_fee",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
},
{
"name": "creator_trading_fee_protocol_fee",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
},
{
"name": "reflection_trading_fee",
"type": {
"defined": {
"name": "SlotFeeBrackets"
}
}
},
{
"name": "_pad",
"type": {
"array": [
"u8",
6
]
}
}
]
}
},
{
"name": "LiquidityPoolState",
"serialization": "bytemuck",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "info",
"type": {
"defined": {
"name": "LiquidityPoolInfo"
}
}
},
{
"name": "market_cap_based_fees",
"type": {
"defined": {
"name": "LiquidityPoolMarketCapBasedFees"
}
}
},
{
"name": "reserve",
"type": {
"defined": {
"name": "LiquidityPoolReserve"
}
}
},
{
"name": "lp_token",
"type": {
"defined": {
"name": "LiquidityPoolLpTokenInfo"
}
}
},
{
"name": "protocol_trading_fees",
"type": "u64"
},
{
"name": "creator_trading_fees",
"type": "u64"
},
{
"name": "creator_trading_fees_claimed_by_creator",
"type": "u64"
},
{
"name": "creator_trading_fees_claimed_by_others",
"type": "u64"
},
{
"name": "liquidity_provider_trading_fees",
"type": "u64"
},
{
"name": "creator_trading_fee_protocol_fees",
"type": "u64"
},
{
"name": "reflection_trading_fees",
"type": "u64"
},
{
"name": "created_at_slot",
"type": "u64"
},
{
"name": "trading_volume_usd",
"type": "f64"
},
{
"name": "creator_trading_fee_trading_volume_threshold",
"type": "f64"
},
{
"name": "creator_trading_fee_trading_volume_threshold_reached_unix_timestamp",
"type": "u64"
},
{
"name": "token_a_vault",
"type": "pubkey"
},
{
"name": "token_b_vault",
"type": "pubkey"
},
{
"name": "protocol_config",
"type": "pubkey"
},
{
"name": "key",
"type": "pubkey"
},
{
"name": "token_a",
"type": {
"defined": {
"name": "LiquidityPoolTokenInfo"
}
}
},
{
"name": "token_b",
"type": {
"defined": {
"name": "LiquidityPoolTokenInfo"
}
}
},
{
"name": "allowlist",
"type": {
"defined": {
"name": "LiquidityPoolAllowlist"
}
}
},
{
"name": "feature_flags",
"type": {
"defined": {
"name": "LiquidityPoolFeatureFlags"
}
}
},
{
"name": "taxable_side",
"type": "u8"
},
{
"name": "taxable_side_type",
"type": "u8"
},
{
"name": "creator_trading_fee_distribution",
"type": "u8"
},
{
"name": "creator_trading_fee_claim_status",
"type": "u8"
},
{
"name": "fee_configuration_mode",
"type": "u8"
},
{
"name": "is_migrated",
"type": "u8"
},
{
"name": "_pad",
"type": {
"array": [
"u8",
13
]
}
},
{
"name": "slot_offset_based_fees",
"type": {
"defined": {
"name": "LiquidityPoolSlotOffsetBasedFees"
}
}
},
{
"name": "creator_trading_fee_receiver",
"type": "pubkey"
}
]
}
},
{
"name": "LiquidityPoolTokenInfo",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "mint",
"type": "pubkey"
},
{
"name": "decimals",
"type": "u8"
},
{
"name": "owner",
"type": "pubkey"
}
]
}
},
{
"name": "LiquidityPoolType",
"repr": {
"kind": "c"
},
"type": {
"kind": "enum",
"variants": [
{
"name": "None"
},
{
"name": "Pro"
},
{
"name": "Standard"
}
]
}
},
{
"name": "MigrationEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "market_cap",
"type": "f64"
}
]
}
},
{
"name": "MsolTicketSolSpent",
"serialization": "bytemuck",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "cost_basis",
"type": "u64"
},
{
"name": "msol_unstaked",
"type": "u64"
}
]
}
},
{
"name": "ProtocolAdminState",
"type": {
"kind": "struct",
"fields": [
{
"name": "current_protocol_admin",
"type": "pubkey"
}
]
}
},
{
"name": "ProtocolConfig",
"serialization": "bytemuck",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "create_pool_fee",
"type": "u64"
},
{
"name": "initial_token_b_amount",
"type": "f64"
},
{
"name": "initial_token_a_amount",
"type": "u64"
},
{
"name": "unstaked_wsol_reserve",
"type": "u64"
},
{
"name": "total_sol_spent",
"type": "u64"
},
{
"name": "total_msol_received",
"type": "u64"
},
{
"name": "total_realized_profit",
"type": "u64"
},
{
"name": "pool_count",
"type": "u64"
},
{
"name": "max_supply_per_wallet",
"type": "u64"
},
{
"name": "creator_trading_fee_trading_volume_threshold",
"type": "f64"
},
{
"name": "market_cap_based_fees",
"type": {
"defined": {
"name": "LiquidityPoolMarketCapBasedFees"
}
}
},
{
"name": "buffer_bps",
"type": "u16"
},
{
"name": "auto_staking_threshold_bps",
"type": "u16"
},
{
"name": "version",
"type": "u16"
},
{
"name": "protocol_config_state_bump",
"type": "u8"
},
{
"name": "allow_create_pool",
"type": "u8"
},
{
"name": "supported_pool_type",
"type": "u8"
},
{
"name": "default_leader_slot_window",
"type": "u8"
},
{
"name": "auto_staking_enabled",
"type": "u8"
},
{
"name": "leader_slot_window",
"type": "u8"
},
{
"name": "sandwich_resistence_enabled",
"type": "u8"
},
{
"name": "token_a_decimals",
"type": "u8"
},
{
"name": "migration_market_cap_threshold",
"type": "u16"
},
{
"name": "_pad",
"type": {
"array": [
"u8",
8
]
}
},
{
"name": "max_creator_trading_fee",
"type": "u32"
},
{
"name": "slot_offset_based_fees",
"type": {
"defined": {
"name": "LiquidityPoolSlotOffsetBasedFees"
}
}
}
]
}
},
{
"name": "ProtocolConfigParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "create_pool_fee",
"type": "u64"
},
{
"name": "allow_create_pool",
"type": "bool"
},
{
"name": "supported_pool_type",
"type": {
"defined": {
"name": "LiquidityPoolType"
}
}
},
{
"name": "market_cap_based_fees",
"type": {
"defined": {
"name": "LiquidityPoolMarketCapBasedFees"
}
}
},
{
"name": "initial_token_b_amount",
"type": "f64"
},
{
"name": "initial_token_a_amount",
"type": "u64"
},
{
"name": "default_leader_slot_window",
"type": "u8"
},
{
"name": "auto_staking_enabled",
"type": "bool"
},
{
"name": "sandwich_resistence_enabled",
"type": "bool"
},
{
"name": "buffer_bps",
"type": "u16"
},
{
"name": "auto_staking_threshold_bps",
"type": "u16"
},
{
"name": "token_a_decimals",
"type": "u8"
},
{
"name": "max_creator_trading_fee",
"type": "u32"
},
{
"name": "max_supply_per_wallet",
"type": "u64"
},
{
"name": "creator_trading_fee_trading_volume_threshold",
"type": "f64"
},
{
"name": "migration_market_cap_threshold",
"type": "u16"
}
]
}
},
{
"name": "ProtocolOwnerState",
"type": {
"kind": "struct",
"fields": [
{
"name": "current_protocol_owner",
"type": "pubkey"
}
]
}
},
{
"name": "RemoveLiquidityParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "lp_tokens_to_burn",
"type": "u64"
},
{
"name": "min_token_a",
"type": "u64"
},
{
"name": "min_token_b",
"type": "u64"
}
]
}
},
{
"name": "SellParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "amount_in",
"type": "u64"
},
{
"name": "minimum_amount_out",
"type": "u64"
},
{
"name": "encoded_user_defined_event_data",
"type": "string"
}
]
}
},
{
"name": "SlotFeeBracket",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "buy_fee_bps",
"type": "u16"
},
{
"name": "sell_fee_bps",
"type": "u16"
},
{
"name": "slot_offset_upperbound",
"type": "u16"
}
]
}
},
{
"name": "SlotFeeBrackets",
"repr": {
"kind": "c"
},
"type": {
"kind": "struct",
"fields": [
{
"name": "brackets",
"type": {
"array": [
{
"defined": {
"name": "SlotFeeBracket"
}
},
42
]
}
},
{
"name": "max_slot_offset",
"type": "u16"
},
{
"name": "max_fee_bps",
"type": "u16"
},
{
"name": "count",
"type": "u8"
},
{
"name": "enabled",
"type": "u8"
},
{
"name": "_padding",
"type": {
"array": [
"u8",
4
]
}
}
]
}
},
{
"name": "SlotFeeBracketsParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "brackets",
"type": {
"vec": {
"defined": {
"name": "SlotFeeBracket"
}
}
}
},
{
"name": "max_slot_offset",
"type": "u16"
},
{
"name": "max_fee_bps",
"type": "u16"
},
{
"name": "count",
"type": "u8"
},
{
"name": "enabled",
"type": "u8"
}
]
}
},
{
"name": "TradeEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "base_reserve",
"type": "u64"
},
{
"name": "quote_reserve",
"type": "u64"
},
{
"name": "total_creator_trading_fees",
"type": "u64"
},
{
"name": "total_fee_paid",
"type": "u64"
},
{
"name": "price_sol_usd",
"type": "f64"
},
{
"name": "base_in",
"type": "u64"
},
{
"name": "base_out",
"type": "u64"
},
{
"name": "quote_in",
"type": "u64"
},
{
"name": "quote_out",
"type": "u64"
}
]
}
},
{
"name": "UserDefinedEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "liquidity_pool_id",
"type": "pubkey"
},
{
"name": "instruction_name",
"type": "string"
},
{
"name": "base64_data",
"type": "string"
}
]
}
},
{
"name": "UserLpPosition",
"type": {
"kind": "struct",
"fields": [
{
"name": "pool",
"type": "pubkey"
},
{
"name": "user",
"type": "pubkey"
},
{
"name": "lp_token_balance",
"type": "u64"
},
{
"name": "reward_debt",
"type": "u64"
},
{
"name": "pending_fees",
"type": "u64"
},
{
"name": "bump",
"type": "u8"
}
]
}
}
]
}
```
# Quickstart
Source: https://docs.heaven.xyz/sdk/quickstart/api
Quickstart guide for integrating with Heaven using the REST API. No SDK required — just HTTP requests.
Heaven's REST API lets you build transactions server-side and sign them client-side. All endpoints return Base64-encoded Solana transactions that you decode, sign, and submit.
**Base URL:** `https://tx.api.heaven.xyz`
All transaction endpoints return unsigned transactions. Your app is responsible for signing with the user's wallet and submitting to the Solana network.
## Standard Pools
Standard pools use Heaven's one-click launch flow — create a new token and pool in a single transaction.
Before buying, get a quote to see how many tokens you'll receive for a given SOL amount.
```bash curl icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/quote/buy \
-H "Content-Type: application/json" \
-d '{
"config_version": 1,
"mint": "88aUGeGXFNaEyzL48fkzSPWUPhJr3gWrMDD8EH8tCb1",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"max_sol_spend": 0.1,
"slippage_bps": 50
}'
```
Response:
```json theme={null}
{
"config_version": 1,
"mint": "88aUGeGXFNaEyzL48fkzSPWUPhJr3gWrMDD8EH8tCb1",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"max_sol_spend": 0.1,
"slippage_bps": 50,
"amount_out": 1234567890,
"amount_out_ui": 1234.56789,
"minimum_out": 1228395551,
"minimum_out_ui": 1228.395551,
"fee": 100000,
"fee_pct": 0.01
}
```
Pass the full quote response to build a transaction.
```bash curl icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/tx/buy \
-H "Content-Type: application/json" \
-d '{
"payer": "YOUR_WALLET_PUBKEY",
"encoded_user_defined_event_data": "",
"quote_response": { ... the full quote response ... },
"compute_unit_limit": 400000,
"compute_unit_price": 2000000
}'
```
Response:
```json theme={null}
{
"tx": "Base64EncodedTransaction..."
}
```
Decode the Base64 transaction, sign it with the payer's wallet, and submit to Solana.
```typescript TypeScript theme={null}
import { VersionedTransaction } from "@solana/web3.js";
import bs58 from "bs58";
// Decode the transaction
const txBytes = Buffer.from(response.tx, "base64");
const tx = VersionedTransaction.deserialize(txBytes);
// Sign with the user's wallet
tx.sign([payerKeypair]);
// Submit
const signature = await connection.sendTransaction(tx);
await connection.confirmTransaction(signature);
```
```rust Rust theme={null}
use base64::prelude::*;
use solana_sdk::transaction::VersionedTransaction;
let tx_bytes = BASE64_STANDARD.decode(&response.tx).unwrap();
let mut tx: VersionedTransaction = bincode::deserialize(&tx_bytes).unwrap();
// Update blockhash and sign
tx.message.set_recent_blockhash(rpc_client.get_latest_blockhash().await.unwrap());
tx.signatures[0] = payer.sign_message(&tx.message.serialize());
// Submit
rpc_client.send_and_confirm_transaction(&tx).await.unwrap();
```
Selling follows the same pattern — quote first, then build the transaction.
```bash curl icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/quote/sell \
-H "Content-Type: application/json" \
-d '{
"config_version": 1,
"mint": "88aUGeGXFNaEyzL48fkzSPWUPhJr3gWrMDD8EH8tCb1",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"amount_in_ui": 1234.56789,
"slippage_bps": 50
}'
```
Then pass the response to `/tx/sell` to build the transaction.
## Pro Pools
Pro Pools let you bring any existing SPL token onto Heaven's AMM. See [Pro Pools](/pro-pools) for a full overview.
Provide your existing token mint, initial liquidity amounts, and optional creator fee/feature configuration.
```bash curl icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/tx/pro/create \
-H "Content-Type: application/json" \
-d '{
"payer": "YOUR_WALLET_PUBKEY",
"creator": "YOUR_WALLET_PUBKEY",
"encoded_user_defined_event_data": "",
"config_version": 3,
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"mint": "YOUR_TOKEN_MINT_ADDRESS",
"initial_token_a_amount": 500000000000,
"initial_token_b_amount": 5000000000,
"lut_address": "YOUR_LUT_ADDRESS",
"features": {
"enable_swap": true,
"enable_deposit_liquidity": true,
"enable_withdraw_liquidity": true,
"enable_sandwich_resistant_mode": true
},
"creator_trading_fee": [
{ "market_cap_upper_bound": 100000000000, "buy_fee_bps": 200, "sell_fee_bps": 200 },
{ "market_cap_upper_bound": 9223372036854775807, "buy_fee_bps": 100, "sell_fee_bps": 100 }
],
"creator_slot_trading_fee": {
"brackets": [
{ "buy_fee_bps": 5000, "sell_fee_bps": 5000, "slot_offset_upperbound": 5 },
{ "buy_fee_bps": 1000, "sell_fee_bps": 1000, "slot_offset_upperbound": 15 }
],
"max_slot_offset": 15,
"max_fee_bps": 5000,
"enabled": true
}
}'
```
Response:
```json theme={null}
{
"tx": "Base64EncodedTransaction...",
"pool": "POOL_STATE_ADDRESS"
}
```
Save the `pool` address from the response — you'll need it for all future interactions with this pool.
Pro pool buys require two calls: quote, then build the transaction. Both need the `pool` address.
```bash curl icon=terminal theme={null}
# Step 1: Get a quote
curl -X POST https://tx.api.heaven.xyz/quote/pro/buy \
-H "Content-Type: application/json" \
-d '{
"config_version": 3,
"mint": "YOUR_TOKEN_MINT_ADDRESS",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"max_sol_spend": 1.0,
"slippage_bps": 50,
"pool": "POOL_STATE_ADDRESS"
}'
```
```bash curl icon=terminal theme={null}
# Step 2: Build the transaction
curl -X POST https://tx.api.heaven.xyz/tx/pro/buy \
-H "Content-Type: application/json" \
-d '{
"payer": "YOUR_WALLET_PUBKEY",
"encoded_user_defined_event_data": "",
"quote_response": { ... the full quote response ... },
"pool": "POOL_STATE_ADDRESS",
"compute_unit_limit": 400000,
"compute_unit_price": 2000000
}'
```
Same two-step flow as buying.
```bash curl icon=terminal theme={null}
# Step 1: Get a quote
curl -X POST https://tx.api.heaven.xyz/quote/pro/sell \
-H "Content-Type: application/json" \
-d '{
"config_version": 3,
"mint": "YOUR_TOKEN_MINT_ADDRESS",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"amount_in_ui": 1000.0,
"slippage_bps": 50,
"pool": "POOL_STATE_ADDRESS"
}'
```
Then pass the response to `/tx/pro/sell`.
Deposit tokens and SOL to earn LP tokens and trading fees.
```bash curl icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/tx/pro/add-liquidity \
-H "Content-Type: application/json" \
-d '{
"payer": "YOUR_WALLET_PUBKEY",
"mint": "YOUR_TOKEN_MINT_ADDRESS",
"config_version": 3,
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"pool": "POOL_STATE_ADDRESS",
"max_token_a": 100000000000,
"max_token_b": 1000000000,
"min_lp_tokens": 0,
"compute_unit_limit": 400000,
"compute_unit_price": 2000000
}'
```
The actual deposited amounts will be proportional to the pool's current ratio. Set `min_lp_tokens` above 0 to protect against slippage.
Query your LP position at any time.
```bash curl icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/data/lp-balance \
-H "Content-Type: application/json" \
-d '{
"pool": "POOL_STATE_ADDRESS",
"user": "YOUR_WALLET_PUBKEY",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o"
}'
```
Response:
```json theme={null}
{
"lp_token_balance": 50000000,
"reward_debt": 0,
"pending_fees": 12345,
"lp_position_address": "LP_POSITION_PDA",
"exists": true
}
```
As the pool creator, you can toggle features and update fees.
```bash Toggle swap off icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/tx/pro/toggle-swap \
-H "Content-Type: application/json" \
-d '{
"pool": "POOL_STATE_ADDRESS",
"payer": "CREATOR_WALLET_PUBKEY",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"enabled": false,
"compute_unit_limit": 200000,
"compute_unit_price": 2000000
}'
```
```bash Set creator fee brackets icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/tx/pro/set-market-cap-creator-fee \
-H "Content-Type: application/json" \
-d '{
"pool": "POOL_STATE_ADDRESS",
"payer": "CREATOR_WALLET_PUBKEY",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
"brackets": [
{ "market_cap_upper_bound": 100000000000, "buy_fee_bps": 200, "sell_fee_bps": 200 },
{ "market_cap_upper_bound": 9223372036854775807, "buy_fee_bps": 50, "sell_fee_bps": 50 }
],
"compute_unit_limit": 200000,
"compute_unit_price": 2000000
}'
```
Other creator endpoints: `/tx/pro/toggle-deposit`, `/tx/pro/toggle-withdraw`, `/tx/pro/set-slot-creator-fee`, `/tx/pro/update-creator-fee-receiver`
## Data endpoints
Fetch pool information without building transactions.
```bash Get pool info icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/data/pool-info \
-H "Content-Type: application/json" \
-d '{
"mint": "88aUGeGXFNaEyzL48fkzSPWUPhJr3gWrMDD8EH8tCb1",
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o"
}'
```
```bash Get protocol config icon=terminal theme={null}
curl -X POST https://tx.api.heaven.xyz/data/protocol-config-state \
-H "Content-Type: application/json" \
-d '{
"version": 1,
"program_id": "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o"
}'
```
## Next steps
* See the full [API reference](/api-reference) for all endpoints and parameters
* Learn about [Pro Pools](/pro-pools) for custom pool configuration
# Standardized
Source: https://docs.heaven.xyz/standardized
Standardization is a big part of what makes trading on Solana glorious. It is the opposite of diving into an ERC contract to check if it's a honeypot or when the LP taxes will drop.
All launches on Heaven are deployed with the exact same parameters. The only thing customizable will be the token logo, name, ticker, description, and social links.
In our view, it's a way more useful quest to find the best set of global parameters to take ideas to market than it is to let developers customize everything. Somewhere out there, there is an LP ratio, opening mc, creator tax, protocol tax, etc, that will work for the deployment of 99.9% of ideas. It is our intention to find that blend, and we feel that we're already off to a great start.
# All-in-one
Source: https://docs.heaven.xyz/together
> *“People who are really serious about software should make their own hardware” - Alan Kay, 1982*
**Similarly...**
> *"Launchpads who are really serious about deploying great ideas should build their own AMM's" - GCR (not true)*
There is a precision that you can get to with your own AMM that you simply cannot achieve as a Meteora or Raydium wrapper. That's why we built both. The AMM, and the wrapper.
Heaven's AMM serves as an extension of our launchpad. Any token on Heaven's dex needs to be deployed through our launchpad with no exceptions. It is a closed container.
This means that when you trade a token and see Heaven as the dex, you know that it's gone through the "Heaven gauntlet". We don't want to be generalists that house stablecoin pools or existing tokens. We want to be the unequivocal best place to launch great new ideas into the world.
# Who did we build this for?
Source: https://docs.heaven.xyz/who
### For projects
In the future, it will be as easy to create novel software as it is to write a post on X. In a world where it takes no time or money to build a great product, a company's success will ultimately be predicated on their distribution and ability to communicate.
It will eventually become the norm for builders to launch a coin at the outset of their project. Why? Simply put, coins solve most of the problems that the builders of tomorrow will face.
Launching a coin provides projects with:
1. Immediate initial funding through the trading fees on their launch.
2. Instant global feedback and attention on their idea from engaged speculators.
3. Far better product retention by turning users into owners.
Heaven will pioneer this future into existence. By launching with a [100% flywheel](/god), and equipping projects who launch on heaven with [their own flywheels](/flywheel), we're positioned ahead of the inevitable shift towards more onchain funding and distribution of net new assets.
But companies are only one part of Heaven's vision. We believe it is imperative for Heaven to also become the go-to place to deploy memes.
### For memes
During the "AI meta" of 2024, we saw a world in which memes and projects began to merge together. Truth terminal started tweeting, someone made a coin, and a new narrative was formed. From that moment, an entire spectrum of projects were birthed. From slop reply bots, to novel open-source agentic frameworks.
It quickly became clear that we had moved into a new landscape altogether. One where the line between a meme and a legitimate project was permanently blurred. In a world in which any idea can be made manifest immediately, memetic energy will be a core tenet of every company.
That's why Heaven is designed to house tokens for both memes, and companies. Because we believe the line between them will continue to blur.
We do this through using our [permissioned fee structure](/permissioned).
# Why did we build this?
Source: https://docs.heaven.xyz/why
The bonding curve is an incredible mechanism to bootstrap ideas for free and to launch them out into the world. It also has *literally no moat*. Since the development of pump.fun, there have been hundreds of launchpads who have cloned their mechanism.
Meteora and Raydium have made it easy for anyone to spin up a launchpad in a few days. This "leasing" model has created a much more cabal environment, as fragmented launchpads inject into their ecosystem coins to try to stick out and get noticed. At times it feels as though much of the hard work that pump did to dethrone the cabal and low float vc launches is slowly unravelling.
**Heaven is a call back to unity. A fresh start.** We are not another AMM wrapper, we are an AMM *and* a wrapper. A full stack ecosystem to launch ideas into the world with [100% of protocol revenues flowing back into our token \$LIGHT, forever](/light).
We're here to take on the world's largest challenges for new asset creation. Building our own AMM from scratch offers us far more precision to do so. How do we *really* tackle snipers, and bundling, and pvp, while still preserving the raw free market nature of the trenches, and the anonymity of onchain?
**Heaven is a home for projects, memes, and art. A single place for great ideas to live.**