Overview
MetaWomen is a Learn-to-Earn project that allows the users to receive rewards for learning useful life skills. You can take some of our courses for free - however, only those users who purchased the MetaWomen NFT will be able to earn the MWR rewards token.
Use the quick links to explore:
Our ethos
We believe that today's girls, girls and women are the future of the world! That's why their upbringing and education are important from childhood. There is an incredible potential in women, which was not used to show, but now it's a new time!
We are the same spirit of GREAT, SUCCESS, LOVE, PEOPLE, PROSPERITY, VALUES AND TRENDS, created by a great desire to help you become a BETTER person!
It's time to assert yourself, to be heard, to realize your potential, to lead, to be happy and independent!
MetaWomen NFT Collection
Value propositions
- Earn MWR token via Learn-to-Earn mechanics (answering quizzes).
- Earn MWR token via Work-to-Earn mechanics (helping community members).
- Gain private access to our closed community.
- Place your content at the top of the list.
Parameters
- Initial supply:
1000(can be minted by users) - Mintable: yes (see docs)
Characteristics
- Level determines max count of available upgrades
- Initial value:
1
- Initial value:
- Experience determines max available level
- Initial value:
0 - Increases: by
1after each successful Learn action
- Initial value:
- Potential determines if this NFT can be used to mint new NFTs.
- Initial value:
7 - Min value:
0 - Decreases: by
1after each successful Mint action
- Initial value:
- Fatigue determines max token reward per action
- Initial value:
0 - Increases: by
1after each successful Learn action - Decreases: to
0after each successful Rest action
- Initial value:
Primary attributes
- Power determines max token reward per action
- Initial value:
1
- Initial value:
- Regeneration determines how much energy is restored per second
- Initial value:
1
- Initial value:
- Endurance determines max energy limit
- Initial value:
1
- Initial value:
- Luck determines max multiplier of reward per action
- Initial value:
1
- Initial value:
- Child level determines the child NFT level (see minting)
- Initial value:
1
- Initial value:
Secondary attributes
- Energy determines if the user can take a Learn action
- Initial value:
5000 - Max value:
5000 * Endurance - Increased by:
Regenerationper second - Decreased by:
5000per Learn action - Implementation details:
- Calculate the current energy level dynamically:
const energy = getEnergy(events)
- Calculate the current energy level dynamically:
- Initial value:
Constants
- BasicIncome determines the base amount of MWR tokens per Learn action.
- Value:
1000
- Value:
- BasicExperience determines the base experience for use in formulas.
- Value:
10
- Value:
Actions
Learn
Inputs:
NFT- a MetaWomen NFT
Checks:
NFT Energymust be at least 5000
Effects:
- Increases
NFT Experienceby 1 - Decreases
NFT Energyby 5000 - Increases
User MWR BalancebyRANDOM(BasicIncome * Power, BasicIncome * Power * Luck ^ 1.3) * 0.8 ^ Fatigue
Mint
Inputs:
Parent A- a MetaWomen NFTParent B- a MetaWomen NFT
Checks:
Parent AandParent Bmust be owned by the sameUserParent Amust havePotentialgreater than0Parent Bmust havePotentialgreater than0Parent Amust not have minted in the last 48 hoursParent Bmust not have minted in the last 48 hoursUser MWR Balancemust be at least:MWRBalanceForMint = BasicIncome * 50 * 1.2 ^ (Potential.max - getLowestPotential(ParentA, ParentB))
Effects:
- Decreases
Parent A Potentialby1 - Decreases
Parent B Potentialby1 - Decreases
User MWR Balancebythe formula above - Mints a new NFT:
- Characteristics:
- Level: max of (
Parent A Child LevelorParent B Child Level)
- Level: max of (
- Characteristics:
Level up
Inputs:
NFT- a MetaWomen NFT
Checks:
NFT Experiencemust be greater than:MinExperience = BasicExperience * CurrentLevel ^ 1.2
User MWR Balancemust be at least:MWRBalanceForLevelUp = BasicIncome * MinExperience * 1.5 ^ CurrentLevel
Effects:
- Increases
NFT Levelby1 - Decreases
User MWR Balancebythe formula above
Increase attribute
Inputs:
NFT- a MetaWomen NFTAttribute- a MetaWomen NFT attribute
Checks:
- Sum of
NFTattribute increments must be less thanNFT Level- Default values of NFT attributes don't count, only the increments.
Effects:
- Increase
[Attribute]by1
Notes:
- This action is free but irreversible.
Rest
Inputs:
NFT- a MetaWomen NFT
Checks:
NFT Fatiguemust be greater than0User MWR Balancemust be at least:MWRBalanceForRest = BasicIncome * NFT Experience * 0.1
Effects:
- Sets
NFT Fatigueto0 - Decreases
User MWR Balancebythe formula above
Slash
Inputs:
NFT- a MetaWomen NFT
Checks:
NFT Levelmust be greater than1NFT Last Actionwas at least 3 days ago
Effects:
- Decreases
NFT Levelby1 - Resets
NFT Last Actiontocurrent timestamp
Freeze
Inputs:
NFT- a MetaWomen NFTduration- freeze duration in seconds
Checks:
User MWR Balancemust be at least:MWRBalanceForFreeze = BasicIncome * duration / (24 * 60 * 60)
Effects:
- Extends
NFT Frozen Untilbyduration - Decreases
User MWR Balancebythe formula above
Implementation details
- Omnichain using LayerZero ONFT standard (can be listed on multiple marketplaces on different blockchains).
MetaWomen Reward Token
Parameters
- Symbol: MWR
- Max supply: uncapped
- Initial supply:
100000 - Minting: yes, only after successful Learn action
Implementation details
- Omnichain using Wormhole.
- Home blockchain: Binance Smart Chain.
MetaWomen Data Sheets
Level progression
| Level | Min experience | Upgrade cost (MWR) |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 10 | 15000 |
| 3 | 22 | 49500 |
| 4 | 37 | 124875 |
| 5 | 52 | 263250 |
| 6 | 68 | 516375 |
| 7 | 85 | 968203 |
| 8 | 103 | 1759851 |
| 9 | 121 | 3101097 |
| 10 | 139 | 5343626 |
| 11 | 158 | 9111076 |
| 12 | 177 | 15310067 |
| 13 | 197 | 25560028 |
| 14 | 217 | 42232432 |
| 15 | 237 | 69187234 |
| 16 | 257 | 112538729 |
| 17 | 278 | 182601752 |
| 18 | 299 | 294593114 |
| 19 | 320 | 472925401 |
| 20 | 342 | 758158534 |
| 21 | 364 | 1210393449 |
| 22 | 386 | 1925323646 |
| 23 | 408 | 3052585678 |
| 24 | 430 | 4825778829 |
| 25 | 453 | 7625852824 |
| 26 | 475 | 11994304939 |
| 27 | 498 | 18862622715 |
| 28 | 521 | 29600682032 |
| 29 | 545 | 46446367680 |
| 30 | 568 | 72609734429 |
Return On Investment
| Power | Luck | MWR per action (min) | MWR per action (max) |
|---|---|---|---|
| 1 | 1 | 1000 | 1000 |
| 1 | 2 | 1000 | 2462 |
| 1 | 3 | 1000 | 4171 |
| 1 | 4 | 1000 | 6062 |
| 1 | 5 | 1000 | 8103 |
| 2 | 1 | 2000 | 2000 |
| 2 | 2 | 2000 | 4924 |
| 2 | 3 | 2000 | 8342 |
| 2 | 4 | 2000 | 12125 |
| 2 | 5 | 2000 | 16206 |
| 3 | 1 | 3000 | 3000 |
| 3 | 2 | 3000 | 7386 |
| 3 | 3 | 3000 | 12513 |
| 3 | 4 | 3000 | 18188 |
| 3 | 5 | 3000 | 24309 |
| 4 | 1 | 4000 | 4000 |
| 4 | 2 | 4000 | 9849 |
| 4 | 3 | 4000 | 16684 |
| 4 | 4 | 4000 | 24251 |
| 4 | 5 | 4000 | 32413 |
| 5 | 1 | 5000 | 5000 |
| 5 | 2 | 5000 | 12311 |
| 5 | 3 | 5000 | 20855 |
| 5 | 4 | 5000 | 30314 |
| 5 | 5 | 5000 | 40516 |
Slashing
| Frozen NFT count | Burned token amount (per day) |
|---|---|
| 10 | 10000 |
| 20 | 20000 |
| 30 | 30000 |
| 40 | 40000 |
| 50 | 50000 |
| 60 | 60000 |
| 70 | 70000 |
| 80 | 80000 |
| 90 | 90000 |
| 100 | 100000 |
| 110 | 110000 |
| 120 | 120000 |
| 130 | 130000 |
| 140 | 140000 |
| 150 | 150000 |
| 160 | 160000 |
| 170 | 170000 |
| 180 | 180000 |
| 190 | 190000 |
| 200 | 200000 |
| 210 | 210000 |
| 220 | 220000 |
| 230 | 230000 |
| 240 | 240000 |
| 250 | 250000 |
| 260 | 260000 |
| 270 | 270000 |
| 280 | 280000 |
| 290 | 290000 |
| 300 | 300000 |
| 310 | 310000 |
| 320 | 320000 |
| 330 | 330000 |
| 340 | 340000 |
| 350 | 350000 |
| 360 | 360000 |
| 370 | 370000 |
| 380 | 380000 |
| 390 | 390000 |
| 400 | 400000 |
| 410 | 410000 |
| 420 | 420000 |
| 430 | 430000 |
| 440 | 440000 |
| 450 | 450000 |
| 460 | 460000 |
| 470 | 470000 |
| 480 | 480000 |
| 490 | 490000 |
| 500 | 500000 |
Formulas
import { BasicExperience, BasicIncome, MaxPotential } from './constants.js'
import { Milliseconds } from './types.js'
import { day } from './util/src/duration.js'
import { expect } from './util/src/chai.js'
import { Random } from 'random'
/**
* How much experience the user needs to upgrade to `level`
*/
export function getMinExperienceForUpgrade(level: number) {
expect(level).to.be.greaterThanOrEqual(1)
return Math.floor(BasicExperience * Math.pow(level - 1, 1.2))
}
/**
* How many tokens the user needs to upgrade to `level`
*/
export function getMinTokenAmountForUpgrade(level: number) {
expect(level).to.be.greaterThanOrEqual(1)
const minExperience = getMinExperienceForUpgrade(level)
return Math.floor(BasicIncome * minExperience * Math.pow(1.5, (level - 1)))
}
/**
* How many tokens the user will mine with each basic action
*/
export function getTokenMinedAmount(random: Random, power: number, luck: number, fatigue: number) {
const min = getTokenMinedAmountMin(power, luck)
const max = getTokenMinedAmountMax(power, luck)
const getRandomAmount = random.uniform(min, max)
return Math.floor(getRandomAmount() * Math.pow(fatigue, 0.8))
}
export function getTokenMinedAmountMin(power: number, luck: number) {
return Math.floor(BasicIncome * power)
}
export function getTokenMinedAmountMax(power: number, luck: number) {
return Math.floor(getTokenMinedAmountMin(power, luck) * Math.pow(luck, 1.3))
}
/**
* How many tokens the user needs to mint a new NFT
* Parent potential drops -> Mint cost increases
*/
export function getMinTokenAmountForMint(parentAPotential: number, parentBPotential: number) {
const potentialDiff = MaxPotential - Math.min(parentAPotential, parentBPotential)
return Math.floor(BasicIncome * 50 * Math.pow(1.2, potentialDiff))
}
/**
* How many tokens the user needs to rest (drop fatigue to 0)
*/
export function getMinTokenAmountForRest(experience: number) {
return Math.floor(BasicIncome * experience * 0.1)
}
/**
* How many tokens the user needs to freeze the NFT (prevent slashing)
*/
export function getTokenAmountForFreeze(duration: Milliseconds) {
return Math.floor(BasicIncome * duration / day)
}
export function getTokenAmountForFreezePerDayFloored(dayCount: number) {
return getTokenAmountForFreeze(dayCount * day)
}