Bloom Network Subscription NFT: Pricing per Country Income Average

Magenta Ceiba
2 min readJun 27, 2023

Have any international network DAOs implemented a sliding scale membership NFT yet? Below is my thinking on this so far, solutions and ideas welcome!

At Bloom Network, we need to solve for different pricing for different countries according to average income, or something like the “cost of a can of coke” comparison. (A common web2 solution for this is https://www.paddle.com/ ).

We need a solution that allows monthly recurring member fees, because our members are mostly low income and wouldn’t be able to afford $100 or more in one go. Bloom membership is $10/month USD equivalent in countries where that’s doable. We have Blooms in Africa, India, Brazil, etc, where that amount is out of the question.

The question we haven’t resolved yet, is if we have multiple NFT’s and/or one.

Is it possible to put logic into an NFT contract that does differential pricing based on a conditional statement, and also a different payout address based on that conditional? (Edit: yes it is possible/easy. What’s less easy is auto-renewing subscription.)

Example: a form asks the user which Local Bloom they are part of. They answer Kampala, Uganda. The NFT contract accepts that information and the subscription price shows as 0.75 USDC. The payout address goes 80% to their Local Bloom DAO treasury, and 20% to Bloom International (protocol team) DAO treasury. (Their answer is also stored as metadata and read for local governance logic.)

If that’s not possible, a backup option could be to go with an individual subscription NFT for each Local Bloom. That is either a token gate to holding a Bloom Network NFT, or in our member access logic we put long OR statements in for auth, Snapshot voting, etc. Or something else I’m not aware of as a junior coder. In designing this, I’m thinking ahead knowing we are going to have 10,000 Local Bloom hubs at some point, so maintaining separate NFT’s seems intense.

Have any of you thought about differential country pricing for member NFTs at all? Do you know of any protocols or NFT configuration methods I should look into? Or am I barking up the wrong tree and a member NFT is not a good solution for our use case.

Resources I’ve been looking into:

  • Unlock Protocol (subscription NFT’s, allows fiat or crypto payment, user friendly for me as a non-senior coder, doesn’t support sliding scale pricing inside one NFT). I asked in Unlock’s discord and their recommendation was to use one NFT per Local Bloom, and in the payouts send part of the funds into the global NFT Unlock contract using a hook, so they can be automatically tied to one another. This would be feasible for me to implement directly (Bloom is a voluntary project still).
  • ERC-5643 subscription NFT https://github.com/cygaar/ERC5643
    This is similar to ENS domains and doesn’t do auto-renew in the way Unlock does, afaik.
  • 1155 token standard
  • 721 token standard

--

--

Magenta Ceiba

Principal Systems Architect at Bloom Network, https://bloomnetwork.earth. Building financial automations for collective liberation.