ZahlungenAbonnements

Übersicht

Das Subscriptions Delegation Program ermöglicht es Entwicklern, Benutzern die Autorisierung zukünftiger Token-Transfers von ihren Wallets mit klaren Limits zu erlauben. Es ist für wiederkehrende Zahlungen, Abonnements, Händlerabrechnungen und andere Abläufe konzipiert, bei denen ein Benutzer nicht jeden Transfer manuell signieren muss.

Zweck

Solana token accounts können einer anderen Autorität die Bewegung von Token genehmigen, aber jedes token account kann jeweils nur eine genehmigte Autorität haben. Das erschwert es einem Wallet, mehrere Ausgabenvereinbarungen für denselben Token sicher zu unterstützen, wie z. B. ein monatliches Abonnement, ein festes Ausgabenlimit und eine Händlerabrechnungsvereinbarung.

Dieses Programm löst das, indem es jedem (user, token mint)-Paar eine programmgesteuerte Subscription Authority zuweist. Das token account des Benutzers genehmigt diese Autorität einmalig. Das Programm prüft dann jeden angeforderten Transfer anhand eines separaten Datensatzes, der festlegt, wer Geldmittel abziehen kann, wie viel abgezogen werden kann und wann die Autorisierung abläuft oder zurückgesetzt wird.

Die Subscription Authority kann Geldmittel nicht von sich aus bewegen. Ein Transfer ist nur dann erfolgreich, wenn er mit einer der aktiven Autorisierungen des Benutzers übereinstimmt.

Programm-ID

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

Die Programm-ID wird in program/src/lib.rs deklariert. Lokale Surfpool-Workflows installieren das Programm unter dieser kanonischen Adresse.

Delegationsmodelle

Das Programm unterstützt drei Autorisierungsmodelle:

ModellZweck
Feste DelegationErlaubt einem anderen Wallet oder Dienst, bis zu einem festen Gesamtbetrag auszugeben, optional bis zu einem Ablaufzeitpunkt.
Wiederkehrende DelegationErlaubt einem anderen Wallet oder Dienst, bis zu einem Limit auszugeben, das sich jede Periode zurücksetzt, z. B. täglich, wöchentlich oder monatlich.
AbonnementplanErlaubt einem Händler, Abrechnungsbedingungen zu veröffentlichen, die Benutzer akzeptieren können, und ermöglicht autorisierten Einzugsstellen, Abonnenten in jeder Abrechnungsperiode zu belasten.

Unterstützte Token

Das Programm unterstützt Token, die sowohl mit SPL Token als auch mit Token-2022 erstellt wurden. Die einzige Token-2022-Erweiterung, die abgelehnt wird, ist ein konfiguriertes TransferHook (bei dem der Hook authority oder program_id gesetzt ist). Ein inaktives TransferHook (beide nicht gesetzt und daher dauerhaft unveränderlich) sowie alle anderen Erweiterungen sind zulässig.

On-Chain-Events

Das Programm gibt On-Chain-Events aus, damit Indexer und Anwendungen wichtige Aktivitäten verfolgen können. Diese Events umfassen Abonnementänderungen und Übertragungen, die über feste, wiederkehrende und abonnementplanbasierte Abläufe durchgeführt werden.

Versionierung

Programmeigene Datensätze enthalten ein Versionsfeld. Dies gibt dem Programm die Möglichkeit, Kontodaten im Laufe der Zeit zu aktualisieren, ohne bestehende Benutzer zu beeinträchtigen. Die Migrationsstrategie unterstützt:

  • Verzögerte In-Place-Aktualisierung
  • Explizite Migrationsanweisung
  • Widerrufen und Neuerstellen als Fallback

Mitwirkende

Das Projekt wird von Mitwirkenden des solana-program/subscriptions-Repositorys gepflegt.

Audit-Status

Das Programm wurde von Cantina geprüft. Der Audit-Status, Basis-Commit, Fix-verifizierter Commit und das aktuelle nicht geprüfte Delta werden im audits/-Verzeichnis des Repositorys nachverfolgt.

Demo-Anwendung

Wenn Sie das Programm selbst ausprobieren möchten, können Sie sich eine Beispielanwendung hier ansehen, um eine vollständige Implementierung der in diesem Abschnitt behandelten Konzepte zu sehen.

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten
© 2026 Solana Foundation. Alle Rechte vorbehalten.