Introduction

Plantoids is a play-to-earn game that fights climate change.

Plantoids are digital plant collectibles in the form of dynamic NFTs. Our ambition is to become the plant factory of the Metaverse and fill out every corner of the internet with a CO2-capturing crypto-plant. Users can nurture and show them to their friends across games and social networks!

The catch? They capture 10x more CO2 than a normal plant!

Each plantoid is an NFT and holds a unique genetic composition. It has the potential to grow and become a lushy creature. Plantoids change every day based on their genetics and other exogenous factors like the weather or the owner's actions! It can be watered, receive fertilizer, pest-protection, and many others actions. Users can even buy them skins or flowerpots.

CO2 removal is achieved by reallocating a significant part of the revenue to purchase the capturing of CO2 from the atmosphere.

This project combines a novel and original design with the potential to positively impact the Solana ecosystem through its technical innovation and social impact angle. The team has experience across top universities (Stanford, Berkeley, Harvard), big tech (Whatsapp, Google, Facebook), start-ups (Clarity.ai), VC (Atomico, Alter Global) and consulting, and has previously deployed a large Solana NFT collection.

Write up

Inspiration

When we embarked on this project we sought to find creative uses of blockchain technology with a positive impact in the world. Typically, some blockchain technologies (e.g. BTC) have been criticized for providing limited value (yet) for their high CO2 emissions.

With Solana’s low prices and low energy consumption, we found an opportunity to create a fun art and digital experience that replicates as closely as possible the feeling of owning a plant in the real world… but is cheaper, more versatile (plantoids can be rendered on any digital surface) and capture 10 times more CO2 from the atmosphere.

What it does

When you purchase a plantoid, you get a digital plant that evolves with the passage of time (depending on weather conditions) and that captures CO2 at a rate of 200 grams per day.

Birth

To begin with, a user must purchase a plantoid seed (tent. price 0.1 SOL). A plantoid is simply a token which contains a unique combination of traits (“DNA”) that indicate, for example, that plantoid’s tolerance to sun, efficiency of water absorption, or type of flowers. This NFT doesn’t contain an actual picture of the plant, because the image of your plant evolves over time...

Passage of time

Each day that you check your plantoid, it will be different.

We developed a fair system under which all plantoids receive the exact same weather and other exogenous conditions: weather is derived from the blockchain (this will be explained below), and for example in a given day all plants may experience rain, or sun, or even other conditions like a bug plague.

Now, in spite of all weather conditions being the same, each plantoid responds to them differently, based on their past history as well as their unique DNA. And so a plant that has high water tolerance may thrive with rain, whereas a plant with low tolerance may suffer from it and possibly eventually die.

Human intervention

Humanity has developed very sophisticated techniques to protect, develop and grow plants. Plantoid owners can also help nurture and evolve their plants by purchasing interventions. These interventions may be as simple as watering the plant (which may be cheap or free, TBD), to as powerful as manipulating a plant's genetics permanently through the purchase of a radioactive carbon bar.

Reproduction

Whilst this is not part of v1, we plan to eventually implement reproduction mechanics so that plantoids can produce seeds that are tradeable on the market. Players with the rarest and most developed plantoids could be rewarded.

Visualization

By default, one can check their plant daily by navigating to viewer.plantoid.farm. However, we want you to be able to view and showcase your plantoid wherever you want. To do this, we’ve implemented two things:

  1. We will build open source integrations to showcase your plantoid on social networks. For example, you can connect your twitter account and we can update your PFP daily to show your current plantoid
  2. We publish plantoids as an open and composable protocol and have documentation and libraries that allow anyone to import them into their own digital products and surfaces. One day we wish that one can import a plantoid into their own website, or even into games such as animal crossing.

CO2 Capture

We will partner with a carbon removal company to capture a significant multiple of a plant’s natural absorption rate. The exact number will depend on our pricing strategy and carbon extraction method.

Direct Air Carbon Capture is the most effective but also the most expensive at $600 per ton of CO2e. We are studying multiple providers, including Charm Industrial, Climeworks, and a few others. Funding DACC would be our preferred alternative because we believe that it’s the most proven way to capture carbon today (as opposed to, for example, purchasing carbon credits, which may take decades to realize) in a transparent and auditable way, and we’re excited to help not only fund but also raise awareness of these techniques. After the GA launch, we will publish certificates of CO2 capture on the blockchain, for anyone to audit.

However, carbon offsets provide a significantly cheaper alternative at about $20 per ton of CO2e. However, they are not immediate and their net impact depends on several factors.

For these calculations, we assumed a houseplant daily absorption rate of 800 grams per year[^1].

How we built it

Plantoids are a highly complex piece of technology, comprised of primarily 3 different subcomponents: a birth function (on-chain) that allows a user to bring a new plantoid to the world with a unique set of traits, a growth function (on-client but based on on-chain data), which determines how the plant changes based on weather conditions (blockchain derived) throughout the passage of time, and client side functions to output a visual representation of the plant to be rendered in websites, VR, games, etcetera.

Birth function

A plantoid is born through the process of generation and minting of an NFT. These NFTs are implemented leveraging the Token program and adding some decorators on top that encode its traits. See our website for a comprehensive list of traits.

Note that these NFTs don’t contain an actual image or asset; instead they only contain traits plus an image url pointing to our visualization server, which produces a different image every day taking the passage of time into account. This way, if you view your plantoid on your wallet, on solana explorer, or any third party NFT viewer, you’ll always see the most current version.

