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 signiert die Initialisierungstransaktion.
  • Erstellen Sie eine Subscription Authority pro Benutzer- und Token Mint-Paar.
  • Verwenden Sie die vorhandene Subscription Authority für spätere Delegationen auf demselben Mint wieder.
  • Schließen Sie die Subscription Authority erst, nachdem jede Delegation, die von ihr abhängt, widerrufen oder geschlossen wurde.

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten
© 2026 Solana Foundation. Alle Rechte vorbehalten.