Subscription Token Protocol
![stp](/stp.png)
The Subscription Token Protocol extends the Non Fungible Token standard with the addition of a temporal dimension, and economic incentives for distribution, adoption, growth, and retention.
How it Works
-
A creator or business specifies a period of time (eg 1 month) and a price per period (eg 10 USDC) then deploys their subscription NFT contract onchain.
-
Users mint the subscription NFT by purchasing a desired amount of time (eg 6 months for 60 USDC). This grants them access to whatever apps, content, and experiences have been gated on the subscription NFT.
-
This access remains in effect until the user’s time expires (eg after 6 months), at which point, access is denied, unless the user mints additional subscription time.
The protocol is a non-upgradable, EVM-compatible smart contract that can be permissionlessly used to gate access to apps, services, content, and experiences. Time-bound subscription NFTs generate recurring revenue for businesses and creators, and are a simple, convenient access method for end-users.
Onchain Subscriber Rewards
The protocol has a mechanism, “Subscriber Rewards”, for the contract deployer to allocate a portion of recurring revenue back to subscribers, to incentivize early adoption, long-term subscriptions, and subscriber retention.
If the contract owner enables this mechanism, the specified proportion of each subscription mint payment goes into the subscriber reward pool. As more users subscribe, the pool grows. Each subscriber is allocated tokens signifying a share of the reward pool, and that share is larger the earlier the user subscribes, and the longer they subscribe for.
A user must have an active subscription in order to withdraw their rewards. If their subscription lapses and they do not resubscribe, their reward allocation can be slashed. (There’s a grace period before slashing can happen, of half the subscription time. Eg a 6 month subscription has a 3 month grace period.)
Onchain Referral Rewards
The protocol has a mechanism, “Referral Rewards”, for the contract deployer to allocate a percentage of subscription revenue to those who refer subscribers, in order to incentivize organic growth and distribution.
For example:
- Alice (the contract deployer) specifies a 10% referral reward for her subscription NFT.
- Bob (a referrer) generates a unique referral URL for Alice’s subscription and shares it with others.
- Charlie (a subscriber) purchases a 100 USDC subscription using Bob’s link.
- Alice receives 90 USDC.
- Bob receives 10 USDC.
Referral payments are made onchain and at the time of each subscription mint, so no withdrawal is required.
Fees
The protocol takes a 4% fee on all subscriptions.
Onchain Partner Rewards
Any entity that facilitates the deployment of subscription NFT contracts is eligible to receive 50% of the protocol fee.
Eg: If Alice uses app.xyz to deploy her subscription NFT contract and it generates 100,000 USDC in annual recurring revenue, then the protocol will receive 2,000 USDC and app.xyz will receive 2,000 USDC annually.
Protocol partner rewards are all onchain and in perpetuity.
Abstractability
STP contains a function that enables any account to purchase a subscription on behalf of any other account. This facilitates, in particular, credit card payments.
Eg: On app.xyz, Charlie subscribes to Alice’s contract, which costs 10 USDC per month. He gives his credit card info to app.xyz, which then charges Charlie’s card 10 USD each month, and in turn, mints 10 USDC worth of subscription NFT time on his behalf.
With smart contract wallets, MPC wallets, EIP-4337, and other novel forms of abstraction, it’s even possible for Charlie to subscribe without ever knowing he’s using crypto.
Additional Features
Grants
The owner of the NFT contract can issue onchain grants simply by specifying an address and amount of time they wish to grant. Learn More
Refunds
The owner of the NFT contract can issue onchain refunds simply by specifying an address and amount of subscription-time payment they wish to refund. Learn More
Max Supply
The owner of the NFT contract can specify an onchain supply cap, thus limiting the number of subscriptions available to mint. Learn More
Pause
The owner of the NFT contract can pause subscriptions at any time. Learn More
Ownership Transfer
The owner of the NFT contract can transfer ownership to any valid address. Learn More
Revenue Recipient
The owner of the NFT contract can specify any valid address as the recipient of their subscription revenue, for example a splits contract, vault, multisig safe, or DAO.
Use Cases
- Creators: onchain memberships
- Businesses: onchain SaaS payments
Why?
NFTs and ERC-20 tokens provide a one-time, discrete value transfer between buyers and sellers. However, when these are used as payment for continuous work, incentives become misaligned: a one-time payment for lifetime access is not a sustainable business model.
Token allowances and streaming escrow contracts are one solution to this problem. But they are complex, fragile, and hard to use.
We made STP to easily, efficiently, and robustly create and manage recurring revenue onchain.
Creating and collecting NFTs has emerged as a robust end-user behavior with a well-understood mental model. Adding a temporal dimension to NFTs, as well as incentives for distribution, adoption, growth, and retention, expands the potential use and utility of these crypto-primitives.
The World Is Yours