BetalingenAbonnementen

Abonnementsbevoegdheid aanmaken

Een Subscription Authority is een PDA die het programma gebruikt als SPL Token-gemachtigde voor het token account van één gebruiker en één tokenmunt. Maak deze aan voordat u vaste delegaties, terugkerende delegaties of abonnementsplanabonnementen voor die munt aanmaakt.

Het token account van de gebruiker moet al bestaan. Initialisatie creëert de Subscription Authority PDA en keurt deze goed als de tokengemachtigde op het token account van de gebruiker.

De bevoegdheid aanmaken

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

Opmerkingen

  • De gebruiker ondertekent de initialisatietransactie.
  • Maak één Subscription Authority aan per gebruiker en token mint-paar.
  • Hergebruik de bestaande Subscription Authority voor latere delegaties op dezelfde mint.
  • Een sponsor kan het account financieren: geef een optionele payer door aan initSubscriptionAuthority (ook ondersteund op createFixedDelegation, createRecurringDelegation en subscribe), of configureer er één met .use(payer(sponsorSigner)). rent wordt dan teruggegeven aan die sponsor wanneer je sluit met een bijbehorende receiver. Laat het weg voor de standaard zelfgefinancierde optie.
  • Sluit de Subscription Authority pas nadat elke delegatie die ervan afhankelijk is, is ingetrokken of gesloten.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.