ZahlungenAbonnements

Subscription Authority erstellen

Eine Subscription Authority ist eine PDA, die das Programm als SPL Token Delegate für das token account eines Benutzers und ein Token Mint verwendet. Erstellen Sie sie, bevor Sie feste Delegationen, wiederkehrende Delegationen oder Abonnements für Subscription-Pläne für dieses Mint erstellen.

Das token account des Benutzers muss bereits vorhanden sein. Die Initialisierung erstellt die Subscription Authority PDA und genehmigt sie als Token Delegate für das token account des Benutzers.

Die Authority erstellen

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

Hinweise

  • Der Benutzer unterzeichnet die Initialisierungstransaktion.
  • Erstellen Sie eine Subscription Authority pro Benutzer und Token-Mint-Paar.
  • Verwenden Sie die vorhandene Subscription Authority für spätere Delegierungen auf demselben Mint wieder.
  • Ein Sponsor kann die Konten finanzieren: Übergeben Sie ein optionales payer an initSubscriptionAuthority (auch unterstützt bei createFixedDelegation, createRecurringDelegation und subscribe), oder konfigurieren Sie einen mit .use(payer(sponsorSigner)). rent wird dann an diesen Sponsor zurückgegeben, wenn Sie mit einem passenden receiver schließen. Lassen Sie es für den selbstfinanzierten Standard weg.
  • Schließen Sie die Subscription Authority erst, nachdem jede Delegierung, die davon abhängt, widerrufen oder geschlossen wurde.

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten
© 2026 Solana Foundation. Alle Rechte vorbehalten.