PaiementsAbonnements

Créer une Autorité d'Abonnement

Une Autorité d'Abonnement est un PDA que le programme utilise comme délégué de jeton SPL pour le token account d'un utilisateur et un mint de jeton. Créez-la avant de créer des délégations fixes, des délégations récurrentes ou des abonnements à un plan d'abonnement pour ce mint.

Le token account de l'utilisateur doit déjà exister. L'initialisation crée le PDA d'Autorité d'Abonnement et l'approuve en tant que délégué de jeton sur le token account de l'utilisateur.

Créer l'Autorité

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();
}

Remarques

  • L'utilisateur signe la transaction d'initialisation.
  • Créez une Autorité d'Abonnement par paire utilisateur et mint de jeton.
  • Réutilisez l'Autorité d'Abonnement existante pour les délégations ultérieures sur le même mint.
  • Fermez l'Autorité d'Abonnement uniquement après que chaque délégation qui en dépend ait été révoquée ou fermée.

Is this page helpful?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.