2026-01-23 16:47:55 +08:00
{
"address" : "LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj" ,
"metadata" : {
"name" : "raydium_launchpad" ,
"version" : "0.2.0" ,
"spec" : "0.1.0" ,
"description" : "Created with Anchor"
},
"instructions" : [
{
"name" : "buy_exact_in" ,
"docs" : [
"Use the given amount of quote tokens to purchase base tokens." ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `amount_in` - Amount of quote token to purchase" ,
"* `minimum_amount_out` - Minimum amount of base token to receive (slippage protection)" ,
"* `share_fee_rate` - Fee rate for the share" ,
""
],
"discriminator" : [
250 ,
234 ,
13 ,
123 ,
213 ,
156 ,
19 ,
236
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The user performing the swap operation" ,
"Must sign the transaction and pay for fees"
],
"writable" : true ,
"signer" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Used to read protocol fee rates and curve type"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform-wide settings" ,
"Used to read platform fee rate"
]
},
{
"name" : "pool_state" ,
"docs" : [
"The pool state account where the swap will be performed" ,
"Contains current pool parameters and balances"
],
"writable" : true
},
{
"name" : "user_base_token" ,
"docs" : [
"The user's token account for base tokens (tokens being bought)" ,
"Will receive the output tokens after the swap"
],
"writable" : true
},
{
"name" : "user_quote_token" ,
"docs" : [
"The user's token account for quote tokens (tokens being sold)" ,
"Will be debited for the input amount"
],
"writable" : true
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be debited to send tokens to the user"
],
"writable" : true
},
{
"name" : "quote_vault" ,
"docs" : [
"The pool's vault for quote tokens" ,
"Will receive the input tokens from the user"
],
"writable" : true
},
{
"name" : "base_token_mint" ,
"docs" : [
"The mint of the base token" ,
"Used for transfer fee calculations if applicable"
]
},
{
"name" : "quote_token_mint" ,
"docs" : [
"The mint of the quote token"
]
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for base token transfers"
]
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for quote token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "amount_in" ,
"type" : "u64"
},
{
"name" : "minimum_amount_out" ,
"type" : "u64"
},
{
"name" : "share_fee_rate" ,
"type" : "u64"
}
]
},
{
"name" : "buy_exact_out" ,
"docs" : [
"Use quote tokens to purchase the given amount of base tokens." ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `amount_out` - Amount of base token to receive" ,
"* `maximum_amount_in` - Maximum amount of quote token to purchase (slippage protection)" ,
"* `share_fee_rate` - Fee rate for the share"
],
"discriminator" : [
24 ,
211 ,
116 ,
40 ,
105 ,
3 ,
153 ,
56
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The user performing the swap operation" ,
"Must sign the transaction and pay for fees"
],
"writable" : true ,
"signer" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Used to read protocol fee rates and curve type"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform-wide settings" ,
"Used to read platform fee rate"
]
},
{
"name" : "pool_state" ,
"docs" : [
"The pool state account where the swap will be performed" ,
"Contains current pool parameters and balances"
],
"writable" : true
},
{
"name" : "user_base_token" ,
"docs" : [
"The user's token account for base tokens (tokens being bought)" ,
"Will receive the output tokens after the swap"
],
"writable" : true
},
{
"name" : "user_quote_token" ,
"docs" : [
"The user's token account for quote tokens (tokens being sold)" ,
"Will be debited for the input amount"
],
"writable" : true
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be debited to send tokens to the user"
],
"writable" : true
},
{
"name" : "quote_vault" ,
"docs" : [
"The pool's vault for quote tokens" ,
"Will receive the input tokens from the user"
],
"writable" : true
},
{
"name" : "base_token_mint" ,
"docs" : [
"The mint of the base token" ,
"Used for transfer fee calculations if applicable"
]
},
{
"name" : "quote_token_mint" ,
"docs" : [
"The mint of the quote token"
]
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for base token transfers"
]
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for quote token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "amount_out" ,
"type" : "u64"
},
{
"name" : "maximum_amount_in" ,
"type" : "u64"
},
{
"name" : "share_fee_rate" ,
"type" : "u64"
}
]
},
{
"name" : "claim_creator_fee" ,
"docs" : [
"Claim the fee from the exclusive creator fee vault." ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
26 ,
97 ,
138 ,
203 ,
132 ,
171 ,
141 ,
252
],
"accounts" : [
{
"name" : "creator" ,
"docs" : [
"The pool creator"
],
"writable" : true ,
"signer" : true
},
{
"name" : "fee_vault_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
99 ,
114 ,
101 ,
97 ,
116 ,
111 ,
114 ,
95 ,
102 ,
101 ,
101 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "creator_fee_vault" ,
"docs" : [
"The creator fee vault"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "creator"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "recipient_token_account" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "creator"
},
{
"kind" : "account" ,
"path" : "token_program"
},
{
"kind" : "account" ,
"path" : "quote_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" : "quote_mint" ,
"docs" : [
"The mint for the quote token"
]
},
{
"name" : "token_program" ,
"docs" : [
"SPL Token program for the quote token"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "associated_token_program" ,
"docs" : [
"Required for associated token program"
],
"address" : "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
}
],
"args" : []
},
{
"name" : "claim_platform_fee" ,
"docs" : [
"Claim platform fee" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
156 ,
39 ,
208 ,
135 ,
76 ,
237 ,
61 ,
72
],
"accounts" : [
{
"name" : "platform_fee_wallet" ,
"docs" : [
"Only the wallet stored in platform_config can collect platform fees"
],
"writable" : true ,
"signer" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault and mint operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true
},
{
"name" : "platform_config" ,
"docs" : [
"The platform config account"
]
},
{
"name" : "quote_vault" ,
"writable" : true
},
{
"name" : "recipient_token_account" ,
"docs" : [
"The address that receives the collected quote token fees"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "platform_fee_wallet"
},
{
"kind" : "account" ,
"path" : "token_program"
},
{
"kind" : "account" ,
"path" : "quote_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" : "quote_mint" ,
"docs" : [
"The mint of quote token vault"
]
},
{
"name" : "token_program" ,
"docs" : [
"SPL program for input token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "associated_token_program" ,
"docs" : [
"Required for associated token program"
],
"address" : "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
}
],
"args" : []
},
{
"name" : "claim_platform_fee_from_vault" ,
"docs" : [
"Claim the fee from the exclusive platform fee vault." ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
117 ,
241 ,
198 ,
168 ,
248 ,
218 ,
80 ,
29
],
"accounts" : [
{
"name" : "platform_fee_wallet" ,
"docs" : [
"Only the wallet stored in platform_config can collect platform fees"
],
"writable" : true ,
"signer" : true
},
{
"name" : "fee_vault_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
102 ,
101 ,
101 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "platform_config" ,
"docs" : [
"The platform config account"
]
},
{
"name" : "platform_fee_vault" ,
"docs" : [
"The platform fee vault"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "platform_config"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "recipient_token_account" ,
"docs" : [
"The address that receives the collected quote token fees"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "platform_fee_wallet"
},
{
"kind" : "account" ,
"path" : "token_program"
},
{
"kind" : "account" ,
"path" : "quote_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" : "quote_mint" ,
"docs" : [
"The mint of quote token vault"
]
},
{
"name" : "token_program" ,
"docs" : [
"SPL program for input token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "associated_token_program" ,
"docs" : [
"Required for associated token program"
],
"address" : "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
}
],
"args" : []
},
{
"name" : "claim_vested_token" ,
"docs" : [
"Claim vested token" ,
"# Arguments"
],
"discriminator" : [
49 ,
33 ,
104 ,
30 ,
189 ,
157 ,
79 ,
35
],
"accounts" : [
{
"name" : "beneficiary" ,
"docs" : [
"The beneficiary of the vesting account"
],
"writable" : true ,
"signer" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault and mint operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true
},
{
"name" : "vesting_record" ,
"docs" : [
"The vesting record account"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
101 ,
115 ,
116 ,
105 ,
110 ,
103
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "beneficiary"
}
]
}
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be debited to send tokens to the user"
],
"writable" : true
},
{
"name" : "user_base_token" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "beneficiary"
},
{
"kind" : "account" ,
"path" : "base_token_program"
},
{
"kind" : "account" ,
"path" : "base_token_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" : "base_token_mint" ,
"docs" : [
"The mint for the base token (token being sold)" ,
"Created in this instruction with specified decimals"
]
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for the base token" ,
"Must be the standard Token program"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "associated_token_program" ,
"docs" : [
"Required for associated token program"
],
"address" : "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
}
],
"args" : []
},
2026-08-13 05:53:20 +08:00
{
"name" : "close_platform_global_access" ,
"docs" : [
"Close a platform's permission to use a global config."
],
"discriminator" : [
123 ,
180 ,
184 ,
129 ,
111 ,
185 ,
187 ,
59
],
"accounts" : [
{
"name" : "owner" ,
"signer" : true ,
"address" : "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ"
},
{
"name" : "global_config"
},
{
"name" : "platform_config"
},
{
"name" : "platform_global_access" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
103 ,
108 ,
111 ,
98 ,
97 ,
108 ,
95 ,
97 ,
99 ,
99 ,
101 ,
115 ,
115
]
},
{
"kind" : "account" ,
"path" : "platform_config"
},
{
"kind" : "account" ,
"path" : "global_config"
}
]
}
}
],
"args" : []
},
2026-01-23 16:47:55 +08:00
{
"name" : "collect_fee" ,
"docs" : [
"Collects accumulated fees from the pool" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
60 ,
173 ,
247 ,
103 ,
4 ,
93 ,
130 ,
48
],
"accounts" : [
{
"name" : "owner" ,
"docs" : [
"Only protocol_fee_owner saved in global_config can collect protocol fee now"
],
"signer" : true
},
{
"name" : "authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Pool state stores accumulated protocol fee amount"
],
"writable" : true
},
{
"name" : "global_config" ,
"docs" : [
"Global config account stores owner"
]
},
{
"name" : "quote_vault" ,
"docs" : [
"The address that holds pool tokens for quote token"
],
"writable" : true
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint of quote token vault"
]
},
{
"name" : "recipient_token_account" ,
"docs" : [
"The address that receives the collected quote token fees"
],
"writable" : true
},
{
"name" : "token_program" ,
"docs" : [
"SPL program for input token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"args" : []
},
{
"name" : "collect_migrate_fee" ,
"docs" : [
"Collects migrate fees from the pool" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
255 ,
186 ,
150 ,
223 ,
235 ,
118 ,
201 ,
186
],
"accounts" : [
{
"name" : "owner" ,
"docs" : [
"Only migrate_fee_owner saved in global_config can collect migrate fee now"
],
"signer" : true
},
{
"name" : "authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Pool state stores accumulated protocol fee amount"
],
"writable" : true
},
{
"name" : "global_config" ,
"docs" : [
"Global config account stores owner"
]
},
{
"name" : "quote_vault" ,
"docs" : [
"The address that holds pool tokens for quote token"
],
"writable" : true
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint of quote token vault"
]
},
{
"name" : "recipient_token_account" ,
"docs" : [
"The address that receives the collected quote token fees"
],
"writable" : true
},
{
"name" : "token_program" ,
"docs" : [
"SPL program for input token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"args" : []
},
{
"name" : "create_config" ,
"docs" : [
"Creates a new configuration" ,
"# Arguments" ,
"" ,
"* `ctx` - The accounts needed by instruction" ,
"* `curve_type` - The type of bonding curve (0: ConstantProduct)" ,
"* `index` - The index of config, there may be multiple config with the same curve type." ,
"* `trade_fee_rate` - Trade fee rate, must be less than RATE_DENOMINATOR_VALUE" ,
""
],
"discriminator" : [
201 ,
207 ,
243 ,
114 ,
75 ,
111 ,
47 ,
189
],
"accounts" : [
{
"name" : "owner" ,
"docs" : [
"The protocol owner/admin account" ,
"Must match the predefined admin address" ,
"Has authority to create and modify protocol configurations"
],
"writable" : true ,
"signer" : true ,
"address" : "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ"
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account that stores protocol-wide settings" ,
"PDA generated using GLOBAL_CONFIG_SEED, quote token mint, and curve type" ,
"Stores fee rates and protocol parameters"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
103 ,
108 ,
111 ,
98 ,
97 ,
108 ,
95 ,
99 ,
111 ,
110 ,
102 ,
105 ,
103
]
},
{
"kind" : "account" ,
"path" : "quote_token_mint"
},
{
"kind" : "arg" ,
"path" : "curve_type"
},
{
"kind" : "arg" ,
"path" : "index"
}
]
}
},
{
"name" : "quote_token_mint" ,
"docs" : [
"The mint address of the quote token (token used for buying)" ,
"This will be the standard token used for all pools with this config"
]
},
{
"name" : "protocol_fee_owner" ,
"docs" : [
"Account that will receive protocol fees"
]
},
{
"name" : "migrate_fee_owner" ,
"docs" : [
"Account that will receive migrate fees"
]
},
{
"name" : "migrate_to_amm_wallet" ,
"docs" : [
"The control wallet address for migrating to amm"
]
},
{
"name" : "migrate_to_cpswap_wallet" ,
"docs" : [
"The control wallet address for migrating to cpswap"
]
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
}
],
"args" : [
{
"name" : "curve_type" ,
"type" : "u8"
},
{
"name" : "index" ,
"type" : "u16"
},
{
"name" : "migrate_fee" ,
"type" : "u64"
},
{
"name" : "trade_fee_rate" ,
"type" : "u64"
}
]
},
{
"name" : "create_platform_config" ,
"docs" : [
"Create platform config account" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"# Fields" ,
"* `fee_rate` - Fee rate of the platform" ,
"* `name` - Name of the platform" ,
"* `web` - Website of the platform" ,
"* `img` - Image link of the platform" ,
""
],
"discriminator" : [
176 ,
90 ,
196 ,
175 ,
253 ,
113 ,
220 ,
20
],
"accounts" : [
{
"name" : "platform_admin" ,
"docs" : [
"The account paying for the initialization costs"
],
"writable" : true ,
"signer" : true
},
{
"name" : "platform_fee_wallet"
},
{
"name" : "platform_nft_wallet"
},
{
"name" : "platform_config" ,
"docs" : [
"The platform config account"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
99 ,
111 ,
110 ,
102 ,
105 ,
103
]
},
{
"kind" : "account" ,
"path" : "platform_admin"
}
]
}
},
{
"name" : "cpswap_config"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "transfer_fee_extension_authority"
},
{
"name" : "platform_vesting_wallet"
}
],
"args" : [
{
"name" : "platform_params" ,
"type" : {
"defined" : {
"name" : "PlatformParams"
}
}
}
]
},
2026-08-13 05:53:20 +08:00
{
"name" : "create_platform_global_access" ,
"docs" : [
"Create a platform permission to use a global config when authorization is enabled."
],
"discriminator" : [
162 ,
91 ,
146 ,
199 ,
93 ,
133 ,
234 ,
237
],
"accounts" : [
{
"name" : "owner" ,
"writable" : true ,
"signer" : true ,
"address" : "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ"
},
{
"name" : "global_config"
},
{
"name" : "platform_config"
},
{
"name" : "platform_global_access" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
103 ,
108 ,
111 ,
98 ,
97 ,
108 ,
95 ,
97 ,
99 ,
99 ,
101 ,
115 ,
115
]
},
{
"kind" : "account" ,
"path" : "platform_config"
},
{
"kind" : "account" ,
"path" : "global_config"
}
]
}
},
{
"name" : "system_program" ,
"address" : "11111111111111111111111111111111"
}
],
"args" : []
},
2026-01-23 16:47:55 +08:00
{
"name" : "create_platform_vesting_account" ,
"docs" : [
"Create vesting account" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `share` - The share amount of base token to be vested" ,
""
],
"discriminator" : [
146 ,
71 ,
173 ,
69 ,
98 ,
19 ,
15 ,
106
],
"accounts" : [
{
"name" : "platform_vesting_wallet" ,
"docs" : [
"The account paying for the initialization costs" ,
"This can be any account with sufficient SOL to cover the transaction"
],
"writable" : true ,
"signer" : true
},
{
"name" : "beneficiary" ,
"docs" : [
"The beneficiary is used to receive the allocated linear release of tokens." ,
"Once this account is set, it cannot be modified, so please ensure the validity of this account," ,
"otherwise, the unlocked tokens will not be claimable."
],
"writable" : true
},
{
"name" : "platform_config" ,
"docs" : [
"Platform config account to be changed"
]
},
{
"name" : "pool_state" ,
"docs" : [
"The pool state account"
],
"writable" : true
},
{
"name" : "platform_vesting_record" ,
"docs" : [
"The vesting record account"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
101 ,
115 ,
116 ,
105 ,
110 ,
103
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "beneficiary"
}
]
}
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
}
],
"args" : []
},
{
"name" : "create_vesting_account" ,
"docs" : [
"Create vesting account" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `share` - The share amount of base token to be vested" ,
""
],
"discriminator" : [
129 ,
178 ,
2 ,
13 ,
217 ,
172 ,
230 ,
218
],
"accounts" : [
{
"name" : "creator" ,
"docs" : [
"The account paying for the initialization costs" ,
"This can be any account with sufficient SOL to cover the transaction"
],
"writable" : true ,
"signer" : true
},
{
"name" : "beneficiary" ,
"docs" : [
"The beneficiary is used to receive the allocated linear release of tokens." ,
"Once this account is set, it cannot be modified, so please ensure the validity of this account," ,
"otherwise, the unlocked tokens will not be claimable."
],
"writable" : true
},
{
"name" : "pool_state" ,
"docs" : [
"The pool state account"
],
"writable" : true
},
{
"name" : "vesting_record" ,
"docs" : [
"The vesting record account"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
101 ,
115 ,
116 ,
105 ,
110 ,
103
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "beneficiary"
}
]
}
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
}
],
"args" : [
{
"name" : "share_amount" ,
"type" : "u64"
}
]
},
{
"name" : "initialize" ,
"docs" : [
"Initializes a new trading pool" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts containing pool and token information" ,
""
],
"discriminator" : [
175 ,
175 ,
109 ,
31 ,
13 ,
152 ,
155 ,
237
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The account paying for the initialization costs" ,
"This can be any account with sufficient SOL to cover the transaction"
],
"writable" : true ,
"signer" : true
},
{
"name" : "creator"
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Includes settings like quote token mint and fee parameters"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform info" ,
"Includes settings like the fee_rate, name, web, img of the platform"
]
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault and mint operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108
]
},
{
"kind" : "account" ,
"path" : "base_mint"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "base_mint" ,
"docs" : [
"The mint for the base token (token being sold)" ,
"Created in this instruction with specified decimals"
],
"writable" : true ,
"signer" : true
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint for the quote token (token used to buy)" ,
"Must match the quote_mint specified in global config"
]
},
{
"name" : "base_vault" ,
"docs" : [
"Token account that holds the pool's base tokens" ,
"PDA generated using POOL_VAULT_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "base_mint"
}
]
}
},
{
"name" : "quote_vault" ,
"docs" : [
"Token account that holds the pool's quote tokens" ,
"PDA generated using POOL_VAULT_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "metadata_account" ,
"docs" : [
"Account to store the base token's metadata" ,
"Created using Metaplex metadata program"
],
"writable" : true
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for the base token" ,
"Must be the standard Token program"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for the quote token"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "metadata_program" ,
"docs" : [
"Metaplex Token Metadata program" ,
"Used to create metadata for the base token"
],
"address" : "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "rent_program" ,
"docs" : [
"Required for rent exempt calculations"
],
"address" : "SysvarRent111111111111111111111111111111111"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "base_mint_param" ,
"type" : {
"defined" : {
"name" : "MintParams"
}
}
},
{
"name" : "curve_param" ,
"type" : {
"defined" : {
"name" : "CurveParams"
}
}
},
{
"name" : "vesting_param" ,
"type" : {
"defined" : {
"name" : "VestingParams"
}
}
}
]
},
{
"name" : "initialize_v2" ,
"docs" : [
"Initializes a new trading pool" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts containing pool and token information" ,
""
],
"discriminator" : [
67 ,
153 ,
175 ,
39 ,
218 ,
16 ,
38 ,
32
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The account paying for the initialization costs" ,
"This can be any account with sufficient SOL to cover the transaction"
],
"writable" : true ,
"signer" : true
},
{
"name" : "creator"
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Includes settings like quote token mint and fee parameters"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform info" ,
"Includes settings like the fee_rate, name, web, img of the platform"
]
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault and mint operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108
]
},
{
"kind" : "account" ,
"path" : "base_mint"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "base_mint" ,
"docs" : [
"The mint for the base token (token being sold)" ,
"Created in this instruction with specified decimals"
],
"writable" : true ,
"signer" : true
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint for the quote token (token used to buy)" ,
"Must match the quote_mint specified in global config"
]
},
{
"name" : "base_vault" ,
"docs" : [
"Token account that holds the pool's base tokens" ,
"PDA generated using POOL_VAULT_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "base_mint"
}
]
}
},
{
"name" : "quote_vault" ,
"docs" : [
"Token account that holds the pool's quote tokens" ,
"PDA generated using POOL_VAULT_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "metadata_account" ,
"docs" : [
"Account to store the base token's metadata" ,
"Created using Metaplex metadata program"
],
"writable" : true
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for the base token" ,
"Must be the standard Token program"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for the quote token"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "metadata_program" ,
"docs" : [
"Metaplex Token Metadata program" ,
"Used to create metadata for the base token"
],
"address" : "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "rent_program" ,
"docs" : [
"Required for rent exempt calculations"
],
"address" : "SysvarRent111111111111111111111111111111111"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "base_mint_param" ,
"type" : {
"defined" : {
"name" : "MintParams"
}
}
},
{
"name" : "curve_param" ,
"type" : {
"defined" : {
"name" : "CurveParams"
}
}
},
{
"name" : "vesting_param" ,
"type" : {
"defined" : {
"name" : "VestingParams"
}
}
},
{
"name" : "amm_fee_on" ,
"type" : {
"defined" : {
"name" : "AmmCreatorFeeOn"
}
}
}
]
},
{
"name" : "initialize_with_token_2022" ,
"docs" : [
"Initializes a new trading pool with base token belongs to spl-token-2022," ,
"pool created by this instruction must be migrated to cpswap after fundraising ends, i.e., curve_param.migrate_type = 1" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts containing pool and token information" ,
""
],
"discriminator" : [
37 ,
190 ,
126 ,
222 ,
44 ,
154 ,
171 ,
17
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The account paying for the initialization costs" ,
"This can be any account with sufficient SOL to cover the transaction"
],
"writable" : true ,
"signer" : true
},
{
"name" : "creator"
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Includes settings like quote token mint and fee parameters"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform info" ,
"Includes settings like the fee_rate, name, web, img of the platform"
]
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault and mint operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108
]
},
{
"kind" : "account" ,
"path" : "base_mint"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "base_mint" ,
"docs" : [
"The mint for the base token (token being sold)" ,
"Created in this instruction with specified decimals"
],
"writable" : true ,
"signer" : true
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint for the quote token (token used to buy)" ,
"Must match the quote_mint specified in global config"
]
},
{
"name" : "base_vault" ,
"docs" : [
"Token account that holds the pool's base tokens" ,
"PDA generated using POOL_VAULT_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "base_mint"
}
]
}
},
{
"name" : "quote_vault" ,
"docs" : [
"Token account that holds the pool's quote tokens" ,
"PDA generated using POOL_VAULT_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "pool_state"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for the base token"
],
"address" : "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for the quote token"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "base_mint_param" ,
"type" : {
"defined" : {
"name" : "MintParams"
}
}
},
{
"name" : "curve_param" ,
"type" : {
"defined" : {
"name" : "CurveParams"
}
}
},
{
"name" : "vesting_param" ,
"type" : {
"defined" : {
"name" : "VestingParams"
}
}
},
{
"name" : "amm_fee_on" ,
"type" : {
"defined" : {
"name" : "AmmCreatorFeeOn"
}
}
},
{
"name" : "transfer_fee_extension_param" ,
"type" : {
"option" : {
"defined" : {
"name" : "TransferFeeExtensionParams"
}
}
}
}
]
},
{
"name" : "migrate_to_amm" ,
"docs" : [
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
207 ,
82 ,
192 ,
145 ,
254 ,
207 ,
145 ,
223
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"Only migrate_to_amm_wallet can migrate to cpswap pool" ,
"This signer must match the migrate_to_amm_wallet saved in global_config"
],
"writable" : true ,
"signer" : true
},
{
"name" : "base_mint" ,
"docs" : [
"The mint for the base token (token being sold)"
]
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint for the quote token (token used to buy)"
]
},
{
"name" : "openbook_program" ,
"address" : "srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"
},
{
"name" : "market" ,
"docs" : [
"Account created and asigned to openbook_program but not been initialized"
],
"writable" : true
},
{
"name" : "request_queue" ,
"docs" : [
"Account created and asigned to openbook_program but not been initialized"
],
"writable" : true
},
{
"name" : "event_queue" ,
"docs" : [
"Account created and asigned to openbook_program but not been initialized"
],
"writable" : true
},
{
"name" : "bids" ,
"docs" : [
"Account created and asigned to openbook_program but not been initialized"
],
"writable" : true
},
{
"name" : "asks" ,
"docs" : [
"Account created and asigned to openbook_program but not been initialized"
],
"writable" : true
},
{
"name" : "market_vault_signer"
},
{
"name" : "market_base_vault" ,
"docs" : [
"Token account that holds the market's base tokens"
],
"writable" : true
},
{
"name" : "market_quote_vault" ,
"docs" : [
"Token account that holds the market's quote tokens"
],
"writable" : true
},
{
"name" : "amm_program" ,
"address" : "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"
},
{
"name" : "amm_pool" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "amm_program"
},
{
"kind" : "account" ,
"path" : "market"
},
{
"kind" : "const" ,
"value" : [
97 ,
109 ,
109 ,
95 ,
97 ,
115 ,
115 ,
111 ,
99 ,
105 ,
97 ,
116 ,
101 ,
100 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
97 ,
109 ,
109 ,
32 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_open_orders" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "amm_program"
},
{
"kind" : "account" ,
"path" : "market"
},
{
"kind" : "const" ,
"value" : [
111 ,
112 ,
101 ,
110 ,
95 ,
111 ,
114 ,
100 ,
101 ,
114 ,
95 ,
97 ,
115 ,
115 ,
111 ,
99 ,
105 ,
97 ,
116 ,
101 ,
100 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_lp_mint" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "amm_program"
},
{
"kind" : "account" ,
"path" : "market"
},
{
"kind" : "const" ,
"value" : [
108 ,
112 ,
95 ,
109 ,
105 ,
110 ,
116 ,
95 ,
97 ,
115 ,
115 ,
111 ,
99 ,
105 ,
97 ,
116 ,
101 ,
100 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_base_vault" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "amm_program"
},
{
"kind" : "account" ,
"path" : "market"
},
{
"kind" : "const" ,
"value" : [
99 ,
111 ,
105 ,
110 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
115 ,
115 ,
111 ,
99 ,
105 ,
97 ,
116 ,
101 ,
100 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_quote_vault" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "amm_program"
},
{
"kind" : "account" ,
"path" : "market"
},
{
"kind" : "const" ,
"value" : [
112 ,
99 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
115 ,
115 ,
111 ,
99 ,
105 ,
97 ,
116 ,
101 ,
100 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_target_orders" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "account" ,
"path" : "amm_program"
},
{
"kind" : "account" ,
"path" : "market"
},
{
"kind" : "const" ,
"value" : [
116 ,
97 ,
114 ,
103 ,
101 ,
116 ,
95 ,
97 ,
115 ,
115 ,
111 ,
99 ,
105 ,
97 ,
116 ,
101 ,
100 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_config" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
97 ,
109 ,
109 ,
95 ,
99 ,
111 ,
110 ,
102 ,
105 ,
103 ,
95 ,
97 ,
99 ,
99 ,
111 ,
117 ,
110 ,
116 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "amm_program"
}
}
},
{
"name" : "amm_create_fee_destination" ,
"writable" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault operations" ,
"Generated using AUTH_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108
]
},
{
"kind" : "account" ,
"path" : "base_mint"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global config account stores owner"
]
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be fully drained during migration"
],
"writable" : true
},
{
"name" : "quote_vault" ,
"docs" : [
"The pool's vault for quote tokens" ,
"Will be fully drained during migration"
],
"writable" : true
},
{
"name" : "pool_lp_token" ,
"writable" : true
},
{
"name" : "spl_token_program" ,
"docs" : [
"SPL Token program for the base token" ,
"Must be the standard Token program"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "associated_token_program" ,
"docs" : [
"Program to create an ATA for receiving fee NFT"
],
"address" : "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "rent_program" ,
"docs" : [
"Required for rent exempt calculations"
],
"address" : "SysvarRent111111111111111111111111111111111"
}
],
"args" : [
{
"name" : "base_lot_size" ,
"type" : "u64"
},
{
"name" : "quote_lot_size" ,
"type" : "u64"
},
{
"name" : "market_vault_signer_nonce" ,
"type" : "u8"
}
]
},
{
"name" : "migrate_to_cpswap" ,
"docs" : [
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
""
],
"discriminator" : [
136 ,
92 ,
200 ,
103 ,
28 ,
218 ,
144 ,
140
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"Only migrate_to_cpswap_wallet can migrate to cpswap pool" ,
"This signer must match the migrate_to_cpswap_wallet saved in global_config"
],
"writable" : true ,
"signer" : true
},
{
"name" : "base_mint" ,
"docs" : [
"The mint for the base token (token being sold)"
],
"writable" : true
},
{
"name" : "quote_mint" ,
"docs" : [
"The mint for the quote token (token used to buy)"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform-wide settings" ,
"Used to read platform fee rate"
]
},
{
"name" : "cpswap_program" ,
"address" : "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"
},
{
"name" : "cpswap_pool" ,
"docs" : [
"PDA account:" ,
"seeds = [" ,
"b\"pool\"," ,
"cpswap_config.key().as_ref()," ,
"token_0_mint.key().as_ref()," ,
"token_1_mint.key().as_ref()," ,
"]," ,
"seeds::program = cpswap_program," ,
"" ,
"Or random account: must be signed by cli"
],
"writable" : true
},
{
"name" : "cpswap_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
110 ,
100 ,
95 ,
108 ,
112 ,
95 ,
109 ,
105 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "cpswap_program"
}
}
},
{
"name" : "cpswap_lp_mint" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
108 ,
112 ,
95 ,
109 ,
105 ,
110 ,
116
]
},
{
"kind" : "account" ,
"path" : "cpswap_pool"
}
],
"program" : {
"kind" : "account" ,
"path" : "cpswap_program"
}
}
},
{
"name" : "cpswap_base_vault" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "cpswap_pool"
},
{
"kind" : "account" ,
"path" : "base_mint"
}
],
"program" : {
"kind" : "account" ,
"path" : "cpswap_program"
}
}
},
{
"name" : "cpswap_quote_vault" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108 ,
95 ,
118 ,
97 ,
117 ,
108 ,
116
]
},
{
"kind" : "account" ,
"path" : "cpswap_pool"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
],
"program" : {
"kind" : "account" ,
"path" : "cpswap_program"
}
}
},
{
"name" : "cpswap_config"
},
{
"name" : "cpswap_create_pool_fee" ,
"writable" : true
},
{
"name" : "cpswap_observation" ,
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
111 ,
98 ,
115 ,
101 ,
114 ,
118 ,
97 ,
116 ,
105 ,
111 ,
110
]
},
{
"kind" : "account" ,
"path" : "cpswap_pool"
}
],
"program" : {
"kind" : "account" ,
"path" : "cpswap_program"
}
}
},
{
"name" : "lock_program" ,
"address" : "LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"
},
{
"name" : "lock_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
108 ,
111 ,
99 ,
107 ,
95 ,
99 ,
112 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
],
"program" : {
"kind" : "account" ,
"path" : "lock_program"
}
}
},
{
"name" : "lock_lp_vault" ,
"writable" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault operations" ,
"Generated using AUTH_SEED"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "pool_state" ,
"docs" : [
"Account that stores the pool's state and parameters" ,
"PDA generated using POOL_SEED and both token mints"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
111 ,
111 ,
108
]
},
{
"kind" : "account" ,
"path" : "base_mint"
},
{
"kind" : "account" ,
"path" : "quote_mint"
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global config account stores owner"
]
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be fully drained during migration"
],
"writable" : true
},
{
"name" : "quote_vault" ,
"docs" : [
"The pool's vault for quote tokens" ,
"Will be fully drained during migration"
],
"writable" : true
},
{
"name" : "pool_lp_token" ,
"writable" : true
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for the base token" ,
"Must be the standard Token program"
]
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for the quote token"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "associated_token_program" ,
"docs" : [
"Program to create an ATA for receiving fee NFT"
],
"address" : "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name" : "system_program" ,
"docs" : [
"Required for account creation"
],
"address" : "11111111111111111111111111111111"
},
{
"name" : "rent_program" ,
"docs" : [
"Required for rent exempt calculations"
],
"address" : "SysvarRent111111111111111111111111111111111"
},
{
"name" : "metadata_program" ,
"docs" : [
"Program to create NFT metadata accunt"
],
"address" : "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
}
],
"args" : []
},
{
"name" : "remove_platform_curve_param" ,
"docs" : [
"Remove platform launch param" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `index` - The index of the curve param to remove" ,
""
],
"discriminator" : [
27 ,
30 ,
62 ,
169 ,
93 ,
224 ,
24 ,
145
],
"accounts" : [
{
"name" : "platform_admin" ,
"docs" : [
"The account paying for the initialization costs"
],
"signer" : true
},
{
"name" : "platform_config" ,
"docs" : [
"Platform config account to be changed"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
99 ,
111 ,
110 ,
102 ,
105 ,
103
]
},
{
"kind" : "account" ,
"path" : "platform_admin"
}
]
}
}
],
"args" : [
{
"name" : "index" ,
"type" : "u8"
}
]
},
{
"name" : "sell_exact_in" ,
"docs" : [
"Use the given amount of base tokens to sell for quote tokens." ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `amount_in` - Amount of base token to sell" ,
"* `minimum_amount_out` - Minimum amount of quote token to receive (slippage protection)" ,
"* `share_fee_rate` - Fee rate for the share" ,
""
],
"discriminator" : [
149 ,
39 ,
222 ,
155 ,
211 ,
124 ,
152 ,
26
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The user performing the swap operation" ,
"Must sign the transaction and pay for fees"
],
"writable" : true ,
"signer" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Used to read protocol fee rates and curve type"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform-wide settings" ,
"Used to read platform fee rate"
]
},
{
"name" : "pool_state" ,
"docs" : [
"The pool state account where the swap will be performed" ,
"Contains current pool parameters and balances"
],
"writable" : true
},
{
"name" : "user_base_token" ,
"docs" : [
"The user's token account for base tokens (tokens being bought)" ,
"Will receive the output tokens after the swap"
],
"writable" : true
},
{
"name" : "user_quote_token" ,
"docs" : [
"The user's token account for quote tokens (tokens being sold)" ,
"Will be debited for the input amount"
],
"writable" : true
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be debited to send tokens to the user"
],
"writable" : true
},
{
"name" : "quote_vault" ,
"docs" : [
"The pool's vault for quote tokens" ,
"Will receive the input tokens from the user"
],
"writable" : true
},
{
"name" : "base_token_mint" ,
"docs" : [
"The mint of the base token" ,
"Used for transfer fee calculations if applicable"
]
},
{
"name" : "quote_token_mint" ,
"docs" : [
"The mint of the quote token"
]
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for base token transfers"
]
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for quote token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "amount_in" ,
"type" : "u64"
},
{
"name" : "minimum_amount_out" ,
"type" : "u64"
},
{
"name" : "share_fee_rate" ,
"type" : "u64"
}
]
},
{
"name" : "sell_exact_out" ,
"docs" : [
"Sell base tokens for the given amount of quote tokens." ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `amount_out` - Amount of quote token to receive" ,
"* `maximum_amount_in` - Maximum amount of base token to purchase (slippage protection)" ,
"* `share_fee_rate` - Fee rate for the share" ,
""
],
"discriminator" : [
95 ,
200 ,
71 ,
34 ,
8 ,
9 ,
11 ,
166
],
"accounts" : [
{
"name" : "payer" ,
"docs" : [
"The user performing the swap operation" ,
"Must sign the transaction and pay for fees"
],
"writable" : true ,
"signer" : true
},
{
"name" : "authority" ,
"docs" : [
"PDA that acts as the authority for pool vault operations" ,
"Generated using AUTH_SEED"
],
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
118 ,
97 ,
117 ,
108 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
95 ,
115 ,
101 ,
101 ,
100
]
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Used to read protocol fee rates and curve type"
]
},
{
"name" : "platform_config" ,
"docs" : [
"Platform configuration account containing platform-wide settings" ,
"Used to read platform fee rate"
]
},
{
"name" : "pool_state" ,
"docs" : [
"The pool state account where the swap will be performed" ,
"Contains current pool parameters and balances"
],
"writable" : true
},
{
"name" : "user_base_token" ,
"docs" : [
"The user's token account for base tokens (tokens being bought)" ,
"Will receive the output tokens after the swap"
],
"writable" : true
},
{
"name" : "user_quote_token" ,
"docs" : [
"The user's token account for quote tokens (tokens being sold)" ,
"Will be debited for the input amount"
],
"writable" : true
},
{
"name" : "base_vault" ,
"docs" : [
"The pool's vault for base tokens" ,
"Will be debited to send tokens to the user"
],
"writable" : true
},
{
"name" : "quote_vault" ,
"docs" : [
"The pool's vault for quote tokens" ,
"Will receive the input tokens from the user"
],
"writable" : true
},
{
"name" : "base_token_mint" ,
"docs" : [
"The mint of the base token" ,
"Used for transfer fee calculations if applicable"
]
},
{
"name" : "quote_token_mint" ,
"docs" : [
"The mint of the quote token"
]
},
{
"name" : "base_token_program" ,
"docs" : [
"SPL Token program for base token transfers"
]
},
{
"name" : "quote_token_program" ,
"docs" : [
"SPL Token program for quote token transfers"
],
"address" : "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name" : "event_authority" ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
95 ,
95 ,
101 ,
118 ,
101 ,
110 ,
116 ,
95 ,
97 ,
117 ,
116 ,
104 ,
111 ,
114 ,
105 ,
116 ,
121
]
}
]
}
},
{
"name" : "program"
}
],
"args" : [
{
"name" : "amount_out" ,
"type" : "u64"
},
{
"name" : "maximum_amount_in" ,
"type" : "u64"
},
{
"name" : "share_fee_rate" ,
"type" : "u64"
}
]
},
{
"name" : "update_config" ,
"docs" : [
"Updates configuration parameters" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `param` - Parameter to update:" ,
"- 0: Update trade_fee_rate" ,
"- 1: Update fee owner" ,
2026-08-13 05:53:20 +08:00
"- 12: Toggle whether explicit platform authorization is required" ,
2026-01-23 16:47:55 +08:00
"* `value` - New value for the selected parameter" ,
""
],
"discriminator" : [
29 ,
158 ,
252 ,
191 ,
10 ,
83 ,
219 ,
99
],
"accounts" : [
{
"name" : "owner" ,
"docs" : [
"The global config owner or admin"
],
"signer" : true ,
"address" : "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ"
},
{
"name" : "global_config" ,
"docs" : [
"Global config account to be changed"
],
"writable" : true
}
],
"args" : [
{
"name" : "param" ,
"type" : "u8"
},
{
"name" : "value" ,
"type" : "u64"
}
]
},
{
"name" : "update_platform_config" ,
"docs" : [
"Update platform config" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `param` - Parameter to update" ,
""
],
"discriminator" : [
195 ,
60 ,
76 ,
129 ,
146 ,
45 ,
67 ,
143
],
"accounts" : [
{
"name" : "platform_admin" ,
"docs" : [
"The account paying for the initialization costs"
],
"signer" : true
},
{
"name" : "platform_config" ,
"docs" : [
"Platform config account to be changed"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
99 ,
111 ,
110 ,
102 ,
105 ,
103
]
},
{
"kind" : "account" ,
"path" : "platform_admin"
}
]
}
}
],
"args" : [
{
"name" : "param" ,
"type" : {
"defined" : {
"name" : "PlatformConfigParam"
}
}
}
]
},
{
"name" : "update_platform_curve_param" ,
"docs" : [
"Update platform launch param" ,
"# Arguments" ,
"" ,
"* `ctx` - The context of accounts" ,
"* `bonding_curve_param` - Parameter to update" ,
""
],
"discriminator" : [
138 ,
144 ,
138 ,
250 ,
220 ,
128 ,
4 ,
57
],
"accounts" : [
{
"name" : "platform_admin" ,
"docs" : [
"The account paying for the initialization costs"
],
"writable" : true ,
"signer" : true
},
{
"name" : "platform_config" ,
"docs" : [
"Platform config account to be changed"
],
"writable" : true ,
"pda" : {
"seeds" : [
{
"kind" : "const" ,
"value" : [
112 ,
108 ,
97 ,
116 ,
102 ,
111 ,
114 ,
109 ,
95 ,
99 ,
111 ,
110 ,
102 ,
105 ,
103
]
},
{
"kind" : "account" ,
"path" : "platform_admin"
}
]
}
},
{
"name" : "global_config" ,
"docs" : [
"Global configuration account containing protocol-wide settings" ,
"Includes settings like quote token mint and fee parameters"
]
},
{
"name" : "system_program" ,
"docs" : [
"System program for lamport transfers"
],
"address" : "11111111111111111111111111111111"
}
],
"args" : [
{
"name" : "index" ,
"type" : "u8"
},
{
"name" : "bonding_curve_param" ,
"type" : {
"defined" : {
"name" : "BondingCurveParam"
}
}
}
]
}
],
"accounts" : [
{
"name" : "GlobalConfig" ,
"discriminator" : [
149 ,
8 ,
156 ,
202 ,
160 ,
252 ,
176 ,
217
]
},
{
"name" : "PlatformConfig" ,
"discriminator" : [
160 ,
78 ,
128 ,
0 ,
248 ,
83 ,
230 ,
160
]
},
2026-08-13 05:53:20 +08:00
{
"name" : "PlatformGlobalAccess" ,
"discriminator" : [
174 ,
147 ,
132 ,
240 ,
137 ,
219 ,
243 ,
16
]
},
2026-01-23 16:47:55 +08:00
{
"name" : "PoolState" ,
"discriminator" : [
247 ,
237 ,
227 ,
245 ,
215 ,
195 ,
222 ,
70
]
},
{
"name" : "VestingRecord" ,
"discriminator" : [
106 ,
243 ,
221 ,
205 ,
230 ,
126 ,
85 ,
83
]
}
],
"events" : [
{
"name" : "ClaimVestedEvent" ,
"discriminator" : [
21 ,
194 ,
114 ,
87 ,
120 ,
211 ,
226 ,
32
]
},
{
"name" : "CreateVestingEvent" ,
"discriminator" : [
150 ,
152 ,
11 ,
179 ,
52 ,
210 ,
191 ,
125
]
},
{
"name" : "PoolCreateEvent" ,
"discriminator" : [
151 ,
215 ,
226 ,
9 ,
118 ,
161 ,
115 ,
174
]
},
{
"name" : "TradeEvent" ,
"discriminator" : [
189 ,
219 ,
127 ,
211 ,
78 ,
230 ,
97 ,
238
]
}
],
"errors" : [
{
"code" : 6000 ,
"name" : "NotApproved" ,
"msg" : "Not approved"
},
{
"code" : 6001 ,
"name" : "InvalidOwner" ,
"msg" : "Input account owner is not the program address"
},
{
"code" : 6002 ,
"name" : "InvalidInput" ,
"msg" : "InvalidInput"
},
{
"code" : 6003 ,
"name" : "InputNotMatchCurveConfig" ,
"msg" : "The input params are not match with curve type in config"
},
{
"code" : 6004 ,
"name" : "ExceededSlippage" ,
"msg" : "Exceeds desired slippage limit"
},
{
"code" : 6005 ,
"name" : "PoolFunding" ,
"msg" : "Pool funding"
},
{
"code" : 6006 ,
"name" : "PoolMigrated" ,
"msg" : "Pool migrated"
},
{
"code" : 6007 ,
"name" : "MigrateTypeNotMatch" ,
"msg" : "Migrate type not match"
},
{
"code" : 6008 ,
"name" : "MathOverflow" ,
"msg" : "Math overflow"
},
{
"code" : 6009 ,
"name" : "NoAssetsToCollect" ,
"msg" : "No assets to collect"
},
{
"code" : 6010 ,
"name" : "VestingRatioTooHigh" ,
"msg" : "Vesting ratio too high"
},
{
"code" : 6011 ,
"name" : "VestingSettingEnded" ,
"msg" : "Vesting setting ended"
},
{
"code" : 6012 ,
"name" : "VestingNotStarted" ,
"msg" : "Vesting not started"
},
{
"code" : 6013 ,
"name" : "NoVestingSchedule" ,
"msg" : "No vesting schedule"
},
{
"code" : 6014 ,
"name" : "InvalidPlatformInfo" ,
"msg" : "The platform info input is invalid"
},
{
"code" : 6015 ,
"name" : "PoolNotMigrated" ,
"msg" : "Pool not migrated"
},
{
"code" : 6016 ,
"name" : "InvalidCpSwapConfig" ,
"msg" : "The input cp swap config account is invalid"
},
{
"code" : 6017 ,
"name" : "NoSupportExtension" ,
"msg" : "No support extension"
},
{
"code" : 6018 ,
"name" : "NotEnoughRemainingAccounts" ,
"msg" : "Not enough remaining accounts"
},
{
"code" : 6019 ,
"name" : "TransferFeeCalculateNotMatch" ,
"msg" : "TransferFee calculate not match"
},
{
"code" : 6020 ,
"name" : "CurveParamIsNotExist" ,
"msg" : "Curve param is not exist"
},
{
"code" : 6021 ,
"name" : "InvalidTotalLockedAmount" ,
"msg" : "Total locked amount must great or equal to the platform vesting share amount"
2026-08-13 05:53:20 +08:00
},
{
"code" : 6022 ,
"name" : "PlatformGlobalAccessDenied" ,
"msg" : "Platform is not authorized to use this global config"
},
{
"code" : 6023 ,
"name" : "InvalidPlatformGlobalAccess" ,
"msg" : "Invalid platform-global access account"
2026-01-23 16:47:55 +08:00
}
],
"types" : [
{
"name" : "AmmCreatorFeeOn" ,
"docs" : [
"migrate to cpmm, creator fee on quote token or both token"
],
"type" : {
"kind" : "enum" ,
"variants" : [
{
"name" : "QuoteToken"
},
{
"name" : "BothToken"
}
]
}
},
{
"name" : "BondingCurveParam" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "migrate_type" ,
"docs" : [
"Migrate to AMM or CpSwap, 0: amm, 1: cpswap, " ,
"Neither 0 nor 1: invalid"
],
"type" : "u8"
},
{
"name" : "migrate_cpmm_fee_on" ,
"docs" : [
"The migrate fee on, 0 means fee on the quote token, 1 means fee on both token" ,
"Neither 0 nor 1: invalid"
],
"type" : "u8"
},
{
"name" : "supply" ,
"docs" : [
"The supply of the token," ,
"0: invalid"
],
"type" : "u64"
},
{
"name" : "total_base_sell" ,
"docs" : [
"The total base sell of the token" ,
"0: invalid"
],
"type" : "u64"
},
{
"name" : "total_quote_fund_raising" ,
"docs" : [
"The total quote fund raising of the token" ,
"0: invalid"
],
"type" : "u64"
},
{
"name" : "total_locked_amount" ,
"docs" : [
"total amount of tokens to be unlocked" ,
"u64::MAX: invalid"
],
"type" : "u64"
},
{
"name" : "cliff_period" ,
"docs" : [
"Waiting time in seconds before unlocking after fundraising ends" ,
"u64::MAX: invalid"
],
"type" : "u64"
},
{
"name" : "unlock_period" ,
"docs" : [
"Unlocking period in seconds" ,
"u64::MAX: invalid"
],
"type" : "u64"
}
]
}
},
{
"name" : "ClaimVestedEvent" ,
"docs" : [
"Emitted when vesting token claimed by beneficiary"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "pool_state" ,
"type" : "pubkey"
},
{
"name" : "beneficiary" ,
"type" : "pubkey"
},
{
"name" : "claim_amount" ,
"type" : "u64"
}
]
}
},
{
"name" : "ConstantCurve" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "supply" ,
"type" : "u64"
},
{
"name" : "total_base_sell" ,
"type" : "u64"
},
{
"name" : "total_quote_fund_raising" ,
"type" : "u64"
},
{
"name" : "migrate_type" ,
"type" : "u8"
}
]
}
},
{
"name" : "CreateVestingEvent" ,
"docs" : [
"Emitted when vest_account created"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "pool_state" ,
"type" : "pubkey"
},
{
"name" : "beneficiary" ,
"type" : "pubkey"
},
{
"name" : "share_amount" ,
"type" : "u64"
}
]
}
},
{
"name" : "CurveParams" ,
"type" : {
"kind" : "enum" ,
"variants" : [
{
"name" : "Constant" ,
"fields" : [
{
"name" : "data" ,
"type" : {
"defined" : {
"name" : "ConstantCurve"
}
}
}
]
},
{
"name" : "Fixed" ,
"fields" : [
{
"name" : "data" ,
"type" : {
"defined" : {
"name" : "FixedCurve"
}
}
}
]
},
{
"name" : "Linear" ,
"fields" : [
{
"name" : "data" ,
"type" : {
"defined" : {
"name" : "LinearCurve"
}
}
}
]
}
]
}
},
{
"name" : "FixedCurve" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "supply" ,
"type" : "u64"
},
{
"name" : "total_quote_fund_raising" ,
"type" : "u64"
},
{
"name" : "migrate_type" ,
"type" : "u8"
}
]
}
},
{
"name" : "GlobalConfig" ,
"docs" : [
"Holds the current owner of the factory"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "epoch" ,
"docs" : [
"Account update epoch"
],
"type" : "u64"
},
{
"name" : "curve_type" ,
"docs" : [
"0: Constant Product Curve" ,
"1: Fixed Price Curve" ,
"2: Linear Price Curve"
],
"type" : "u8"
},
{
"name" : "index" ,
"docs" : [
"Config index"
],
"type" : "u16"
},
{
"name" : "migrate_fee" ,
"docs" : [
"The fee of migrate to amm"
],
"type" : "u64"
},
{
"name" : "trade_fee_rate" ,
"docs" : [
"The trade fee rate, denominated in hundredths of a bip (10^-6)"
],
"type" : "u64"
},
{
"name" : "max_share_fee_rate" ,
"docs" : [
"The maximum share fee rate, denominated in hundredths of a bip (10^-6)"
],
"type" : "u64"
},
{
"name" : "min_base_supply" ,
"docs" : [
"The minimum base supply, the value without decimals"
],
"type" : "u64"
},
{
"name" : "max_lock_rate" ,
"docs" : [
"The maximum lock rate, denominated in hundredths of a bip (10^-6)"
],
"type" : "u64"
},
{
"name" : "min_base_sell_rate" ,
"docs" : [
"The minimum base sell rate, denominated in hundredths of a bip (10^-6)"
],
"type" : "u64"
},
{
"name" : "min_base_migrate_rate" ,
"docs" : [
"The minimum base migrate rate, denominated in hundredths of a bip (10^-6)"
],
"type" : "u64"
},
{
"name" : "min_quote_fund_raising" ,
"docs" : [
"The minimum quote fund raising, the value with decimals"
],
"type" : "u64"
},
{
"name" : "quote_mint" ,
"docs" : [
"Mint information for quote token"
],
"type" : "pubkey"
},
{
"name" : "protocol_fee_owner" ,
"docs" : [
"Protocol Fee owner"
],
"type" : "pubkey"
},
{
"name" : "migrate_fee_owner" ,
"docs" : [
"Migrate Fee owner"
],
"type" : "pubkey"
},
{
"name" : "migrate_to_amm_wallet" ,
"docs" : [
"Migrate to amm control wallet"
],
"type" : "pubkey"
},
{
"name" : "migrate_to_cpswap_wallet" ,
"docs" : [
"Migrate to cpswap wallet"
],
"type" : "pubkey"
},
2026-08-13 05:53:20 +08:00
{
"name" : "requires_platform_auth" ,
"docs" : [
"Whether a platform must be explicitly authorized before using this global config"
],
"type" : "u8"
},
{
"name" : "padding_alignment" ,
"docs" : [
"padding alignment"
],
"type" : {
"array" : [
"u8" ,
7
]
}
},
2026-01-23 16:47:55 +08:00
{
"name" : "padding" ,
"docs" : [
"padding for future updates"
],
"type" : {
"array" : [
"u64" ,
2026-08-13 05:53:20 +08:00
15
2026-01-23 16:47:55 +08:00
]
}
}
]
}
},
{
"name" : "LinearCurve" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "supply" ,
"type" : "u64"
},
{
"name" : "total_quote_fund_raising" ,
"type" : "u64"
},
{
"name" : "migrate_type" ,
"type" : "u8"
}
]
}
},
{
"name" : "MigrateNftInfo" ,
"docs" : [
"Represents the parameters for initializing a platform config account(Only support MigrateType::CPSWAP)" ,
"# Fields" ,
"* `platform_scale` - Scale of the platform liquidity quantity rights will be converted into NFT" ,
"* `creator_scale` - Scale of the token creator liquidity quantity rights will be converted into NFT" ,
"* `burn_scale` - Scale of liquidity directly to burn" ,
"" ,
"* platform_scale + creator_scale + burn_scale = RATE_DENOMINATOR_VALUE"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "platform_scale" ,
"type" : "u64"
},
{
"name" : "creator_scale" ,
"type" : "u64"
},
{
"name" : "burn_scale" ,
"type" : "u64"
}
]
}
},
{
"name" : "MintParams" ,
"docs" : [
"Represents the parameters for initializing a new token mint" ,
"# Fields" ,
"* `decimals` - Number of decimal places for the token" ,
"* `name` - Name of the token" ,
"* `symbol` - Symbol/ticker of the token" ,
"* `uri` - URI pointing to token metadata"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "decimals" ,
"type" : "u8"
},
{
"name" : "name" ,
"type" : "string"
},
{
"name" : "symbol" ,
"type" : "string"
},
{
"name" : "uri" ,
"type" : "string"
}
]
}
},
{
"name" : "PlatformConfig" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "epoch" ,
"docs" : [
"The epoch for update interval"
],
"type" : "u64"
},
{
"name" : "platform_fee_wallet" ,
"docs" : [
"The platform fee wallet"
],
"type" : "pubkey"
},
{
"name" : "platform_nft_wallet" ,
"docs" : [
"The platform nft wallet to receive the platform NFT after migration if platform_scale is not 0(Only support MigrateType::CPSWAP)"
],
"type" : "pubkey"
},
{
"name" : "platform_scale" ,
"docs" : [
"Scale of the platform liquidity quantity rights will be converted into NFT(Only support MigrateType::CPSWAP)"
],
"type" : "u64"
},
{
"name" : "creator_scale" ,
"docs" : [
"Scale of the token creator liquidity quantity rights will be converted into NFT(Only support MigrateType::CPSWAP)"
],
"type" : "u64"
},
{
"name" : "burn_scale" ,
"docs" : [
"Scale of liquidity directly to burn"
],
"type" : "u64"
},
{
"name" : "fee_rate" ,
"docs" : [
"The platform fee rate"
],
"type" : "u64"
},
{
"name" : "name" ,
"docs" : [
"The platform name"
],
"type" : {
"array" : [
"u8" ,
64
]
}
},
{
"name" : "web" ,
"docs" : [
"The platform website"
],
"type" : {
"array" : [
"u8" ,
256
]
}
},
{
"name" : "img" ,
"docs" : [
"The platform img link"
],
"type" : {
"array" : [
"u8" ,
256
]
}
},
{
"name" : "cpswap_config" ,
"docs" : [
"The platform specifies the trade fee rate after migration to cp swap"
],
"type" : "pubkey"
},
{
"name" : "creator_fee_rate" ,
"docs" : [
"Creator fee rate"
],
"type" : "u64"
},
{
"name" : "transfer_fee_extension_auth" ,
"docs" : [
"If the base token belongs to token2022, then you can choose to support the transferfeeConfig extension, which includes permissions such as `transfer_fee_config_authority`` and `withdraw_withheld_authority`." ,
"When initializing mint, `withdraw_withheld_authority` and `transfer_fee_config_authority` both belongs to the contract." ,
"Once the token is migrated to AMM, the authorities will be reset to this value"
],
"type" : "pubkey"
},
{
"name" : "platform_vesting_wallet" ,
"type" : "pubkey"
},
{
"name" : "platform_vesting_scale" ,
"type" : "u64"
},
{
"name" : "platform_cp_creator" ,
"docs" : [
"If a valid platform_cp_creator is configured for the platform," ,
"it will be used as the creator for the AMM pool during migration to cpswap pool."
],
"type" : "pubkey"
},
{
"name" : "padding" ,
"docs" : [
"padding for future updates"
],
"type" : {
"array" : [
"u8" ,
108
]
}
},
{
"name" : "curve_params" ,
"docs" : [
"The parameters for launching the pool"
],
"type" : {
"vec" : {
"defined" : {
"name" : "PlatformCurveParam"
}
}
}
}
]
}
},
{
"name" : "PlatformConfigInfo" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "fee_wallet" ,
"type" : "pubkey"
},
{
"name" : "nft_wallet" ,
"type" : "pubkey"
},
{
"name" : "migrate_nft_info" ,
"type" : {
"defined" : {
"name" : "MigrateNftInfo"
}
}
},
{
"name" : "fee_rate" ,
"type" : "u64"
},
{
"name" : "name" ,
"type" : "string"
},
{
"name" : "web" ,
"type" : "string"
},
{
"name" : "img" ,
"type" : "string"
},
{
"name" : "transfer_fee_extension_auth" ,
"type" : "pubkey"
},
{
"name" : "creator_fee_rate" ,
"type" : "u64"
},
{
"name" : "platform_vesting_scale" ,
"type" : "u64"
},
{
"name" : "vesting_wallet" ,
"type" : "pubkey"
}
]
}
},
{
"name" : "PlatformConfigParam" ,
"type" : {
"kind" : "enum" ,
"variants" : [
{
"name" : "FeeWallet" ,
"fields" : [
"pubkey"
]
},
{
"name" : "NFTWallet" ,
"fields" : [
"pubkey"
]
},
{
"name" : "MigrateNftInfo" ,
"fields" : [
{
"defined" : {
"name" : "MigrateNftInfo"
}
}
]
},
{
"name" : "FeeRate" ,
"fields" : [
"u64"
]
},
{
"name" : "Name" ,
"fields" : [
"string"
]
},
{
"name" : "Web" ,
"fields" : [
"string"
]
},
{
"name" : "Img" ,
"fields" : [
"string"
]
},
{
"name" : "CpSwapConfig"
},
{
"name" : "AllInfo" ,
"fields" : [
{
"defined" : {
"name" : "PlatformConfigInfo"
}
}
]
},
{
"name" : "VestingWallet" ,
"fields" : [
"pubkey"
]
},
{
"name" : "PlatformVestingScale" ,
"fields" : [
"u64"
]
},
{
"name" : "PlatformCPCreator" ,
"fields" : [
"pubkey"
]
}
]
}
},
{
"name" : "PlatformCurveParam" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "epoch" ,
"docs" : [
"The epoch for update interval, 0 means not update"
],
"type" : "u64"
},
{
"name" : "index" ,
"docs" : [
"The curve params index"
],
"type" : "u8"
},
{
"name" : "global_config" ,
"docs" : [
"The global config address"
],
"type" : "pubkey"
},
{
"name" : "bonding_curve_param" ,
"docs" : [
"bonding curve param"
],
"type" : {
"defined" : {
"name" : "BondingCurveParam"
}
}
},
{
"name" : "padding" ,
"docs" : [
"padding for future updates"
],
"type" : {
"array" : [
"u64" ,
50
]
}
}
]
}
},
2026-08-13 05:53:20 +08:00
{
"name" : "PlatformGlobalAccess" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "bump" ,
"type" : "u8"
},
{
"name" : "global_config" ,
"type" : "pubkey"
},
{
"name" : "platform_config" ,
"type" : "pubkey"
},
{
"name" : "padding" ,
"docs" : [
"padding for future updates"
],
"type" : {
"array" : [
"u64" ,
8
]
}
}
]
}
},
2026-01-23 16:47:55 +08:00
{
"name" : "PlatformParams" ,
"docs" : [
"Represents the parameters for initializing a platform config account" ,
"# Fields" ,
"* `migrate_nft_info` - The platform configures liquidity info during migration(Only support MigrateType::CPSWAP)" ,
"* `fee_rate` - Fee rate of the platform" ,
"* `name` - Name of the platform" ,
"* `web` - Website of the platform" ,
"* `img` - Image link of the platform" ,
"/// * `creator_fee_rate` - The fee rate charged by the creator for each transaction."
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "migrate_nft_info" ,
"type" : {
"defined" : {
"name" : "MigrateNftInfo"
}
}
},
{
"name" : "fee_rate" ,
"type" : "u64"
},
{
"name" : "name" ,
"type" : "string"
},
{
"name" : "web" ,
"type" : "string"
},
{
"name" : "img" ,
"type" : "string"
},
{
"name" : "creator_fee_rate" ,
"type" : "u64"
},
{
"name" : "platform_vesting_scale" ,
"type" : "u64"
}
]
}
},
{
"name" : "PoolCreateEvent" ,
"docs" : [
"Emitted when pool created"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "pool_state" ,
"type" : "pubkey"
},
{
"name" : "creator" ,
"type" : "pubkey"
},
{
"name" : "config" ,
"type" : "pubkey"
},
{
"name" : "base_mint_param" ,
"type" : {
"defined" : {
"name" : "MintParams"
}
}
},
{
"name" : "curve_param" ,
"type" : {
"defined" : {
"name" : "CurveParams"
}
}
},
{
"name" : "vesting_param" ,
"type" : {
"defined" : {
"name" : "VestingParams"
}
}
},
{
"name" : "amm_fee_on" ,
"type" : {
"defined" : {
"name" : "AmmCreatorFeeOn"
}
}
}
]
}
},
{
"name" : "PoolState" ,
"docs" : [
"Represents the state of a trading pool in the protocol" ,
"Stores all essential information about pool balances, fees, and configuration"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "epoch" ,
"docs" : [
"Account update epoch"
],
"type" : "u64"
},
{
"name" : "auth_bump" ,
"docs" : [
"Bump seed used for PDA address derivation"
],
"type" : "u8"
},
{
"name" : "status" ,
"docs" : [
"Current status of the pool" ,
"* 0: Pool is funding" ,
"* 1: Pool funding is end, waiting for migration" ,
"* 2: Pool migration is done"
],
"type" : "u8"
},
{
"name" : "base_decimals" ,
"docs" : [
"Decimals of the pool base token"
],
"type" : "u8"
},
{
"name" : "quote_decimals" ,
"docs" : [
"Decimals of the pool quote token"
],
"type" : "u8"
},
{
"name" : "migrate_type" ,
"docs" : [
"Migrate to AMM or CpSwap, 0: amm, 1: cpswap"
],
"type" : "u8"
},
{
"name" : "supply" ,
"docs" : [
"Supply of the pool base token"
],
"type" : "u64"
},
{
"name" : "total_base_sell" ,
"docs" : [
"Total sell amount of the base token"
],
"type" : "u64"
},
{
"name" : "virtual_base" ,
"docs" : [
"For different curves, virtual_base and virtual_quote have different meanings" ,
"For constant product curve, virtual_base and virtual_quote are virtual liquidity, virtual_quote/virtual_base is the initial price" ,
"For linear price curve, virtual_base is the price slope parameter a, virtual_quote has no effect" ,
"For fixed price curve, virtual_quote/virtual_base is the initial price"
],
"type" : "u64"
},
{
"name" : "virtual_quote" ,
"type" : "u64"
},
{
"name" : "real_base" ,
"docs" : [
"Actual base token amount in the pool" ,
"Represents the real tokens available for trading"
],
"type" : "u64"
},
{
"name" : "real_quote" ,
"docs" : [
"Actual quote token amount in the pool" ,
"Represents the real tokens available for trading"
],
"type" : "u64"
},
{
"name" : "total_quote_fund_raising" ,
"docs" : [
"The total quote fund raising of the pool"
],
"type" : "u64"
},
{
"name" : "quote_protocol_fee" ,
"docs" : [
"Accumulated trading fees in quote tokens" ,
"Can be collected by the protocol fee owner"
],
"type" : "u64"
},
{
"name" : "platform_fee" ,
"docs" : [
"Accumulated platform fees in quote tokens" ,
"Can be collected by the platform wallet stored in platform config"
],
"type" : "u64"
},
{
"name" : "migrate_fee" ,
"docs" : [
"The fee of migrate to amm"
],
"type" : "u64"
},
{
"name" : "vesting_schedule" ,
"docs" : [
"Vesting schedule for the base token"
],
"type" : {
"defined" : {
"name" : "VestingSchedule"
}
}
},
{
"name" : "global_config" ,
"docs" : [
"Public key of the global configuration account" ,
"Contains protocol-wide settings this pool adheres to"
],
"type" : "pubkey"
},
{
"name" : "platform_config" ,
"docs" : [
"Public key of the platform configuration account" ,
"Contains platform-wide settings this pool adheres to"
],
"type" : "pubkey"
},
{
"name" : "base_mint" ,
"docs" : [
"Public key of the base mint address"
],
"type" : "pubkey"
},
{
"name" : "quote_mint" ,
"docs" : [
"Public key of the quote mint address"
],
"type" : "pubkey"
},
{
"name" : "base_vault" ,
"docs" : [
"Public key of the base token vault" ,
"Holds the actual base tokens owned by the pool"
],
"type" : "pubkey"
},
{
"name" : "quote_vault" ,
"docs" : [
"Public key of the quote token vault" ,
"Holds the actual quote tokens owned by the pool"
],
"type" : "pubkey"
},
{
"name" : "creator" ,
"docs" : [
"The creator of base token"
],
"type" : "pubkey"
},
{
"name" : "token_program_flag" ,
"docs" : [
"token program bits" ,
"bit0: base token program flag" ,
"0: spl_token_program" ,
"1: token_program_2022" ,
"" ,
"bit1: quote token program flag" ,
"0: spl_token_program" ,
"1: token_program_2022"
],
"type" : "u8"
},
{
"name" : "amm_creator_fee_on" ,
"docs" : [
"migrate to cpmm, creator fee on quote token or both token"
],
"type" : {
"defined" : {
"name" : "AmmCreatorFeeOn"
}
}
},
{
"name" : "platform_vesting_share" ,
"docs" : [
"platform vesting token amount"
],
"type" : "u64"
},
{
"name" : "padding" ,
"docs" : [
"padding for future updates"
],
"type" : {
"array" : [
"u8" ,
54
]
}
}
]
}
},
{
"name" : "PoolStatus" ,
"docs" : [
"Represents the different states a pool can be in" ,
"* Fund - Initial state where pool is accepting funds" ,
"* Migrate - Pool funding has ended and waiting for migration" ,
"* Trade - Pool migration is complete and amm trading is enabled"
],
"type" : {
"kind" : "enum" ,
"variants" : [
{
"name" : "Fund"
},
{
"name" : "Migrate"
},
{
"name" : "Trade"
}
]
}
},
{
"name" : "TradeDirection" ,
"docs" : [
"Specifies the direction of a trade in the bonding curve" ,
"This is important because curves can treat tokens differently through weights or offsets"
],
"type" : {
"kind" : "enum" ,
"variants" : [
{
"name" : "Buy"
},
{
"name" : "Sell"
}
]
}
},
{
"name" : "TradeEvent" ,
"docs" : [
"Emitted when trade process"
],
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "pool_state" ,
"type" : "pubkey"
},
{
"name" : "total_base_sell" ,
"type" : "u64"
},
{
"name" : "virtual_base" ,
"type" : "u64"
},
{
"name" : "virtual_quote" ,
"type" : "u64"
},
{
"name" : "real_base_before" ,
"type" : "u64"
},
{
"name" : "real_quote_before" ,
"type" : "u64"
},
{
"name" : "real_base_after" ,
"type" : "u64"
},
{
"name" : "real_quote_after" ,
"type" : "u64"
},
{
"name" : "amount_in" ,
"type" : "u64"
},
{
"name" : "amount_out" ,
"type" : "u64"
},
{
"name" : "protocol_fee" ,
"type" : "u64"
},
{
"name" : "platform_fee" ,
"type" : "u64"
},
{
"name" : "creator_fee" ,
"type" : "u64"
},
{
"name" : "share_fee" ,
"type" : "u64"
},
{
"name" : "trade_direction" ,
"type" : {
"defined" : {
"name" : "TradeDirection"
}
}
},
{
"name" : "pool_status" ,
"type" : {
"defined" : {
"name" : "PoolStatus"
}
}
},
{
"name" : "exact_in" ,
"type" : "bool"
}
]
}
},
{
"name" : "TransferFeeExtensionParams" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "transfer_fee_basis_points" ,
"docs" : [
"denominator is 10000, currently, this value cannot exceed 5%, which is 500."
],
"type" : "u16"
},
{
"name" : "maximum_fee" ,
"docs" : [
"Maximum fee on each transfers, the value must exceed supply * transfer_fee_basis_points / 10000"
],
"type" : "u64"
}
]
}
},
{
"name" : "VestingParams" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "total_locked_amount" ,
"type" : "u64"
},
{
"name" : "cliff_period" ,
"type" : "u64"
},
{
"name" : "unlock_period" ,
"type" : "u64"
}
]
}
},
{
"name" : "VestingRecord" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "epoch" ,
"docs" : [
"Account update epoch"
],
"type" : "u64"
},
{
"name" : "pool" ,
"docs" : [
"The pool state account"
],
"type" : "pubkey"
},
{
"name" : "beneficiary" ,
"docs" : [
"The beneficiary of the vesting account"
],
"type" : "pubkey"
},
{
"name" : "claimed_amount" ,
"docs" : [
"The amount of tokens claimed"
],
"type" : "u64"
},
{
"name" : "token_share_amount" ,
"docs" : [
"The share amount of the token to be vested"
],
"type" : "u64"
},
{
"name" : "padding" ,
"docs" : [
"padding for future updates"
],
"type" : {
"array" : [
"u64" ,
8
]
}
}
]
}
},
{
"name" : "VestingSchedule" ,
"type" : {
"kind" : "struct" ,
"fields" : [
{
"name" : "total_locked_amount" ,
"type" : "u64"
},
{
"name" : "cliff_period" ,
"type" : "u64"
},
{
"name" : "unlock_period" ,
"type" : "u64"
},
{
"name" : "start_time" ,
"type" : "u64"
},
{
"name" : "allocated_share_amount" ,
"docs" : [
"Total allocated share amount of the base token, not greater than total_locked_amount"
],
"type" : "u64"
}
]
}
}
]
2026-08-13 05:53:20 +08:00
}