PagamentiAbbonamenti

Panoramica

Il Programma di Delega delle Sottoscrizioni consente agli sviluppatori di permettere agli utenti di autorizzare futuri trasferimenti di token dai loro wallet con limiti chiari. È progettato per pagamenti ricorrenti, sottoscrizioni, fatturazione di esercenti e altri flussi in cui un utente non dovrebbe dover firmare manualmente ogni trasferimento.

Scopo

Gli account token di Solana possono approvare un'altra autorità per spostare token, ma ogni account token può avere solo un'autorità approvata alla volta. Questo rende difficile per un singolo wallet supportare in sicurezza diverse configurazioni di spesa per lo stesso token, come una sottoscrizione mensile, un'indennità di spesa fissa e un accordo di fatturazione con un esercente.

Questo programma risolve il problema fornendo a ogni coppia (user, token mint) un'Autorità di Sottoscrizione controllata dal programma. L'account token dell'utente approva quell'autorità una sola volta. Il programma verifica poi ogni trasferimento richiesto confrontandolo con un record separato che definisce chi può prelevare fondi, quanto può prelevare e quando l'autorizzazione scade o si ripristina.

L'Autorità di Sottoscrizione non può spostare fondi da sola. Un trasferimento ha successo solo quando corrisponde a una delle autorizzazioni attive dell'utente.

ID del Programma

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

L'ID del programma è dichiarato in program/src/lib.rs. I flussi di lavoro locali di Surfpool installano il programma a questo indirizzo canonico.

Modelli di Delega

Il programma supporta tre modelli di autorizzazione:

ModelloScopo
Delega fissaConsente a un altro wallet o servizio di spendere fino a un importo totale fisso, opzionalmente fino a una data di scadenza.
Delega ricorrenteConsente a un altro wallet o servizio di spendere fino a un limite che si ripristina ogni periodo, ad esempio giornaliero, settimanale o mensile.
Piano di sottoscrizioneConsente a un esercente di pubblicare termini di fatturazione che gli utenti possono accettare, quindi permette ai riscossori approvati di addebitare agli abbonati ogni periodo di fatturazione.

Token Supportati

Il programma supporta i token creati sia con SPL Token che con Token-2022. Per i mint Token-2022, rifiuta le estensioni che renderebbero i trasferimenti pianificati o delegati non sicuri o poco chiari, inclusi ConfidentialTransfer, NonTransferable, PermanentDelegate, TransferHook, TransferFee, MintCloseAuthority e Pausable.

Eventi On-Chain

Il programma emette eventi on-chain in modo che gli indicizzatori e le applicazioni possano monitorare l'attività importante. Questi eventi coprono le modifiche agli abbonamenti e i trasferimenti effettuati tramite flussi fissi, ricorrenti e basati su piani di abbonamento.

Versionamento

I record di proprietà del programma includono un campo versione. Questo fornisce al programma un percorso per aggiornare i dati dell'account nel tempo senza interrompere gli utenti esistenti. La strategia di migrazione supporta:

  • Aggiornamento lazy in-place
  • Istruzione di migrazione esplicita
  • Fallback con revoca e ricreazione

Collaboratori

Il progetto è mantenuto dai collaboratori del repository solana-program/subscriptions.

Stato dell'Audit

Il programma è stato sottoposto ad audit da Cantina. Lo stato dell'audit, il commit di riferimento, il commit con le correzioni verificate e l'attuale delta non sottoposto ad audit sono tracciati nella directory audits/ del repository.

Applicazione Demo

Se vuoi sperimentare il programma in prima persona, puoi visualizzare un' applicazione di esempio qui per vedere un'implementazione end-to-end dei concetti trattati in questa sezione.

Is this page helpful?

Indice dei contenuti

Modifica pagina
© 2026 Solana Foundation. Tutti i diritti riservati.