PembayaranLangganan

Ikhtisar

Program Delegasi Langganan memungkinkan pengembang untuk mengizinkan pengguna menyetujui transfer token di masa mendatang dari dompet mereka dengan batasan yang jelas. Program ini dirancang untuk pembayaran berulang, langganan, penagihan merchant, dan alur lain di mana pengguna tidak perlu menandatangani setiap transfer secara manual.

Tujuan

Token account Solana dapat menyetujui otoritas lain untuk memindahkan token, tetapi setiap token account hanya dapat memiliki satu otoritas yang disetujui pada satu waktu. Hal ini menyulitkan satu dompet untuk mendukung beberapa pengaturan pengeluaran dengan aman untuk token yang sama, seperti langganan bulanan, tunjangan pengeluaran tetap, dan perjanjian penagihan merchant.

Program ini menyelesaikan masalah tersebut dengan memberikan setiap pasangan (user, token mint) sebuah Otoritas Langganan yang dikontrol program. Token account pengguna menyetujui otoritas tersebut satu kali. Program kemudian memeriksa setiap permintaan transfer terhadap catatan terpisah yang menentukan siapa yang dapat menarik dana, berapa banyak yang dapat mereka tarik, dan kapan otorisasi tersebut kedaluwarsa atau direset.

Otoritas Langganan tidak dapat memindahkan dana dengan sendirinya. Transfer hanya berhasil ketika sesuai dengan salah satu otorisasi aktif pengguna.

ID Program

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

ID program dideklarasikan dalam program/src/lib.rs. Alur kerja Surfpool lokal memasang program di alamat kanonik ini.

Model Delegasi

Program ini mendukung tiga model otorisasi:

ModelTujuan
Delegasi tetapIzinkan dompet atau layanan lain untuk membelanjakan hingga jumlah total tetap, secara opsional hingga waktu kedaluwarsa.
Delegasi berulangIzinkan dompet atau layanan lain untuk membelanjakan hingga batas yang direset setiap periode, seperti harian, mingguan, atau bulanan.
Paket langgananIzinkan merchant mempublikasikan syarat penagihan yang dapat diterima pengguna, lalu izinkan kolektor yang disetujui untuk menagih pelanggan setiap periode penagihan.

Token yang Didukung

Program ini mendukung token yang dibuat dengan SPL Token maupun Token-2022. Satu-satunya ekstensi Token-2022 yang ditolak adalah TransferHook yang dikonfigurasi (di mana hook authority atau program_id telah diatur). TransferHook yang tidak aktif (keduanya tidak diatur, sehingga selamanya tidak dapat diubah) dan semua ekstensi lainnya diizinkan.

Event On-Chain

Program ini menghasilkan event on-chain sehingga indexer dan aplikasi dapat melacak aktivitas penting. Event ini mencakup perubahan langganan dan transfer yang dilakukan melalui alur tetap, berulang, dan paket langganan.

Versioning

Catatan yang dimiliki program mencakup field versi. Hal ini memberikan jalur bagi program untuk meningkatkan data akun seiring waktu tanpa merusak pengguna yang sudah ada. Strategi migrasi mendukung:

  • Pembaruan in-place secara lazy
  • Instruksi migrasi eksplisit
  • Fallback pencabutan dan pembuatan ulang

Kontributor

Proyek ini dipelihara oleh kontributor repositori solana-program/subscriptions.

Status Audit

Program ini telah diaudit oleh Cantina. Status audit, commit baseline, commit yang telah diverifikasi perbaikannya, dan delta yang belum diaudit saat ini dilacak di direktori audits/ repositori.

Aplikasi Demo

Jika Anda ingin mencoba program ini sendiri, Anda dapat melihat contoh aplikasi di sini untuk melihat implementasi end-to-end dari konsep-konsep yang dibahas di bagian ini.

Is this page helpful?

Daftar Isi

Edit Halaman
© 2026 Yayasan Solana. Semua hak dilindungi.