Самая востребованная и простая задача в крипте — контракт платной подписки (subscription):
люди платят USDT, ты даёшь доступ к чату / сигналам / сервису. Это то, что реально используют: Контракт: Без сложной логики, но полностью рабочий on-chain. use anchor_lang::prelude::*;
use anchor_spl::token::{self, Token, TokenAccount, Transfer};
declare_id!("Subscr1ption111111111111111111111111111111");
#[program]
pub mod subscription {
use super::*;
// Создание аккаунта подписки
pub fn initialize(ctx: Context<Initialize>) -> Result<()> {
let sub = &mut ctx.accounts.subscription;
sub.owner = ctx.accounts.owner.key();
sub.price = 10_000_000; // 10 USDT (6 знаков)
Ok(())
}
// Оплата подписки (продлевает на 30 дней)
pub fn pay(ctx: Context<Pay>) -> Result<()> {
let sub = &mut ctx.accounts.subscription;
let user_sub = &mut ctx.accounts.user_subscription;
// перевод USDT владельцу
let cpi_accounts = Transf