Parcel #9efa8f178qyrvtn

Created by Anonymous
Public

Created April 27, 2025 Expires in 19 days

Loading editor...

{
  "version": "0.1.0",
  "name": "pump",
  "instructions": [
    {
      "name": "initialize",
      "docs": ["Creates the global state."],
      "accounts": [
        { "name": "global", "isMut": true, "isSigner": false },
        { "name": "user", "isMut": true, "isSigner": true },
        { "name": "systemProgram", "isMut": false, "isSigner": false }
      ],
      "args": []
    },
    {
      "name": "setParams",
      "docs": ["Sets the global state parameters."],
      "accounts": [
        { "name": "global", "isMut": true, "isSigner": false },
        { "name": "user", "isMut": true, "isSigner": true },
        { "name": "systemProgram", "isMut": false, "isSigner": false },
        { "name": "eventAuthority", "isMut": false, "isSigner": false },
        { "name": "program", "isMut": false, "isSigner": false }
      ],
      "args": [
        { "name": "feeRecipient", "type": "publicKey" },
        { "name": "initialVirtualTokenReserves", "type": "u64" },
        { "name": "initialVirtualSolReserves", "type": "u64" },
        { "name": "initialRealTokenReserves", "type": "u64" },
        { "name": "tokenTotalSupply", "type": "u64" },
        { "name": "feeBasisPoints", "type": "u64" }
      ]
    },
    {
      "name": "create",
      "docs": ["Creates a new coin and bonding curve."],
      "accounts": [
        { "name": "mint", "isMut": true, "isSigner": true },
        { "name": "mintAuthority", "isMut": false, "isSigner": false },
        { "name": "bondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedBondingCurve", "isMut": true, "isSigner": false },
        { "name": "global", "isMut": false, "isSigner": false },
        { "name": "mplTokenMetadata", "isMut": false, "isSigner": false },
        { "name": "metadata", "isMut": true, "isSigner": false },
        { "name": "user", "isMut": true, "isSigner": true },
        { "name": "systemProgram", "isMut": false, "isSigner": false },
        { "name": "tokenProgram", "isMut": false, "isSigner": false },
        { "name": "associatedTokenProgram", "isMut": false, "isSigner": false },
        { "name": "rent", "isMut": false, "isSigner": false },
        { "name": "eventAuthority", "isMut": false, "isSigner": false },
        { "name": "program", "isMut": false, "isSigner": false }
      ],
      "args": [
        { "name": "name", "type": "string" },
        { "name": "symbol", "type": "string" },
        { "name": "uri", "type": "string" }
      ]
    },
    {
      "name": "buy",
      "docs": ["Buys tokens from a bonding curve."],
      "accounts": [
        { "name": "global", "isMut": false, "isSigner": false },
        { "name": "feeRecipient", "isMut": true, "isSigner": false },
        { "name": "mint", "isMut": false, "isSigner": false },
        { "name": "bondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedBondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedUser", "isMut": true, "isSigner": false },
        { "name": "user", "isMut": true, "isSigner": true },
        { "name": "systemProgram", "isMut": false, "isSigner": false },
        { "name": "tokenProgram", "isMut": false, "isSigner": false },
        { "name": "rent", "isMut": false, "isSigner": false },
        { "name": "eventAuthority", "isMut": false, "isSigner": false },
        { "name": "program", "isMut": false, "isSigner": false }
      ],
      "args": [
        { "name": "amount", "type": "u64" },
        { "name": "maxSolCost", "type": "u64" }
      ]
    },
    {
      "name": "sell",
      "docs": ["Sells tokens into a bonding curve."],
      "accounts": [
        { "name": "global", "isMut": false, "isSigner": false },
        { "name": "feeRecipient", "isMut": true, "isSigner": false },
        { "name": "mint", "isMut": false, "isSigner": false },
        { "name": "bondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedBondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedUser", "isMut": true, "isSigner": false },
        { "name": "user", "isMut": true, "isSigner": true },
        { "name": "systemProgram", "isMut": false, "isSigner": false },
        { "name": "associatedTokenProgram", "isMut": false, "isSigner": false },
        { "name": "tokenProgram", "isMut": false, "isSigner": false },
        { "name": "eventAuthority", "isMut": false, "isSigner": false },
        { "name": "program", "isMut": false, "isSigner": false }
      ],
      "args": [
        { "name": "amount", "type": "u64" },
        { "name": "minSolOutput", "type": "u64" }
      ]
    },
    {
      "name": "withdraw",
      "docs": [
        "Allows the admin to withdraw liquidity for a migration once the bonding curve completes"
      ],
      "accounts": [
        { "name": "global", "isMut": false, "isSigner": false },
        { "name": "lastWithdraw", "isMut": true, "isSigner": false },
        { "name": "mint", "isMut": false, "isSigner": false },
        { "name": "bondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedBondingCurve", "isMut": true, "isSigner": false },
        { "name": "associatedUser", "isMut": true, "isSigner": false },
        { "name": "user", "isMut": true, "isSigner": true },
        { "name": "systemProgram", "isMut": false, "isSigner": false },
        { "name": "tokenProgram", "isMut": false, "isSigner": false },
        { "name": "rent", "isMut": false, "isSigner": false },
        { "name": "eventAuthority", "isMut": false, "isSigner": false },
        { "name": "program", "isMut": false, "isSigner": false }
      ],
      "args": []
    }
  ],
  "accounts": [
    {
      "name": "Global",
      "type": {
        "kind": "struct",
        "fields": [
          { "name": "initialized", "type": "bool" },
          { "name": "authority", "type": "publicKey" },
          { "name": "feeRecipient", "type": "publicKey" },
          { "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" }
        ]
      }
    }
  ],
  "events": [
    {
      "name": "CreateEvent",
      "fields": [
        { "name": "name", "type": "string", "index": false },
        { "name": "symbol", "type": "string", "index": false },
        { "name": "uri", "type": "string", "index": false },
        { "name": "mint", "type": "publicKey", "index": false },
        { "name": "bondingCurve", "type": "publicKey", "index": false },
        { "name": "user", "type": "publicKey", "index": false }
      ]
    },
    {
      "name": "TradeEvent",
      "fields": [
        { "name": "mint", "type": "publicKey", "index": false },
        { "name": "solAmount", "type": "u64", "index": false },
        { "name": "tokenAmount", "type": "u64", "index": false },
        { "name": "isBuy", "type": "bool", "index": false },
        { "name": "user", "type": "publicKey", "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",
      "fields": [
        { "name": "user", "type": "publicKey", "index": false },
        { "name": "mint", "type": "publicKey", "index": false },
        { "name": "bondingCurve", "type": "publicKey", "index": false },
        { "name": "timestamp", "type": "i64", "index": false }
      ]
    },
    {
      "name": "SetParamsEvent",
      "fields": [
        { "name": "feeRecipient", "type": "publicKey", "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"
    }
  ]
}