Skip to content
Showcase projectBlockchain & Web3
  • 223 tests
  • 100% coverage
  • Slither-analysed

Subscription Manager

Recurring ERC-20 subscriptions with pull payments and automatic revenue splits

ERC-20SafeERC20OpenZeppelin v5Foundry

What it is

SubscriptionManager is a non-custodial billing contract. Merchants create plans with a token, a price, a billing period and up to five revenue-share payees in basis points; the merchant receives the remainder.

Subscribers approve an allowance once and subscribe — the first period is charged immediately. When a period is due, anyone (a merchant backend, a keeper bot or Chainlink Automation) can trigger the charge. Funds move directly from subscriber to payees; the contract never holds a balance.

The business problem

Crypto payments are push-based: customers must sign a new transaction every month, which drives churn and manual follow-up. Revenue shares need separate payout runs, and custodial billing providers reintroduce counterparty risk.

How it works

  1. 1

    The merchant creates a plan: token, price, period and optional revenue-share payees.

  2. 2

    The subscriber approves an allowance (e.g. for 12 months) and subscribes; period 1 is charged.

  3. 3

    When the next period is due, a keeper calls charge(); the split is paid out and the next charge date advances.

  4. 4

    Subscriber or merchant can cancel at any time; the merchant can deactivate a plan.

Security measures

  • At most one charge per period and no back-billing after a lapse (fuzz-tested)
  • Immutable price and period — no surprise price increases
  • Subscribers can cancel any time and cap exposure via their allowance
  • Non-custodial: nothing to drain
  • Exact splits — payouts sum exactly to the price (fuzzed)
  • Bounded payees and minimum period; nonReentrant, SafeERC20

Features

  • Merchant plans with immutable pricing
  • Approve once, keeper-triggered charges
  • Up to 5 revenue-share payees in basis points
  • Cancel and deactivate
  • Non-custodial — zero balance

Typical use cases

  • Web3 SaaS and API access billed in stablecoins
  • Creator memberships with automatic splits
  • B2B retainers with reseller commissions

Known limitations

Fee-on-transfer and rebasing tokens are not supported. A charge fails without state changes if allowance or balance is too low; the keeper can retry.

Other showcase contracts

Showcase

Milestone Escrow

The client locks the full budget up front, split into milestones. Funds move only on release, arbiter decision or cancellation.

Solidity 0.8.28OpenZeppelin v5ETH / ERC-20

223 tests · 100% coverage · Slither‑analysed

Showcase

Token + Vesting + Staking

A capped ERC-20 with gasless approvals, vesting schedules with cliff for team and investors, and Synthetix-style staking rewards.

ERC-20EIP-2612OpenZeppelin v5

223 tests · 100% coverage · Slither‑analysed

Showcase

SigmaNFT Collection

A fair NFT launch: allowlist and public phases, per-wallet limits, immutable max supply, ERC-2981 royalties and a delayed reveal.

ERC-721ERC-2981Merkle proofs

223 tests · 100% coverage · Slither‑analysed

Standards: Solidity 0.8.x, OpenZeppelin, Foundry tests with fuzzing, Slither static analysis, verified source. 223 tests · 100% coverage · Slither-analysed.

Have a project in mind?

Tell us what you're building. You get an honest assessment, a clear scope and a fixed-price or milestone proposal, usually within a few working days.

Prefer to write first? Write to us