BetalingenAbonnementen

Overzicht

Het Subscriptions Delegation Program stelt ontwikkelaars in staat om gebruikers toe te staan toekomstige tokenoverdrachten vanuit hun wallets te autoriseren met duidelijke limieten. Het is ontworpen voor terugkerende betalingen, abonnementen, handelaarsfacturering en andere stromen waarbij een gebruiker niet elke overdracht handmatig hoeft te ondertekenen.

Doel

Solana token accounts kunnen een andere authority goedkeuren om tokens te verplaatsen, maar elk token account kan slechts één goedgekeurde authority tegelijk hebben. Dat maakt het moeilijk voor één wallet om veilig meerdere bestedingsregelingen voor dezelfde token te ondersteunen, zoals een maandelijks abonnement, een vast bestedingsbudget en een handelaarsfactureringsovereenkomst.

Dit programma lost dat op door elk (user, token mint)-paar een programmagestuurde Subscription Authority te geven. Het token account van de gebruiker keurt die authority eenmalig goed. Het programma controleert vervolgens elke gevraagde overdracht tegen een afzonderlijk record dat definieert wie geld kan opnemen, hoeveel ze kunnen opnemen en wanneer de autorisatie verloopt of wordt gereset.

De Subscription Authority kan zelfstandig geen geld verplaatsen. Een overdracht slaagt alleen wanneer deze overeenkomt met een van de actieve autorisaties van de gebruiker.

Programma-ID

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

Het programma-ID is gedeclareerd in program/src/lib.rs. Lokale Surfpool-workflows installeren het programma op dit canonieke adres.

Delegatiemodellen

Het programma ondersteunt drie autorisatiemodellen:

ModelDoel
Vaste delegatieLaat een andere wallet of service tot een vast totaalbedrag uitgeven, optioneel tot een vervaltijd.
Terugkerende delegatieLaat een andere wallet of service tot een limiet uitgeven die elke periode wordt gereset, zoals dagelijks, wekelijks of maandelijks.
AbonnementsplanLaat een handelaar factureringsvoorwaarden publiceren die gebruikers kunnen accepteren, en sta vervolgens goedgekeurde incasseerders toe om abonnees elke factureringsperiode te belasten.

Ondersteunde Tokens

Het programma ondersteunt tokens die zijn aangemaakt met zowel SPL Token als Token-2022. De enige Token-2022-extensie die wordt afgewezen is een geconfigureerde TransferHook (waarbij de hook authority of program_id is ingesteld). Een inerte TransferHook (beide niet ingesteld, en daardoor permanent onveranderlijk) en alle andere extensies zijn toegestaan.

On-Chain Gebeurtenissen

Het programma genereert on-chain gebeurtenissen zodat indexers en applicaties belangrijke activiteiten kunnen volgen. Deze gebeurtenissen omvatten abonnementswijzigingen en transfers die zijn uitgevoerd via vaste, terugkerende en abonnementsplan-flows.

Versiebeheer

Door het programma beheerde records bevatten een versieveld. Dit geeft het programma de mogelijkheid om accountgegevens in de loop van de tijd te upgraden zonder bestaande gebruikers te verstoren. De migratiestrategie ondersteunt:

  • Lazy in-place update
  • Expliciete migrate-instructie
  • Intrekken en opnieuw aanmaken als fallback

Contributors

Het project wordt onderhouden door contributors aan de solana-program/subscriptions repository.

Auditstatus

Het programma is geaudit door Cantina. Auditstatus, baseline commit, fix-verified commit en huidige niet-geaudite delta worden bijgehouden in de audits/ directory van de repository.

Demoapplicatie

Als je zelf met het programma wilt spelen, kun je een voorbeeldapplicatie hier bekijken om een end-to-end implementatie te zien van de concepten die in dit onderdeel worden behandeld.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.