{
    "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
    "metadata": {
        "name": "pump",
        "version": "0.1.0",
        "spec": "0.1.0"
    },
    "instructions": [
        {
            "name": "initialize",
            "discriminator": [175, 175, 109, 31, 13, 152, 155, 237],
            "docs": ["Creates the global state."],
            "accounts": [
                {
                    "name": "global",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                }
            ],
            "args": []
        },
        {
            "name": "setParams",
            "discriminator": [165, 31, 134, 53, 189, 180, 130, 255],
            "docs": ["Sets the global state parameters."],
            "accounts": [
                {
                    "name": "global",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "event_authority",
                    "address": "Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1"
                },
                {
                    "name": "program",
                    "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
                }
            ],
            "args": [
                {
                    "name": "feeRecipient",
                    "type": "pubkey"
                },
                {
                    "name": "initialVirtualTokenReserves",
                    "type": "u64"
                },
                {
                    "name": "initialVirtualSolReserves",
                    "type": "u64"
                },
                {
                    "name": "initialRealTokenReserves",
                    "type": "u64"
                },
                {
                    "name": "tokenTotalSupply",
                    "type": "u64"
                },
                {
                    "name": "feeBasisPoints",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "create",
            "discriminator": [24, 30, 200, 40, 5, 28, 7, 119],
            "docs": ["Creates a new coin and bonding curve."],
            "accounts": [
                {
                    "name": "mint",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "mint_authority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    109,
                                    105,
                                    110,
                                    116,
                                    45,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "bonding_curve",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    98,
                                    111,
                                    110,
                                    100,
                                    105,
                                    110,
                                    103,
                                    45,
                                    99,
                                    117,
                                    114,
                                    118,
                                    101
                                ]
                            },
                            {
                                "kind": "account",
                                "path": "mint"
                            }
                        ]
                    }
                },
                {
                    "name": "associated_bonding_curve",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "global",
                    "writable": false,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "mpl_token_metadata",
                    "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
                },
                {
                    "name": "metadata",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "token_program",
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                },
                {
                    "name": "associated_token_program",
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
                },
                {
                    "name": "rent",
                    "address": "SysvarRent111111111111111111111111111111111"
                },
                {
                    "name": "event_authority",
                    "address": "Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1"
                },
                {
                    "name": "program",
                    "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
                }
            ],
            "args": [
                {
                    "name": "name",
                    "type": "string"
                },
                {
                    "name": "symbol",
                    "type": "string"
                },
                {
                    "name": "uri",
                    "type": "string"
                },
                {
                    "name": "creator",
                    "type": "pubkey"
                }
            ]
        },
        {
            "name": "buy",
            "discriminator": [102, 6, 61, 18, 1, 218, 235, 234],
            "docs": ["Buys tokens from a bonding curve."],
            "accounts": [
                {
                    "name": "global",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "fee_recipient",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "mint",
                    "writable": false,
                    "signer": false
                },
                {
                    "name": "bonding_curve",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    98,
                                    111,
                                    110,
                                    100,
                                    105,
                                    110,
                                    103,
                                    45,
                                    99,
                                    117,
                                    114,
                                    118,
                                    101
                                ]
                            },
                            {
                                "kind": "account",
                                "path": "mint"
                            }
                        ]
                    }
                },
                {
                    "name": "associated_bonding_curve",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "associated_user",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "token_program",
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                },
                {
                    "name": "rent",
                    "address": "SysvarRent111111111111111111111111111111111"
                },
                {
                    "name": "event_authority",
                    "address": "Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1"
                },
                {
                    "name": "program",
                    "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                },
                {
                    "name": "maxSolCost",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "sell",
            "discriminator": [51, 230, 133, 164, 1, 127, 131, 173],
            "docs": ["Sells tokens into a bonding curve."],
            "accounts": [
                {
                    "name": "global",
                    "writable": false,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "feeRecipient",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "mint",
                    "writable": false,
                    "signer": false
                },
                {
                    "name": "bonding_curve",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    98,
                                    111,
                                    110,
                                    100,
                                    105,
                                    110,
                                    103,
                                    45,
                                    99,
                                    117,
                                    114,
                                    118,
                                    101
                                ]
                            },
                            {
                                "kind": "account",
                                "path": "mint"
                            }
                        ]
                    }
                },
                {
                    "name": "associatedBondingCurve",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "associatedUser",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "associated_token_program",
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
                },
                {
                    "name": "token_program",
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                },
                {
                    "name": "event_authority",
                    "address": "Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1"
                },
                {
                    "name": "program",
                    "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                },
                {
                    "name": "minSolOutput",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdraw",
            "discriminator": [183, 18, 70, 156, 148, 109, 161, 34],
            "docs": [
                "Allows the admin to withdraw liquidity for a migration once the bonding curve completes"
            ],
            "accounts": [
                {
                    "name": "global",
                    "writable": false,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "lastWithdraw",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "mint",
                    "writable": false,
                    "signer": false
                },
                {
                    "name": "bonding_curve",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    98,
                                    111,
                                    110,
                                    100,
                                    105,
                                    110,
                                    103,
                                    45,
                                    99,
                                    117,
                                    114,
                                    118,
                                    101
                                ]
                            },
                            {
                                "kind": "account",
                                "path": "mint"
                            }
                        ]
                    }
                },
                {
                    "name": "associatedBondingCurve",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "associatedUser",
                    "writable": true,
                    "signer": false
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "system_program",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "token_program",
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                },
                {
                    "name": "rent",
                    "address": "SysvarRent111111111111111111111111111111111"
                },
                {
                    "name": "event_authority",
                    "address": "Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1"
                },
                {
                    "name": "program",
                    "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
                }
            ],
            "args": []
        }
    ],
    "accounts": [
        {
            "name": "BondingCurve",
            "discriminator": [
                23,
                183,
                248,
                55,
                96,
                216,
                172,
                96
            ]
        },
        {
            "name": "Global",
            "discriminator": [
                167,
                232,
                232,
                177,
                200,
                108,
                114,
                127
            ]
        }
    ],
    "events": [
        {
            "name": "CreateEvent",
            "discriminator": [27, 114, 169, 77, 222, 235, 99, 118]
        },
        {
            "name": "TradeEvent",
            "discriminator": [189, 219, 127, 211, 78, 230, 97, 238]
        },
        {
            "name": "CompleteEvent",
            "discriminator": [95, 114, 97, 156, 212, 46, 152, 8]
        },
        {
            "name": "SetParamsEvent",
            "discriminator": [223, 195, 159, 246, 62, 48, 143, 131]
        }
    ],
    "types": [
        {
            "name": "Global",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "initialized",
                        "type": "bool"
                    },
                    {
                        "name": "authority",
                        "type": "pubkey"
                    },
                    {
                        "name": "feeRecipient",
                        "type": "pubkey"
                    },
                    {
                        "name": "initialVirtualTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "initialVirtualSolReserves",
                        "type": "u64"
                    },
                    {
                        "name": "initialRealTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "tokenTotalSupply",
                        "type": "u64"
                    },
                    {
                        "name": "feeBasisPoints",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "LastWithdraw",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "lastWithdrawTimestamp",
                        "type": "i64"
                    }
                ]
            }
        },
        {
            "name": "BondingCurve",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "virtualTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "virtualSolReserves",
                        "type": "u64"
                    },
                    {
                        "name": "realTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "realSolReserves",
                        "type": "u64"
                    },
                    {
                        "name": "tokenTotalSupply",
                        "type": "u64"
                    },
                    {
                        "name": "complete",
                        "type": "bool"
                    }
                ]
            }
        },
        {
            "name": "CreateEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "type": "string",
                        "index": false
                    },
                    {
                        "name": "symbol",
                        "type": "string",
                        "index": false
                    },
                    {
                        "name": "uri",
                        "type": "string",
                        "index": false
                    },
                    {
                        "name": "mint",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "bondingCurve",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "user",
                        "type": "pubkey",
                        "index": false
                    }
                ]
            }
        },
        {
            "name": "TradeEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "mint",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "solAmount",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "tokenAmount",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "isBuy",
                        "type": "bool",
                        "index": false
                    },
                    {
                        "name": "user",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "timestamp",
                        "type": "i64",
                        "index": false
                    },
                    {
                        "name": "virtualSolReserves",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "virtualTokenReserves",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "realSolReserves",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "realTokenReserves",
                        "type": "u64",
                        "index": false
                    }
                ]
            }
        },
        {
            "name": "CompleteEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "user",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "mint",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "bondingCurve",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "timestamp",
                        "type": "i64",
                        "index": false
                    }
                ]
            }
        },
        {
            "name": "SetParamsEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "feeRecipient",
                        "type": "pubkey",
                        "index": false
                    },
                    {
                        "name": "initialVirtualTokenReserves",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "initialVirtualSolReserves",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "initialRealTokenReserves",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "tokenTotalSupply",
                        "type": "u64",
                        "index": false
                    },
                    {
                        "name": "feeBasisPoints",
                        "type": "u64",
                        "index": false
                    }
                ]
            }
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "NotAuthorized",
            "msg": "The given account is not authorized to execute this instruction."
        },
        {
            "code": 6001,
            "name": "AlreadyInitialized",
            "msg": "The program is already initialized."
        },
        {
            "code": 6002,
            "name": "TooMuchSolRequired",
            "msg": "slippage: Too much SOL required to buy the given amount of tokens."
        },
        {
            "code": 6003,
            "name": "TooLittleSolReceived",
            "msg": "slippage: Too little SOL received to sell the given amount of tokens."
        },
        {
            "code": 6004,
            "name": "MintDoesNotMatchBondingCurve",
            "msg": "The mint does not match the bonding curve."
        },
        {
            "code": 6005,
            "name": "BondingCurveComplete",
            "msg": "The bonding curve has completed and liquidity migrated to raydium."
        },
        {
            "code": 6006,
            "name": "BondingCurveNotComplete",
            "msg": "The bonding curve has not completed."
        },
        {
            "code": 6007,
            "name": "NotInitialized",
            "msg": "The program is not initialized."
        },
        {
            "code": 6008,
            "name": "WithdrawTooFrequent",
            "msg": "Withdraw too frequent"
        }
    ]
}
