{
  "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
        },
        {
          "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",
      "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",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "mint",
            "type": "publicKey"
          },
          {
            "name": "candyMachine",
            "type": "publicKey"
          }
        ]
      }
    }
  ],
  "types": [
    {
      "name": "CandyMachineData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "uuid",
            "type": "string"
          },
          {
            "name": "price",
            "type": "u64"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "sellerFeeBasisPoints",
            "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",
            "type": {
              "option": {
                "defined": "GatekeeperConfig"
              }
            }
          }
        ]
      }
    },
    {
      "name": "ConfigLine",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "uri",
            "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",
      "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",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "gatekeeperNetwork",
            "type": "publicKey"
          },
          {
            "name": "expireOnUse",
            "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"
    }
  ],
  "metadata": {
    "address": "cndy3Z4yapfJBmL3ShUp5exZKqR3z33thTzeNMm2gRZ",
    "origin": "anchor",
    "binaryVersion": "0.24.2",
    "libVersion": "0.24.2"
  }
}