PagamentosAssinaturas

Criar Autoridade de Subscrição

Uma Autoridade de Subscrição é um PDA que o programa utiliza como delegado de SPL Token para a token account de um utilizador e um token mint. Crie-a antes de criar delegações fixas, delegações recorrentes ou subscrições de planos de subscrição para esse mint.

A token account do utilizador já deve existir. A inicialização cria o PDA de Autoridade de Subscrição e aprova-o como delegado de token na token account do utilizador.

Criar a Autoridade

import { address, createClient } from '@solana/kit';
import { solanaLocalRpc } from '@solana/kit-plugin-rpc';
import { signer } from '@solana/kit-plugin-signer';
import { findAssociatedTokenPda, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
import {
fetchMaybeSubscriptionAuthority,
findSubscriptionAuthorityPda,
subscriptionsProgram,
} from '@solana/subscriptions';
const client = createClient()
.use(signer(userSigner))
.use(solanaLocalRpc({ rpcUrl: 'http://127.0.0.1:8899' }))
.use(subscriptionsProgram());
const tokenMint = address('TOKEN_MINT_ADDRESS_HERE');
const [userAta] = await findAssociatedTokenPda({
mint: tokenMint,
owner: userSigner.address,
tokenProgram: TOKEN_PROGRAM_ADDRESS,
});
const [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({
user: userSigner.address,
tokenMint,
});
const subscriptionAuthority = await fetchMaybeSubscriptionAuthority(
client.rpc,
subscriptionAuthorityPda,
);
if (!subscriptionAuthority.exists) {
await client.subscriptions.instructions
.initSubscriptionAuthority({
tokenMint,
tokenProgram: TOKEN_PROGRAM_ADDRESS,
userAta,
})
.sendTransaction();
}

Notas

  • O utilizador assina a transação de inicialização.
  • Crie uma Autoridade de Subscrição por par de utilizador e token mint.
  • Reutilize a Autoridade de Subscrição existente para delegações posteriores no mesmo mint.
  • Encerre a Autoridade de Subscrição apenas depois de cada delegação que dela depende ter sido revogada ou encerrada.

Is this page helpful?

Índice

Editar Página
© 2026 Fundação Solana. Todos os direitos reservados.