Created
August 6, 2022 04:39
-
-
Save cdb18/43cff60234a9e2a02949347f11c91240 to your computer and use it in GitHub Desktop.
Candy Machine IDL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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