# ⚔️ Bufficorn Buidl Brigade <> Raid Guild: V1 ⚔️
> ~~Crafting~~ Perfecting a trait swapping tool for Bufficorns everywhere
<br />

<br />
## Documents
[V1 Design Sprint Video](https://drive.google.com/file/d/1OfdkzDYge8SXrW80gkXNUEIHhifWgp9h/view?usp=share_link)
[V1 Design Sprint Approach (Deliverable)](https://hackmd.io/@3LPbX2EzR_CWxkXCzlRagg/HJjv_Ghcs)
[Live Application](https://swap.bufficorn.com)
[Style Guide](https://drive.google.com/drive/folders/19bZdMDyEKr9HhOCnz7yDybnuj944PZOf)
## Project Scope
Since discovering the majesty of the Bufficorn, the Brigade has rallied #BUIDLers across the planet. If only there was a better way to truly express one’s identity in the owning of these Bufficorn NFTs. The current auto-generated images are dearly loved, but what if they could change shape and form?
Raid Guild has succesfully partnered wtih SporkDAO to launch a swapping tool to a limited group of select users. After initial feedback and usage, we are ready to introduce additional funtionality and level-up the performance of the app.
SporkDAO has tirelessly tended to the herd. And, oh what a magnificent herd! Raid Guild is enthusiastic to help with the fur scratching, horn polishing and all around Bufficorn accessorizing. Do you prefer rainbow or Marilyn Monroe red?

###### Low-fidelity homepage mockup
### Expected Deliverables
#### New V1 Features
* **Homepage**
* From the approach document, the homepage will include:
* ‘most recent swap’-area
* list of all swaps in table
* an area for trait-offers, showing:
* title “Looking for something specific?”
* input “What are you looking for?” + input “What can you offer?” + btn
* button “+ new offer”
* a list/collection of existing traitoffers, showing the bufficorn + what he is offering + what he is willing to swap for
* an area to display the full sets
* **Open-swap/trait-offer model**
* From the approach document:
* *We will build the front- and backend to enable a user to offer a trait for swapping. In a specific designated view, a user will be able to select the trait they could offer, and also select for which specific traits they would be willing to swap*
* *Their offer will appear in the list on the homepage (see screenshot in 2. -> area for trait-offers) so other users can see it and interact with it*
* **Swap-preview**
* From the approach document:
* *To the swap-view, we will add a preview mode, showing the result of the swap before it is actually executed. The preview will show the bufficorn as they would look after the swap and their new rarity*
* *This preview will be visually distinguable, on a different bg. There will be only a single button to exist this preview, so there can be no confusion*
* **Rarity**
* From the approach document:
* *In this v1 we will indicate the rarity of each buff w a single number, displayed everywhere next to the buff’s id (see first screenshot below), having a speficic colour and icon. This number is a summary of different aspects, the combined rarity of every individual trait. All of this data is generated by a script supplied by the Bufficorn Buidl Brigade*
* *In the UI, when clicking this number, a popup will appear, showing the details that define this number (see second screenshot below)*
* **Realtime Datamodel (notifications)**
* From the approach document:
* *To increase comfort of use, we want to create a notifications-system for the user to receive notifications about their swaps in real-time*
* *In the top right corner, we will show a notif-badge, indicating w a number and colour if there are any new notifs that the user should read. When clicking this notif, the user will navigate to the swap this notif is concerning*
#### Improvements
* **Security/QA**
* OpenSea/Rarible API Integrations
* OpenSea force-refresh
* When a trait swap happens, the OpenSea metadata automatically refreshes
* Bufficorns with OpenSea/Rarible offers can't be swapped
* We've been communicating with the Rarible team, and their API can check both Rarible and OpenSea for listings
* **Mobile Optimization**
* From the approach document:
* *in the initial phase of a swap (= when choosing bufficorns), we will adjust the sizes of the ‘CHOOSE BUFFICORN’ and ‘CHOOSE SWAPPEE’-boxes, so that the user will see all the key-elements in one overview: the two boxes ànd the question+button below*
* *in the next phase of a swap (= when the buffs ànd traits are choosen), we will show a minimized version of this setup, so that we can dedicate 50% of the viewheight to the actions the user has to take and the status of the swap*
* **ENS lookup**
* Users will be able to input an ENS into the lookup box, currently only used for Bufficorn IDs
* **Public API**
* To support Buidlers who want to work with trait swapping data, we will create a public API such that users can pull trait swapping and Bufficorn data for their purposes
### Component Breakdown
Individual deliverables from this proposal include:
| Component | Requirements | Time Split (FE/BE) | Time Subtotal |
| ----------------------------------------- | -------------------------------------- | ------------------ | ------------- |
| Homepage | Design/Frontend + Backend Integrations | 25hrs / 12hrs | 37hrs |
| Open-swap/trait offer model | Design/Frontend + Backend Integrations | 10 hrs / 7hrs | 17hrs |
| Swap preview | Design/Frontend+ Backend Integrations | 4hrs / 5hrs | 9hrs |
| Rarity | Design/Frontend + Backend Integrations | 4hrs / 5hrs | 9hrs |
| Notifications | Design/Frontend + Backend Integrations | 4hrs / 9hrs | 13hrs |
| Mobile Optimization | Design/Frontend | 6hrs / 0hrs | 6hrs |
| ENS Lookup | Design/Frontend + Backend Integrations | 3hrs / 1hrs | 4hrs |
| Security/QA | Backend Integrations | 0hrs / 7hrs |7hrs
| Public API | Backend | 0hrs / 7hrs | 7hrs |
| | | **Total Time** | **109hrs** |
Anything not detailed here is considered out of scope.
### Milestones
There will be one milestone: delivery.
### Required Resources
1) Designer
2) Developer
3) Project Manager/Account Manager
----
## Proposal
| Category | Estimate |
| --------- | --------------- |
| Design/FE | 10,125 xDAI |
| Backend | 13,875 xDAI |
| **Total** | **24,000 xDAI** |
After some discussion, the Raid Party has agreed for
this scope alone to have "skin in the game" with ETHDenver and reduce the payment in xDAI in favor of SporkDAO-based compensation.
Specifically:
* A reduction of 2,400 xDAI for 24,000 SPORK
* A reduction of 600 xDAI for 4 floor-price Bufficorns
* A reduction of 800 xDAI for a swag-filled care package sent to Tamil Nadu
The new, final total is **20,200 xDAI**.
This will be delivered for testing by EOD February 10th. For every item listed in the Component Breakdown not delivered by that date for reasons due solely or primarily to Raid Guild, Raid Guild will refund the client 2,000 xDAI.
*Note: the above figures include administration and project management*
Both parties understand that requirements and details may change slightly during the project. If work put in is dramatically less than budgeted, budget will roll over into the next project (V2) or be refunded. Alternatively, if work put in dramatically exceeds budget, a smaller proposal will be issued to cover the difference. Both circumstances will proceed with the agreement of both parties.
## Payment
Verified payment of **20,200 xDAI** into RaidGuild's smart escrow service will initiate the project.
> [Smart Escrow - V0 Milestone #1 Raid ID 629f868a21857111a1a530f3](https://smartescrow.raidguild.org/escrow/629f868a21857111a1a530f3)
> [Smart Escrow - V0 Milestone #2 Raid ID ]()
> [Smart Escrow - V1](https://smartescrow.raidguild.org/escrow/63cec6fb1a2b032f12f58bbb)
Please connect with your EOA to submit payment into escrow.
Upon successful completion of deliverables, we will ask you to release the fuI'mll funds in escrow.
## In case of dispute
If you lose confidence in the Raid Party at any time, you may `Lock` the remaining funds in escrow.
If you do not release funds upon completion of deliverables, the Raid Party may `Lock` the remaining funds in escrow.
In both cases, the `Lock` triggers the arbitration provider (i.e., LexDAO) to review the dispute. Based on their review, the arbitration provider will decide which party should receive what amount of funds, and will send a transaction to the escrow contract that will transfer the appropriate amounts to each party.
We sincerely hope this won't be the case, but all parties are protected nevertheless.
**We look forward to Raiding, please reach out with any questions or concerns!**
<br />

<br />