{
    "version": "0.1.0",
    "name": "token_creator",
    "instructions": [
        {
            "name": "createToken",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "config",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "mint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "metadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "partnerWallet",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "name",
                    "type": "string"
                },
                {
                    "name": "symbol",
                    "type": "string"
                },
                {
                    "name": "uniqueKey",
                    "type": "string"
                },
                {
                    "name": "decimals",
                    "type": "u8"
                },
                {
                    "name": "initialSupply",
                    "type": "u64"
                },
                {
                    "name": "uri",
                    "type": "string"
                },
                {
                    "name": "revokeMint",
                    "type": "bool"
                },
                {
                    "name": "revokeFreeze",
                    "type": "bool"
                },
                {
                    "name": "partnerWallet",
                    "type": "publicKey"
                },
                {
                    "name": "partnerAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "revokeAuthority",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "mint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "config",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "revokeMint",
                    "type": "bool"
                },
                {
                    "name": "revokeFreeze",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "loadStats",
            "accounts": [
                {
                    "name": "tokenPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        }
    ],
    "accounts": [
        {
            "name": "networkFeeConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "feeLamports",
                        "type": "u64"
                    },
                    {
                        "name": "revokeFeelamports",
                        "type": "u64"
                    },
                    {
                        "name": "bump",
                        "type": "u8"
                    }
                ]
            }
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "NoFreezeAuthority",
            "msg": "The mint has no freeze authority"
        },
        {
            "code": 6001,
            "name": "NoMintAuthority",
            "msg": "The mint has no mint authority"
        },
        {
            "code": 6002,
            "name": "InvalidPDA",
            "msg": "Invalid PDA"
        },
        {
            "code": 6003,
            "name": "InvalidReceiver",
            "msg": "Invalid receiver address"
        },
        {
            "code": 6004,
            "name": "InsufficientFunds",
            "msg": "Insufficient funds in payment account"
        },
        {
            "code": 6005,
            "name": "UnauthorizedOwner",
            "msg": "El firmante no es el propietario de la autoridad"
        },
        {
            "code": 6006,
            "name": "NoAuthoritySpecified",
            "msg": "No authority specified to revoke"
        },
        {
            "code": 6007,
            "name": "UnauthorizedAdmin",
            "msg": "Unauthorized admin"
        }
    ]
}