For our initial alpha drop, we’re generating a fixed amount of early adopter plants locally (all unique, and randomly generated) and publishing them using the Metaplex Candy Machine protocol.

For our GA launch we want NFT generation to be dynamic and on-chain, however we couldn’t find a verifiable random generator that worked on mainnet on time for the hackathon and so couldn’t implement this on time. For GA we plan to use Chainlink if it’s released.

Growth function

In pseudocode, plantoid’s growth function can de defined as follows:

`// Returns L-system representation of plantoid`

// for today
function getCurPlantoid(seedAddr, plantoid) {
  let traits = seedAddr.traits;
  let birthDate = seedAddr.traits.birth_date;
  let plantoid = new Plantoid(traits)
  for (let d = birthDate; d <= today(); d++) {
    let weatherConditions = fetchWeatherFromBtc(d)
    plantoid.apply(weatherConditions)
    let humanInterventions = fetchHumanInterventionsFromSolana(seedAddr, d)
    plantoid.apply(humanInterventions)
  }
  return plantoid.export()
}

In human terms, the current status of a plant is simply the result of calculating how that plant responded (based on their unique traits) to the different weather conditions and human interventions it encounters along the way.

Of special worth it is to mention how the weather conditions and human interventions are encoded.

Weather conditions are derived by interpreting the hash of the first BTC blockchain block of the day (GMT). As an example, we take the last digit of the hash and interpret it as the amount of rain there was that day, and the second to last, as the intensity of the sun.

Human interventions are encoded simply as a list of <action, date> pairs stored in a Solana address (PDA from seedAddr, plantoidModifierContract), and can be purchased in exchange of SOL. Note: this contract isn’t implemented yet for the alpha, as we’re waiting for Chainlink USD oracles to be live (we will set prices in USD in order to ensure we can honor our CO2 capture commitments in spite of currency fluctuations).

In addition, it is also worth explaining how the actual growth “apply” algorithm works. At a high level it is implemented as a Lindenmayer system: a collection of rules that, when applied over symbols, help create structures that resemble those of nature. These rules contain weights that are derived from the weather conditions and the genes of the plant.

The whole growth algorithm (from the derivation of weather conditions, to how genetics affect them) is applied client side. In order to avoid unfairness, our plan is to host a copy of the algorithm in permanent decentralized storage (arweave), as well as a pointer to the latest version of the algorithm were it to evolve over time. This would allow for there to exist a single active version of the algorithm that all plantoid clients must use, and enables the ability to verify if someone has tampered with the code to make their plants grow faster.

Go-to-market

We have many ideas to distribute Plantoids. However, we have stayed in stealth for now given the strong competitive dynamics in the industry. However, we have built a strong presence on the Solana community through the launch of a different NFT collection. We have a strong audience and tight community that we hope to leverage to quickly ramp-up distribution when the moment comes.

Design

Our design is unique in that no one to our knowledge has attempted to model a living organism using the blockchain. We are producing dynamic artwork that can be exported all throughout the metaverse while creating a positive impact in the world by fighting climate change.

Challenges we ran into

  • Poor documentation and examples: it took us quite a bit to learn the ropes of Solana program development, as well as Metaplex specifically.
  • We rely on chainlink as a source of randomness however it’s not yet ready in mainnet. This is a launch blocker for mainnet for us, but we worked around it by descoping and launching with a limited early access program where we pre-generated plantoids using our computer as a source of randomness.
  • We rely on chainlink too for USD:SOL conversions; we won’t be offering human interventions yet until we are able to price them in USD and derisk SOL volatility.

Accomplishments that we’re proud of

It’s early to tell, but we are proud of multiple things:

  • We have built a working MVP that proves that our concept is possible
  • We have demonstrated that we are capable of building and scaling a mass-scale consumer crypto project. We have built a strong audience in Solana and successfully deployed a large NFT collection, which we hope to leverage to collaboratively build and scale Plantoids

What we learnt

  • Technical:
    • Solana
    • Rust
    • Metaplex
    • L-Systems
  • Conceptual:
    • NFTs
    • Smart contract development
    • Different CO2 capture mechanisms
    • Game incentive / economic design
    • Community building
    • A lot about plant biology 🤓

What’s next for Plantoids

Today we begin our Early Access program, and tomorrow we start outreach and community building efforts.

Once we’ve built a decent community, our next milestone is general availability. To get there, there’s three prerequisites we want to meet:

  1. Finalize, with Early Access users’ feedback, a fair implementation of V1 of the growth algorithm
  2. Launch human interventions on Solana mainnet (blocked by: Chainlink oracles)
  3. Launch an on demand plant birth program that doesn’t rely on a centralized source of randomness (blocked by: Chainlink random generator)
  4. Determine the right price for plantoids and human interventions to make the game as broadly accessible as possible and allow us to sustain our CO2 capturing commitments
  5. Publish a more polished developer documentation site for 3ps to integrate Plantoids into their platforms. Partner or build ourselves a few beachhead integrations (e.g. twitter PFP, digital frames)
  6. Build a strong community of early adopters

Over time, we want to move Plantoids to a DAO model, where plantoid owners can decide on future updates to plantoid traits and growth functions. In order to get there, we need to validate that the economics of the platform work and allow it to be self-sustainable, and ship a solid baseline for the algorithms based on post launch feedback.

Notes

[^1]: Pennisi, van Iersel 2012. Quantification of Carbon Assimilation of Plants in Simulated and In Situ Interiorscapes.

Built With

Share this project:

Updates