---
title: 'Project documentation template'
disqus: hackmd
---
Bufficorn #BUIDL Brigade Traits Marketplace
===



## Table of Contents
[TOC]
## Background of the Brigade
There is a maximum supply of 10,000!
1. There are 244 basic traits
2. Background: 14
3. Fur: 22
4. Horn: 10
5. Back: 14
6. Threads: 46*
7. Eyes: 42
8. Mouth: 22
9. Earrings: 8
10. Handheld: 21
11. Full Set: 15
3. 27 custom T-shirts have yet to be revealed
1. ETHDenver2022 Sponsors got custom t-shirts
1. 6 Presenting:
* Algorand
* Balancer Labs
* Harmony Protocol
* Opolis
* Reef
* Vega
2. 20 Cypher:
* 1inch
* Aave Grants DAO
* Chainlink
* ConsenSys / Metamask
* Covalent
* DeFi Saver
* Element
* Filecoin / IPFS
* Gitcoin
* MetisDAO
* MyEtherWallet
* NEAR
* Octopus Network
* Opera
* Paraswap
* Quantstamp
* Superfluid
* The Graph
* Thesis/Tally
* Threshold
5. There are Rarity Tiers
4. Tier 1: 1-500
5. Tier 2: 501-2,500
6. Tier 3: 2,501-10,000
6.
7. Start writing note!
Diving Deeper into a Bufficorn's genetics
---
Bufficorn DNA is represented as a list of integers. Some items are core to the appearance, like fur, eyes, mouth, horn, etc. Other items are accessories like a can of beer, earrings, headbands, scuba tanks
The rarity of every item is determined in advance. At launch all Bufficorns had their accessories set as part of their DNA.
Accessory Trading
---
A Bufficorn's fur and horn are core to its identity, but, like hoomans, clothing, accessories, mood, and setting are all things that can be changed.
We have started development on a top secret project, codename: Buffiswapper that will enable Bufficorns to trade changeable trades with one another.
Though our scientists have made siginficant breakthroughs, these DNA-swaps are not without their limitations.
Permanent versus Tradeable
---
1. There are 244 basic traits
2. Background: 14 (Tradeable)
3. Fur: 22 (Permanent)
4. Horn: 10 (Tradeable)
5. Back: 14 (Mix)
6. Threads: 46* (Tradeable)
7. Eyes: 42 (Tradeable)
8. Mouth: 22 (Tradeable)
9. Earrings: 8 (Tradeable)
10. Handheld: 21 (Tradeable)
11. Full Set: 15 (It's complicated
### Back Traits
Some back traits are permanent and some are tradeable. A PegaBufficorns wings cannot be removed, but there are many accessories that have been found on Bufficorns. If a Bufficorn is born with a set of wings, those are its wings for life.
### Tradeable:
1. None
2. Mech Wings
3. Samurai Sword
4. DaVinci Wings
5. Octomech Arms
6. Powered Wings
7. Traveler's Backpack
8. Jet Pack
9. Scuba Tank
### Permanent:
1. Feather Wings
2. Dragon Wings
3. Bone Wings
4. Butterfly Wings
5. Octopus Arms
6. Spicy Buffalo Wings
### Full Sets
Some Bufficorns are born as a fullset, some can be traded to create full-sets. To date only 40 Full-set Bufficorns have been minted, but through Buffiswapping, we anticipate many more being created. Though you may
### Fees
To support development of the marketplace, accessory trades would require a payment in Spork to enact the metadata updates.
To power the Buffiswapper device a minimal amount of $SPORK must be entered as tribute. **Trader A** can also offer additional $SPORK as an incentive to **Trade B** to accept the trade. Additional $SPORK beyond the Buffiswapper fee is earned by the counterparty.
For example: Buffiswapper requries 500 $SPORK to opperate, if the trade is even **Trader A** would put in 250 $SPORK and **Trader B** would put in 250 $SPORK. If **Trader A** is trying to get a Diamond Spork from **Trader B** in exchange for a Yerba Mate, **Trader A** might offer put in 10,000 $SPORK. The first 500 $SPORK power the Buffiswapper and the remaining 9,500 $SPORK go to **Trader B**.
### User Flows
```sequence
Bufficorn A->Bufficorn B: Swap my headband for your spork?
Note right of Bufficorn B: Considers offer
Bufficorn B-->Bufficorn A: Ya for sure
Note left of Bufficorn A: Signs swap authorization
Note right of Bufficorn B: Signs swap authorization
Note left of Bufficorn A: Approves SPORK fee
Note right of Bufficorn B: Approves SPORK fee
Bufficorn A -> Marketplace: Pls swap our traits
Note right of Marketplace: Checks sigs, spork approvals
Marketplace -> Contract: Retrieve SPORK fee
Marketplace -> Bucket: Update metadata for both Bufficorns
```
### Marketplace Operation
The Bufficorn metadata is currently being revealed via an authenticated bucket storage service. Originally the plan was to move all metadata to IPFS/ Arweave folders after all 10000 were minted. However if the community decides to move forward with this trading system, we would need to continue hosting the metadata on a centralized service. Decentralizeed services can be used as backups.
When the marketplace receives a valid swap request, the metadata updates, the images are regenerated, and the metadata can then be refreshed to view the changes on NFT aggregators.
### Moving accessories to new NFTs
Another feature we could implement is the ability to remove accessories from a Bufficorn and mint them as new NFTs. This would allow a secondary market to develop for traits, then the trait holders could submit a request to the Spork marketplace to combine their favorite traits with their Bufficorns.
### Decentralization Options
At some point later we could develop a decentralized version of the marketplace by introducing a Bufficorn wrapper. The wrapper could bring the DNA information out of metadata and on chain. The wrapper admin could create a Merkle tree with all Bufficorn DNA and the wrapper contract could accept a proof to bring the DNA information on chain. Once the DNA information is on chain the marketplace could operate without an authenticated server. The metadata server would just have to listen for updates and regenerate Bufficorn images.
We could also use on chain SVG layering of PNG layers but this is not very widely supported
Boilerplate
---
```gherkin=
Introducing: Guess the word
# The first example has two steps
Scenario: Maker starts a game
When the Maker starts a game
Then the Maker waits for a Breaker to join
# The second example has three steps
Scenario: Breaker joins a game
Given the Maker has started a game with the word "silky"
When the Breaker joins the Maker's game
Then the Breaker must guess a word with 5 characters
```
> I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it. [name=Bill Gates]
```gherkin=
Feature: Shopping Cart
As a Shopper
I want to put items in my shopping cart
Because I want to manage items before I check out
Scenario: User adds item to cart
Given I'm a logged-in User
When I go to the Item page
And I click "Add item to cart"
Then the quantity of items in my cart should go up
And my subtotal should increment
And the warehouse inventory should decrement
```
> Read more about Gherkin here: https://docs.cucumber.io/gherkin/reference/
User flows
---
```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
Note left of Alice: Alice responds
Alice->Bob: Where have you been?
```
> Read more about sequence-diagrams here: http://bramp.github.io/js-sequence-diagrams/
Project Timeline
---
```mermaid
gantt
title A Gantt Diagram
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
anther task : 24d
```
> Read more about mermaid here: http://mermaid-js.github.io/mermaid/
## Appendix and FAQ
:::info
**Find this document incomplete?** Leave a comment!
:::
###### tags: `Templates` `Documentation`