# PirateDAO: Initial NFTs Offering and Programmable Loot

By [0xBlackbeard](https://paragraph.com/@0xblackbeard) · 2021-10-23

---

PirateDAO is a novel DAO with two primary mandates:

1.  Think, design, develop and deploy NFT-related dApps, across chains, with a focus on products sitting at the intersection of the NFTs and DeFi ecosystems
    
2.  Build PirateDAO itself into a long-lasting decentralized organization that can guarantees funding its own operations, through smart treasury management (such as re-investing revenues from previously shipped products)
    

PirateDAO wants to be different from many DAOs that have come before it. To date, DAOs have mostly been synonymous with a treasury of funds + group signal-voting on where to send those funds; with very little input from communities on the kind products that are to be built, or on the development direction for existing ones. PirateDAO aims to achieve something more fun and valuable: **a fully decentralized organization that ships new products**.

Today, following up right away on our own motto, we are releasing Programmable Loot on Polygon (more on this below), along with our completely fair-launched initial offering for **JollyRoger** (🏴‍☠️), PirateDAO governance and only token; with a soft-capped, **ultra-scarce supply of 818 units available for minting to early users of our first product**.

\*JollyRoger (`0x0c80963e7228A81D6F805418531E44C48975d6D5`) rewards table for [ProgrammableLoot](https://polygonscan.com/address/0x76ade2d575e5db76f1c9b977575a9b324c5d23ea):

*   SACK = **_0.000213 🏴‍☠️_**
    
*   BARREL = **_0.00213 🏴‍☠️_**
    
*   CRATE = **_0.00426 🏴‍☠️_**
    
*   URN = **_0.0106 🏴‍☠️_**
    
*   COFFER = **_0.0213 🏴‍☠️_**
    
*   CHEST = **_0.05 🏴‍☠️_**
    
*   TROVE = **_0.2 🏴‍☠️_**
    
*   RELIQUARY = **_0.4 🏴‍☠️_**
    

Programmable Loot
-----------------

Programmable Loot (or pLOOT) is a big upgrade over the concept of scarce, general-purpose, on-chain loot metadata originally introduced by [dom](https://twitter.com/dhof/status/1431316631934967815) in multiple variants, that inspired many of us in the Ethereum community and naturally spurred derivatives and tooling to augment the project.

As a TLDR:

*   There are 8 Container classes (_SACK, BARREL, CRATE, URN, COFFER, TROVE, RELIQUARY_), each with unique base properties that affect what Items can be found within after genesis
    
*   The containers baseline attributes only compound the random genesis seed provided by the Chainlink VRF oracles, which is the ultimate factor in determining both the number and rarity of the generated Loot Items
    
*   Minting a Loot Container (and the Loot Items within) is a process made up of two asynchronous, distinct phases: a genesis step (where the container minting floor price fee is transferred to PirateDAO treasury and randomness is requested from Chainlink VRF service) and a claim step (where the container and items, if any, are actually minted)
    
*   Loot is composable; that is, containers can accept and transfer items at the will of their owners. This allows for any arrangement of loot composability and shifts the balance of value towards Loot Items themselves
    
*   Rarity (only applicable to Loot Items) is made up of 7 classes (UNCOMMON, COMMON, RARE, EPIC, LEGENDARY, MYTHIC, RELIC), dictates what attributes a particular Item will exhibit, and is derived from the original container seed
    
*   Loot Items content variety is greatly expanded, there are:
    
    *   30+ appearance states
        
    *   256 prefixes and 256 suffixes
        
    *   hundreds of new item names across RPG domains
        
    *   0-10 augmentation states
        

### Minting Loot Containers with the UI

In pLOOT there are Loot Containers and Loot Items, the latter is what can be valuable (e.g. based on their rarity, or usefulness in a particular application or game) but can only be obtained by minting the former; in other words, you will need to generate and claim (mint) Loot Containers (there are 8 classes of them, with different properties), in order to mint Loot Items.

**Minting containers is a two-step process:**

*   First, you request a ContainerGenesis event, in exchange for that container class mint floor price; besides reserving the container for yourself, this will initiate a Chainlink VRF request that will eventually seed (usually within a few blocks) and permanently associate your container with a truly random genesis seed
    
*   Second, and only after the Chainlink VRF oracle will have fulfilled the randomness, the container is ready to be claimed and any Loot Items inside it unveiled (and minted in the same tx); initially these will be owned by the container itself
    

Speaking of ownership: in pLOOT, every Loot Item is ownable (and per above, initially belonging to the container that minted it) which makes for programmable Loot Containers (able to host any Loot Item combination), from which owners can freely deposit (items that they now own, e.g. because they acquired them on the market) and withdraw them (if they were transferred inside the container).

Follows a visual guide showcasing said features:

![1-time WETH approval for Programmable Loot](https://storage.googleapis.com/papyrus_images/9234253317e0a3b464925aaf9c1f000d833f85cc6fb85d6f16ff5b23165fdd64.png)

1-time WETH approval for Programmable Loot

![Pick the container class you wish to generate](https://storage.googleapis.com/papyrus_images/7dc3197aed8b730f3444f17b02ce6a63e1a03c541c435895a322b6dae89d9102.png)

Pick the container class you wish to generate

![After genesis, the container shows up (give it a few blocks) in the SEEDING state](https://storage.googleapis.com/papyrus_images/fd32759cba0a93b94a40234b71a00f8bbfc7d1bc992ccdc04e581e23d2577310.png)

After genesis, the container shows up (give it a few blocks) in the SEEDING state

![After a few blocks time, Chainlink will seed the genesis event with randomness, allowing you to mint the container, and all items within](https://storage.googleapis.com/papyrus_images/dc5fe621599c59c7c1baa0c45854b12480c438f5e486ac5f83bf92378cbe5bf6.png)

After a few blocks time, Chainlink will seed the genesis event with randomness, allowing you to mint the container, and all items within

![After claiming, you can browse the newly minted container by ID and see what came with it (though luck here). You can also use the "Withdraw/Deposit" interface to manipulate the items inside](https://storage.googleapis.com/papyrus_images/ec308ce3039b5ca43a8cc03e4eb5a5ea0457fb6121bd043d7b630189a23dd541.png)

After claiming, you can browse the newly minted container by ID and see what came with it (though luck here). You can also use the "Withdraw/Deposit" interface to manipulate the items inside

### Technical notes

pLOOT contracts are available on GitHub at [this repository](https://github.com/PirateDAO/ploot-contracts)

*   ProgrammableLoot.sol is the sole owner and minter of LootContainer(s).sol
    
*   ProgrammableLoot.sol is governed by [this Timelock](https://polygonscan.com/address/0x539cbc03d625921308fd2d52af2e0aa8682ccc18#code)
    
*   All smart contracts are immutable, non-proxied, non-upgradable
    
*   New minting operations are guaranteed provided that:
    
    *   either the Sushiswap WETH/LINK pool has enough liquidity for the Chainlink VRF fee or ProgrammableLoot.sol LINK balance is otherwise replenished
        
    *   the Chainlink PegSwap service remains accessible, permissionless and has enough WLINK/LINK liquidity
        
    *   the Chainlink VRF service remains accessible and permissionless
        
    *   the Containers’ inflationary threshold as determined by the inflation gauge is not breached
        

Finally, a word about cross-chain deployments and the rationale for picking Polygon as the launch platform for pLOOT: Our aim is to deploy our products wherever it makes economic and strategic sense to do so; in particular, we elected to first deploy on the Polygon blockchain for the following primary reasons:

*   Low fees give everyone a chance to partecipate, collect and use the product as the DAO intended to, without the paralysis that would occur on Ethereum L1 for the vast majority of users
    
*   Chainlink VRF is currently only available on Ethereum, BSC and Polygon. This DAO believes Polygon to be the best compromise platform considering accessibility, composability, security and gaming-friendliness
    
*   Polygon has a thriving ecosystem, whether it’s DeFi or NFTs, and even more importantly strong symbiotic links to the Ethereum ecosystem L1 and L2s that are here to stay

---

*Originally published on [0xBlackbeard](https://paragraph.com/@0xblackbeard/piratedao-initial-nfts-offering-and-programmable-loot)*
