MetaBio is a Web3 application to connect gardeners, farmers to crypto world. We aim to be the leading Web3 application for gardening/farming communities, inspire gardeners/farmers, and connect them and their data to enterprise and biology experts eventually.
🌱 Gardeners could mint the interactive NFPlant backed by their plants.
🪴 In order to mint NFPlant, they need to purchase the plant pot. Each plant pot will have these attributes:
-
plant: NFPlant belonged to the pot.
-
minGrowthRate: Plant minimum growth rate. To receive the reward, the plant needs to reach the minimum growth rate (eg: 5cm/month).
-
tokenEarning: The token earning when the plant reaches the minGrowthRate each month
🏅 After planting and updating their real plants metadata, they can earn the reward if the plant meets the minimum growth rate.
✅ The BioDAO (biology expert) would review and audit the NFT metadata. Their expertise will help to improve the quality and gain the transparency of biology metadata on-chain.
🚀 MetaBio also supports metaverses, gamefi, defi, and socialfi builders to consume and reuse NFT backed by real plant’s metadata that enhances user experiences.
🌎 Users can earn carbon credit and save the Earth
-
nfplant - NFT backed by real plant metadata
-
nfpot - NFT Plant pot which user need to purchase to growth the NFPlant and receive the rewards
-
mbtv4 - MetaBio Token, utility token for rewards
-
metabio - Controllers
- Allow user to contribute plant metadata
- Audit plant metadata
- Record user rewards
- Distribute user rewards
-
metabio_dao - MetaBio DAO
-
metabio_mkp - MetaBio Marketplace
- Buy and sell NFPot
- Buy and sell NFPlant
-
carbon_credit - Calculate and record carbon credit to users
To get started, you might want to explore the project directory structure and the default configuration file. Working with this project in your development environment will not affect any production deployment or identity tokens.
To learn more before you start working with nfpot, see the following documentation available online:
- Quick Start
- SDK Developer Tools
- Motoko Programming Language Guide
- Motoko Language Quick Reference
- JavaScript API Reference
If you want to start working on your project right away, you might want to try the following commands:
cd nfpot/
dfx help
dfx config --help
- mbtv4: https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.ic0.app/?id=2xiao-caaaa-aaaak-qaqya-cai
- metabio: https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.ic0.app/?id=2qjg2-pyaaa-aaaak-qaqyq-cai
- nfplant: https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.ic0.app/?id=2zkng-zqaaa-aaaak-qaqza-cai
- nfpot: https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.ic0.app/?id=6p6vz-qiaaa-aaaak-qaqbq-cai
-
Change MetaBio owner principal at https://github.com/viefam/metabio-ic/blob/develop/src/nfpot/metabio.mo#L33 and https://github.com/viefam/metabio-ic/blob/develop/src/nfpot/metabio.mo#L33 as your preferred one.
-
Run the following commands:
# Starts the replica, running in the background
dfx start --background
# Deploys your canisters to the replica and generates your candid interface
dfx deploy
- Transfer MetaBio Token to metabio canister
dfx canister --network ic call mbtv4 balanceOf '(principal "<replace metabio_canister_id> here", 1000500)'
- Create gardener identity and change to it. Do not use the owner principal.
dfx identity use gardener
- Contribute plant meta with ID, created_at, length and images from our system.
dfx canister call metabio contributePlantMeta '("9OYATqDnq5", 1655375202615, 60, "https://images.viefam.com/stag/5482d443ce8f69463d6ef431c21f6d6a_front_315cf7a0-19d5-4614-9596-e13abd9b09a8.jpg", "https://images.viefam.com/stag/fe9c3efba7e3b370f71ecbb2879fedbe_left_07703946-8173-480f-bd0f-aabdede1df67.jpg", "https://images.viefam.com/stag/0f4e5795676dc3865b8f5bea8431ab64_back_6223f4f4-988b-4227-891c-afe4bdac2391.jpg", "https://images.viefam.com/stag/e3c076977719bc9ed3fa363b8fbed760_right_452d2966-1e20-4356-98f2-394df820af73.jpg")'
It should show the reward ID then.
(1 : nat)
- Display the reward information by using above reward ID.
dfx canister call metabio displayReward '(1)'
It should display the pending reward
(
record {
id = 1 : nat;
status = variant { pending };
plantMeta = 1 : nat;
user = principal "jd2i6-4skfe-sgnim-636u7-cysgv-ixwny-kgkjc-aoadx-sg542-lguic-6qe";
rewards = 100 : nat;
},
)
- Change to owner identity
dfx identity use default
- Distribute reward to user
dfx canister call metabio distributeReward '(1)'
- Change to gardener identity and check MetaBio Token balance
// Get principal
dfx identity get-principal
It should return principal. Example: jd2i6-4skfe-sgnim-636u7-cysgv-ixwny-kgkjc-aoadx-sg542-lguic-6qe
dfx canister call mbtv4 balanceOf '(principal "jd2i6-4skfe-sgnim-636u7-cysgv-ixwny-kgkjc-aoadx-sg542-lguic-6qe")'
It should display 100 or increase to 100.
We are going to implement the MetaBio app with following features
- Connect Web2 users to Internet Computer: it makes easier for non-crypto users can connect to crypto world
- Buy NFPot and NFPLant on Marketplace
- Mint plant to NFPot
-
Withdraw reward
-
Carbon Credit
In Supernova Hackathon, we haven't integrated yet our mobile app to Internet Computer because iternet-identity haven't supported yet authetication (dfinity/internet-identity#340, dfinity/internet-identity#332). Another wallet or solution still haven't supported mobile application yet.
However, we had the prototype video (https://drive.google.com/file/d/1Ky1aIM3PbbabwFdjyUjXSkz2edAbHbKc/view) about MetaBio that we try to integrate with BNB chain.
P/s: We are trying the solution that using WebView to authenticate. And we will have the mobile app on IC soon