Anchor
Token2022 com Anchor

Token2022 com Anchor

A Extensão Permanent Delegate

A extensão PermanentDelegate é uma extensão de conta Mint que permite um delegate permanente para todos os tokens da mint, capaz de transferir ou queimar qualquer token dessa mint, de qualquer conta de token.

Inicializando a Conta Mint

Para inicializar a extensão PermanentDelegate em uma conta Mint, podemos simplesmente usar a macro que o Anchor criou para nós.

Veja como criar uma mint com a extensão Permanent Delegate:

rust
#[derive(Accounts)]
pub struct CreateMint<'info> {
    #[account(mut)]
    pub signer: Signer<'info>,
    #[account(
        init,
        payer = signer,
        mint::decimals = 6,
        mint::authority = signer.key(),
        mint::token_program = token_program
        extensions::permanent_delegate::delegate = signer,
    )]
    pub mint: InterfaceAccount<'info, Mint>,
    pub system_program: Program<'info, System>,
    pub token_program: Interface<'info, TokenInterface>,
}

Ações Permissionadas

Diferentemente de delegates regulares que podem ser revogados, essa autoridade de delegate é permanente e imutável.

Isso significa que toda ação normal como transfer(), burn(), approve() e freeze() pode ser executada quando necessário diretamente pela autoridade sem precisar da assinatura do proprietário real.

Isso significa que podemos simplesmente usar as instruções normais transferChecked(), burnChecked(), ... e passar a autoridade PermanentDelegate no campo authority.

Blueshift © 2026Commit: 1b88646