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.
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.)
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.
The protocol takes a 4% fee on all subscriptions.
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.
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.
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
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
The owner of the NFT contract can specify an onchain supply cap, thus limiting the number of subscriptions available to mint. Learn More
The owner of the NFT contract can pause subscriptions at any time. Learn More
The owner of the NFT contract can transfer ownership to any valid address. Learn More
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.
Creators: onchain memberships
Businesses: onchain SaaS payments
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.
To learn more about what we’re building, follow us on Twitter and Farcaster, join our Telegram, and subscribe to our blog on Paragraph.
Over 400 subscribers
New update from /hypersub Subscribers can receive a discount for holding a token on Polygon 👀 @p00ls /p00ls https://blog.withfabric.xyz/stpv2?referrer=0x495E4f8C59f9b2df760F77C42f27ea514697bf73
The upcoming developments on @hypersub are incredible. Congratulations on what you're building @nonlinear.eth 🎉 https://blog.withfabric.xyz/stpv2
Dimensional Program https://hypersub.withfabric.xyz/collection/dimensional-program-nbyajavonnr4
excited to announce STPv2, the newest version of the protocol that powers @hypersub https://blog.withfabric.xyz/stpv2 https://docs.withfabric.xyz/stp/overview
https://x.com/Quantstamp/status/1804144811458596915
lfg this is awesome, congrats on v2!!!
Amazing! checking it out. Did find a little typo.
damn autocorrect (fixed). ty for the heads up!
congrats!
😂
congrats! will users be able to upgrade or just create new ones going forward?
ty! yep, we have a migration flow live on hypersub rn
let's gooo, huge congratulations to the team! 420 $DEGEN
congrats on the launch. will use v2 this weekend to create a subscription.
Congrats on the new version. Great features being added!
how about credit card payments?
coming soon
Awesome!!
was just going to tag you
Hypersub has seen incredible growth since November, with over 600 contracts and $600K moved via STP. Now, @fabric announces STPv2, bringing more flexibility for onchain payments, new tier options, and revamped subscriber rewards. Exciting updates are rolling out this summer!
excited to announce STP: the Subscription Token Protocol its an extension of the ERC-721 NFT standard, with a temporal dimension and economic incentives for distribution, adoption, growth, and retention https://blog.withfabric.xyz/stp
we made STP for developers and creators who want to easily earn and manage recurring revenue onchain docs, sdk, audit report, and contract details here: https://docs.withfabric.xyz/stp/overview
Sweet! This is something we’re keen to explore n implement
👀 will dm
@launch
You launched! https://www.launchcaster.xyz/p/65412b9e4e43465723fcb834 Connect your wallet to edit the title and add a Launch NFT 🚀 Remember, anyone with a wallet can upvote. The top 10 launches go in the weekly digest 💌
lfg!! so pumped for what this unlocks 🔥
Congrats! Will STP help with recurring subscription or will apps/creators need to resell another timeframe when the period ends?
recurring, sponsored (credit card) payments on the roadmap. p0 post-mvp
🔥
This is unbelievable! Congrats @nonlinear.eth 👏
This is sick! Congrats on the launch. Are the contracts published somewhere? Found this broken link in the docs. https://github.com/withfabricxyz/contracts/blob/741a39c08ae2e1b2f539fcc3fed35c233ae9056d/src/subscriptions/SubscriptionTokenV1.sol
thanks for the heads up. will fix (cc @ds) - https://docs.withfabric.xyz/stp/deployment#factory-addresses - https://etherscan.io/address/0xf1d0C43D301d4d0Fa1Fc1A57aDE0d2Fe9ca853f6#code
That link should work now.
This looks amazing! 👏
heck yeah dude! Congratulations on the launch!
congrats!
this looks amazing @nonlinear.eth, congrats!