Skip to content

Instantly share code, notes, and snippets.

@cdb18
Created August 6, 2022 04:39
Show Gist options
  • Save cdb18/43cff60234a9e2a02949347f11c91240 to your computer and use it in GitHub Desktop.
Save cdb18/43cff60234a9e2a02949347f11c91240 to your computer and use it in GitHub Desktop.
Candy Machine IDL
{
"version": "4.0.2",
"name": "candy_machine",
"instructions": [
{
"name": "initializeCandyMachine",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "wallet",
"isMut": false,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "data",
"type": {
"defined": "CandyMachineData"
}
}
]
},
{
"name": "updateCandyMachine",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "wallet",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "data",
"type": {
"defined": "CandyMachineData"
}
}
]
},
{
"name": "updateAuthority",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "wallet",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "newAuthority",
"type": {
"option": "publicKey"
}
}
]
},
{
"name": "addConfigLines",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "index",
"type": "u32"
},
{
"name": "configLines",
"type": {
"vec": {
"defined": "ConfigLine"
}
}
}
]
},
{
"name": "setCollection",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "collectionPda",
"isMut": true,
"isSigner": false
},
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "metadata",
"isMut": false,
"isSigner": false
},
{
"name": "mint",
"isMut": false,
"isSigner": false
},
{
"name": "edition",
"isMut": false,
"isSigner": false
},
{
"name": "collectionAuthorityRecord",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMetadataProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "removeCollection",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "collectionPda",
"isMut": true,
"isSigner": false
},
{
"name": "metadata",
"isMut": false,
"isSigner": false
},
{
"name": "mint",
"isMut": false,
"isSigner": false
},
{
"name": "collectionAuthorityRecord",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMetadataProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "mintNft",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "candyMachineCreator",
"isMut": false,
"isSigner": false
},
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "wallet",
"isMut": true,
"isSigner": false
},
{
"name": "metadata",
"isMut": true,
"isSigner": false
},
{
"name": "mint",
"isMut": true,
"isSigner": false
},
{
"name": "mintAuthority",
"isMut": false,
"isSigner": true
},
{
"name": "updateAuthority",
"isMut": false,
"isSigner": true
},
{
"name": "masterEdition",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMetadataProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "clock",
"isMut": false,
"isSigner": false,
"docs": [
"Account not actually used."
]
},
{
"name": "recentBlockhashes",
"isMut": false,
"isSigner": false
},
{
"name": "instructionSysvarAccount",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "creatorBump",
"type": "u8"
}
]
},
{
"name": "setCollectionDuringMint",
"accounts": [
{
"name": "candyMachine",
"isMut": false,
"isSigner": false
},
{
"name": "metadata",
"isMut": false,
"isSigner": false
},
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "collectionPda",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMetadataProgram",
"isMut": false,
"isSigner": false
},
{
"name": "instructions",
"isMut": false,
"isSigner": false
},
{
"name": "collectionMint",
"isMut": false,
"isSigner": false
},
{
"name": "collectionMetadata",
"isMut": false,
"isSigner": false
},
{
"name": "collectionMasterEdition",
"isMut": false,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "collectionAuthorityRecord",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "withdrawFunds",
"accounts": [
{
"name": "candyMachine",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
}
],
"args": []
}
],
"accounts": [
{
"name": "CandyMachine",
"docs": [
"Candy machine state and config data."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "authority",
"type": "publicKey"
},
{
"name": "wallet",
"type": "publicKey"
},
{
"name": "tokenMint",
"type": {
"option": "publicKey"
}
},
{
"name": "itemsRedeemed",
"type": "u64"
},
{
"name": "data",
"type": {
"defined": "CandyMachineData"
}
}
]
}
},
{
"name": "CollectionPDA",
"docs": [
"Collection PDA account"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "mint",
"type": "publicKey"
},
{
"name": "candyMachine",
"type": "publicKey"
}
]
}
}
],
"types": [
{
"name": "CandyMachineData",
"docs": [
"Candy machine settings data."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "uuid",
"type": "string"
},
{
"name": "price",
"type": "u64"
},
{
"name": "symbol",
"docs": [
"The symbol for the asset"
],
"type": "string"
},
{
"name": "sellerFeeBasisPoints",
"docs": [
"Royalty basis points that goes to creators in secondary sales (0-10000)"
],
"type": "u16"
},
{
"name": "maxSupply",
"type": "u64"
},
{
"name": "isMutable",
"type": "bool"
},
{
"name": "retainAuthority",
"type": "bool"
},
{
"name": "goLiveDate",
"type": {
"option": "i64"
}
},
{
"name": "endSettings",
"type": {
"option": {
"defined": "EndSettings"
}
}
},
{
"name": "creators",
"type": {
"vec": {
"defined": "Creator"
}
}
},
{
"name": "hiddenSettings",
"type": {
"option": {
"defined": "HiddenSettings"
}
}
},
{
"name": "whitelistMintSettings",
"type": {
"option": {
"defined": "WhitelistMintSettings"
}
}
},
{
"name": "itemsAvailable",
"type": "u64"
},
{
"name": "gatekeeper",
"docs": [
"If [`Some`] requires gateway tokens on mint"
],
"type": {
"option": {
"defined": "GatekeeperConfig"
}
}
}
]
}
},
{
"name": "ConfigLine",
"docs": [
"Individual config line for storing NFT data pre-mint."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "uri",
"docs": [
"URI pointing to JSON representing the asset"
],
"type": "string"
}
]
}
},
{
"name": "EndSettings",
"type": {
"kind": "struct",
"fields": [
{
"name": "endSettingType",
"type": {
"defined": "EndSettingType"
}
},
{
"name": "number",
"type": "u64"
}
]
}
},
{
"name": "Creator",
"type": {
"kind": "struct",
"fields": [
{
"name": "address",
"type": "publicKey"
},
{
"name": "verified",
"type": "bool"
},
{
"name": "share",
"type": "u8"
}
]
}
},
{
"name": "HiddenSettings",
"docs": [
"Hidden Settings for large mints used with offline data."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "uri",
"type": "string"
},
{
"name": "hash",
"type": {
"array": [
"u8",
32
]
}
}
]
}
},
{
"name": "WhitelistMintSettings",
"type": {
"kind": "struct",
"fields": [
{
"name": "mode",
"type": {
"defined": "WhitelistMintMode"
}
},
{
"name": "mint",
"type": "publicKey"
},
{
"name": "presale",
"type": "bool"
},
{
"name": "discountPrice",
"type": {
"option": "u64"
}
}
]
}
},
{
"name": "GatekeeperConfig",
"docs": [
"Configurations options for the gatekeeper."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "gatekeeperNetwork",
"docs": [
"The network for the gateway token required"
],
"type": "publicKey"
},
{
"name": "expireOnUse",
"docs": [
"Whether or not the token should expire after minting.",
"The gatekeeper network must support this if true."
],
"type": "bool"
}
]
}
},
{
"name": "EndSettingType",
"type": {
"kind": "enum",
"variants": [
{
"name": "Date"
},
{
"name": "Amount"
}
]
}
},
{
"name": "WhitelistMintMode",
"type": {
"kind": "enum",
"variants": [
{
"name": "BurnEveryTime"
},
{
"name": "NeverBurn"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "IncorrectOwner",
"msg": "Account does not have correct owner!"
},
{
"code": 6001,
"name": "Uninitialized",
"msg": "Account is not initialized!"
},
{
"code": 6002,
"name": "MintMismatch",
"msg": "Mint Mismatch!"
},
{
"code": 6003,
"name": "IndexGreaterThanLength",
"msg": "Index greater than length!"
},
{
"code": 6004,
"name": "NumericalOverflowError",
"msg": "Numerical overflow error!"
},
{
"code": 6005,
"name": "TooManyCreators",
"msg": "Can only provide up to 4 creators to candy machine (because candy machine is one)!"
},
{
"code": 6006,
"name": "UuidMustBeExactly6Length",
"msg": "Uuid must be exactly of 6 length"
},
{
"code": 6007,
"name": "NotEnoughTokens",
"msg": "Not enough tokens to pay for this minting"
},
{
"code": 6008,
"name": "NotEnoughSOL",
"msg": "Not enough SOL to pay for this minting"
},
{
"code": 6009,
"name": "TokenTransferFailed",
"msg": "Token transfer failed"
},
{
"code": 6010,
"name": "CandyMachineEmpty",
"msg": "Candy machine is empty!"
},
{
"code": 6011,
"name": "CandyMachineNotLive",
"msg": "Candy machine is not live!"
},
{
"code": 6012,
"name": "HiddenSettingsConfigsDoNotHaveConfigLines",
"msg": "Configs that are using hidden uris do not have config lines, they have a single hash representing hashed order"
},
{
"code": 6013,
"name": "CannotChangeNumberOfLines",
"msg": "Cannot change number of lines unless is a hidden config"
},
{
"code": 6014,
"name": "DerivedKeyInvalid",
"msg": "Derived key invalid"
},
{
"code": 6015,
"name": "PublicKeyMismatch",
"msg": "Public key mismatch"
},
{
"code": 6016,
"name": "NoWhitelistToken",
"msg": "No whitelist token present"
},
{
"code": 6017,
"name": "TokenBurnFailed",
"msg": "Token burn failed"
},
{
"code": 6018,
"name": "GatewayAppMissing",
"msg": "Missing gateway app when required"
},
{
"code": 6019,
"name": "GatewayTokenMissing",
"msg": "Missing gateway token when required"
},
{
"code": 6020,
"name": "GatewayTokenExpireTimeInvalid",
"msg": "Invalid gateway token expire time"
},
{
"code": 6021,
"name": "NetworkExpireFeatureMissing",
"msg": "Missing gateway network expire feature when required"
},
{
"code": 6022,
"name": "CannotFindUsableConfigLine",
"msg": "Unable to find an unused config line near your random number index"
},
{
"code": 6023,
"name": "InvalidString",
"msg": "Invalid string"
},
{
"code": 6024,
"name": "SuspiciousTransaction",
"msg": "Suspicious transaction detected"
},
{
"code": 6025,
"name": "CannotSwitchToHiddenSettings",
"msg": "Cannot Switch to Hidden Settings after items available is greater than 0"
},
{
"code": 6026,
"name": "IncorrectSlotHashesPubkey",
"msg": "Incorrect SlotHashes PubKey"
},
{
"code": 6027,
"name": "IncorrectCollectionAuthority",
"msg": "Incorrect collection NFT authority"
},
{
"code": 6028,
"name": "MismatchedCollectionPDA",
"msg": "Collection PDA address is invalid"
},
{
"code": 6029,
"name": "MismatchedCollectionMint",
"msg": "Provided mint account doesn't match collection PDA mint"
},
{
"code": 6030,
"name": "SlotHashesEmpty",
"msg": "Slot hashes Sysvar is empty"
},
{
"code": 6031,
"name": "MetadataAccountMustBeEmpty",
"msg": "The metadata account has data in it, and this must be empty to mint a new NFT"
},
{
"code": 6032,
"name": "MissingSetCollectionDuringMint",
"msg": "Missing set collection during mint IX for Candy Machine with collection set"
},
{
"code": 6033,
"name": "NoChangingCollectionDuringMint",
"msg": "Can't change collection settings after items have begun to be minted"
},
{
"code": 6034,
"name": "CandyCollectionRequiresRetainAuthority",
"msg": "Retain authority must be true for Candy Machines with a collection set"
},
{
"code": 6035,
"name": "GatewayProgramError",
"msg": "Error within Gateway program"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment