PagamentiAbbonamenti

Chiudi Autorità di Sottoscrizione

Un'Autorità di Sottoscrizione è il PDA che il programma utilizza come delegato SPL Token per l'account token di un utente. Chiudilo quando l'utente non ha più deleghe fisse attive, deleghe ricorrenti o deleghe di sottoscrizione per quella mint.

La chiusura restituisce il rent dell'account al suo finanziatore (l'utente, o qualsiasi altro pagante che lo ha finanziato). Chiudi prima eventuali deleghe attive.

La chiusura non cancella l'approvazione del delegato SPL Token. Una volta che il PDA è scomparso l'approvazione è inattiva, ma rimane sul token account fino alla revoca — vedi Revocare l'Approvazione del Delegato.

Chiudere l'Authority

import { address, createClient } from '@solana/kit';
import { solanaLocalRpc } from '@solana/kit-plugin-rpc';
import { signer } from '@solana/kit-plugin-signer';
import {
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 [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({
user: userSigner.address,
tokenMint,
});
await client.subscriptions.instructions
.closeSubscriptionAuthority({
user: userSigner,
tokenMint,
// Include this only when a sponsor funded the Subscription Authority.
receiver: sponsorSigner.address,
})
.sendTransaction();

Revocare l'Approvazione del Delegato

RevokeSubscriptionAuthority cancella l'approvazione del delegato residua dal token account dell'utente. Chiama la funzione Revoke del Token Program, firmata dall'utente, quindi funziona indipendentemente dal fatto che la Subscription Authority esista ancora. Inviala da sola o insieme a CloseSubscriptionAuthority.

Passa il Token Program proprietario del mint: TOKEN_PROGRAM_ADDRESS per i mint SPL Token, oppure TOKEN_2022_PROGRAM_ADDRESS (da @solana-program/token-2022) per i mint Token-2022.

import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
await client.subscriptions.instructions
.revokeSubscriptionAuthority({
user: userSigner,
tokenMint,
tokenProgram: TOKEN_PROGRAM_ADDRESS,
})
.sendTransaction();

Note

  • L'utente firma la transazione di chiusura.
  • Se uno sponsor ha finanziato la Subscription Authority, passa quell'account sponsor come receiver affinché il rent venga restituito al pagante registrato.
  • Chiudi i PDA di delega fissa, ricorrente e in abbonamento prima di chiudere la Subscription Authority.
  • Se l'utente crea una nuova delega in seguito, inizializza una nuova Subscription Authority per lo stesso mint.
  • La chiusura non cancella l'approvazione del delegato token. Usa RevokeSubscriptionAuthority per rimuoverla dal token account dell'utente.

Is this page helpful?

Indice dei contenuti

Modifica pagina
© 2026 Solana Foundation. Tutti i diritti riservati.