NFT

In the beginning it was NFT. At the end it became so much more.

The Piglet

The Piglet is as an NFT is a high quality render of a 3D model. Each model has different traits. The traits are combined with different probability in order to produce 12,345 unique 3D Pigletz.

The Traits

All traits are divided into the following categories:

  • Gender - we have Male and Female Pigletz and all the traits below are different for each gender. However we also have Other gender which can mix between Male and Female traits.

  • Body - there are 12 different body types such as Pink, Gold, Stone, ....

  • Mouth - we have 16 mouths such as Smiling, Smoking Cigar, ...

  • Eyes - 16 types such as Blue, Crying, Bitcoin etc.

  • Hairstyle - 25 different hairstyles exists. Female Pigletz have more.

  • Beard style - Only Male Pigletz has beard styles, totally 6 variants.

  • Earrings - totally 10

  • Nose Piercing - 6 styles

  • Glasses - we have 11 (sun)glasses options

  • Tattoo - 7 options

Not all traits are visible from the beginning (birth of the Piglet).

Blue traits are visible on level 1

Red are revealed on level 2

Finally on level 3 the Green are shown and this completes the look of the Piglet.

Additional Traits

There are also some additional traits such as:

  • Background - There are 6 different backgrounds - Blue, Green, Orange, Purple, Red, Yellow

  • Zodiac Signs - following the Western Zodiac they are: Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces

Production

We followed a long path until we finally achieved the Pigletz we all love.

We started with concept art from different artists

And more ...

...

Next we created 3D models, objects, meshes for all the categories and traits

We developed a generator which we used to produce 12,345 different trait combinations based on a rarity table and randomness. For the random function we used the magic seed: 1638504306 which is the Unix Epoch representation of the data December 3, 2021 4:05:06 AM or 12/3/4:5:6.

"""
Main
"""
from pathlib import Path
import time
import click
from pigletz.discounts_generator import PigletzDiscountsGenerator
from pigletz.generator import PigletGenerator
from pigletz.image_optimizer import ImageOptimizer
from pigletz.post_processing import PigletPostProcessing


@click.group()
def cli() -> None:
    """
    Pigletz traits generator. (c) 2021 by Pigletz.com 
    """


@click.command()
@click.argument("inputfile", required=True)
@click.option("--limit", default=12345, type=int, help="How many piglets to generate")
@click.option("--seed", default=1638504306, type=int, help="Seed for the RNG")
@click.option("--out", help="Output json file")
def generate(inputfile: str, out: str, limit: int, seed: int):
    """ Generates json file with traits """

    generator = PigletGenerator.from_json(inputfile, limit, seed)
    data = generator.generate()
    generator.save_to_file(out, data)

Next we wrote a plugin for Cinema 4D that helped us to render all 12,345 different Pigletz.

if __name__ == "__main__":

    filename = c4d.storage.LoadDialog(
        title="Load piglets JSON file", type=c4d.FILESELECTTYPE_ANYTHING, flags=c4d.FILESELECT_LOAD)
    with open(filename, "rb") as file:
        data = json.load(file)

    piglets = list(data["population"].keys())
    piglets.sort()

    start = int(gui.InputDialog(
        "Start from (0-{limit})?".format(limit=len(piglets)-2), "0"))
    end = int(gui.InputDialog(
        "Ending to (1-{limit})?".format(limit=len(piglets)-1), str(len(piglets)-1)))

    processPiglets(piglets[start:end], start, end)

Finally we used a rendering farm that rendered 12,345 Pigletz in each 4 variations (for each level). This took about 10 days.

After that we post processed all renders to achieve the final result:

The Blockchain

NFT or Non Fungible Token is a token living in the blockchain, described by s Smart Contract following the ERC721 standard.

Each NFT has usually two parts:

  • Blockchain part - smart contract, describing the NFT as ERC721 token with a limited supply, allowing minting and transfers of the tokens etc.

  • Meta Data - text information combined with media data that is the actual representation of the NFT, the one the user sees/hears/... .

Pigletz resides at the moment in the Binance Smart Chain blokchain. Its contract can be found at the following address: 0xbF84076b06a100d38ce562733098eDc0eDa4D7f7

The contract utilizes the OpenZeppelin framework which is a de facto standard for EVM compatible blockchains.

The meta data if the Pigletz is uploaded to the IPFS which gives higher level of decentralization and security to our users. For example the first minted piglet #4041 can be found here: https://ipfs.io/ipfs/QmZ88agv3zymNctxFtraparboWZ8o2jSxV6T6XnFThYVBJ

Minting

The Minting process for the Pigletz is part of their smart contract. Minting selects a random token ID from all available tokens in the entire set of 12,345 and assigns it to the user. Minting rights are delegated to a specified contract called SalesManager which requires BNB to be sent in exchange of piglet(s). Minting allows 1, 5, 10 or 20 Pigletz to be minted within a single transaction.

Discount codes can be passed as well allowing the user to reduce the price from 10% up to 50%. The discount codes can be obtained by engaging with our communities in Discord, Twitter, Telegram, Reddit or Facebook.

Last updated