# NounSwap: Choose Your Character!

## TL;DR
Hey! We're [Paperclip Labs](https://paperclip.xyz/). We design, build and ship crypto products and tools. 

![NounSwap-Gif](https://hackmd.io/_uploads/SJW1u9CSp.gif)

This week we released [NounSwap](https://nounswap.wtf) v1, a tool that helps Noun owners swap their Noun for another one in the Nouns Treasury, and the reception from the community was beyond our expectations. We even saw two proposed swaps in the first hour after launch!

### NounSwap v1
This version allows Noun holders to easily create a Nouns governance proposal to swap their Noun with one from the treasury.

As retroactive and proactive compensation for the completion of v1, we are requesting $42,000 and Noun 788 (Paperclip Head!) from the treasury in this proposal.

### NounSwap v2 
This will build upon v1, and allow **permissionless swaps**, DAO-distributed redemption tokens, governance-configurable swap fees, and governance-configurable permissionless swap exclusion of low number Nouns. It will vastly improve the swapping experience, and gamify the way the community distributes Nouns with a redemption token and a vending-machine-like experience.

In two future follow-on proposals, we will request  $88,000 to implement this improved permissionless version, with an additional $15,000 earmarked for contract audits. 

### Payment Schedule
In total, we will be asking for $145,000 USDC + Noun 788, but we are proposing a milestone based payment schedule, which will include 3 separate proposals:
1. Today's Proposal: $42,000 and Noun 788 for NounSwap v1 retroactive and proactive funding.
2. Upon v2 contract audit: $15,000 USDC, with any unused funds returned to the treasury.
3. Upon completion of NounSwap v2: $88,000 USDC.


## Background
The NounSwap story started with a cast from Toady Hawk that caught our attention. 

![Nounswap - Original Cast](https://hackmd.io/_uploads/HJYSH6TBa.png)



This struck a chord with us because we had faced similar challenges while navigating the world of Lil Nouns as well. We designed a concept for how it might work, and reached out to Toady. After chatting and hearing more about the idea, we built a prototype for NounSwap.

The goal of NounSwap was to create an easy way to allow any Noun holder to swap their Noun for another one in the Nouns treasury. It is a tool to help enrich the entire Nouns community experience, and allow Noun holders to more easily find their “forever Noun.”

# NounSwap v1

## Overview
With NounSwap v1, we built an MVP to empower users to swap Nouns with the treasury. For the MVP, we took the path of least resistance and risk in deciding that each swap would trigger a proposal in Nouns governance. This meant that we could build v1 with no smart contract, and not need Nouns DAO buy-in to get approval to spend treasury Nouns. Our goal was to gauge community interest, and ensure there was product market fit before continuing to pursue a better implementation (v2).

## What We Built
### Initial Designs
We started with initial wireframes of how this could work. Users had to be able to do 3 things. 
1. Choose the Noun they wanted from the treasury. 
2. Select a Noun they own to swap.
3. Create a Swap Prop!

Once we had established the initial wires, we moved on to design a tool that leveraged the Nouns brand. We looked to integrate familiar patterns/styles we found in other Nounish tools so users would have a sense of familiarity and ease when using the app. Ultimately finding UI assets in Figma for Nouns was a challenge so we ended up pulling most of the assets from nouns.wtf. Post-design, we conducted a series of focused user tests to fine-tune the user experience. These tests provided valuable insights, enabling us to refine and iterate on the designs further before moving into the development phase.

### Nouns.wtf Goerli Testnet Deployment
As we were building, we quickly realized the importance of allowing users to experiment with NounSwap on a Testnet before they tried it on Mainnet. We wanted to emulate the actual experience of getting a Noun and creating a prop with NounSwap. We recognized the need for a front-end interface for a testnet so users could easily purchase a Noun and create props. [We couldn't find a live testnet frontend](https://twitter.com/coleperkins_/status/1725606446052921407) so we ended up deploying our own [version fork of nouns.wtf on Goerli. ](https://nouns-webapp-nu.vercel.app)

![Nounswap - Goerli Testnet](https://hackmd.io/_uploads/HydXBpTST.png)


### NounSwap.wtf
We made the NounSwap design come to life with a Next.js app hosted on Vercel. All Noun data is pulled in through the [Noun’s subgraphs](https://thegraph.com/hosted-service/subgraph/nounsdao/nouns-subgraph), and images are constructed using the [Nouns SDK](https://github.com/nounsDAO/nouns-monorepo/tree/master/packages/nouns-sdk). We support Mainnet and Goerli testnet, and wallet connections are handled through RainbowKit, Wagmi and Viem. There are no contracts, the swapping process happens through gouvernance proposals. The code is all [open source on Github](https://github.com/papercliplabs/noun-swap/tree/main/web).


### Early Traction
We shared the testnet version on Warpcast two weeks ago where we had positive feedback from Nouns community members. After taking into consideration some feedback, we launched on Mainnet this week and were blown away by the feedback. Within the first hour of launch, 2 swap props were created and we have recieved overwhelmingly positive feedback.

![NounSwap-Analytics](https://hackmd.io/_uploads/HklEWRLAST.png)

![Nounswap-Feedback](https://hackmd.io/_uploads/rJL4aI0Bp.png)

![Nounswap-SwapProps](https://hackmd.io/_uploads/S1gzH6TSa.png)

![Valko-Testemonial](https://hackmd.io/_uploads/BkBkcFCH6.png)


### Remaining v1 Work
Based on the feedback we received at launch, we want to update NounSwap v1 to create a more personalized experience, and improve the overall product. 

**This includes:**
1. **Improve Treasury Noun Selection UX:** Add filtering by Noun ID, and by trait name string match so users can more easily find their forever Noun.
2. **Improve Proposals UX:**
    - Let swap creators add their reason for swapping in the Nouns prop to provide more context for voters.
    - Display the Noun images in the swap proposals.
3. **Product Improvement and Enhancements:** Overall product polish, usability improvements and performance updates.
4. **Withdraw Escrowed Nouns To Treasury:** There are 266 Nouns in the fork escrow, as part of this proposal we will move those into the treasury so they will be available for NounSwap, or for anyone to make a proposal and avoid what happened with the elusive Sasquatch. **All the forked Nouns are coming home ❤️**

We will also continue to monitor v1 swap proposals. If they become a spam/volume problem for Nouns governance, we will take action to control it until v2 can be released. 

### Budget & Timeline

1. Retroactive v1 Work (complete) $42,000
2. Remaining v1 Work (~3 weeks): Noun 788 from the treasury (Paperclip head!)

Total ask: $42,000 + Noun 788

*All $ amounts in USD*

*Paperclip Labs is requesting Noun 788 which we plan to "save" as part of the migration from escrow. We would like to continue to contribute to the Nouns community and build more Nounish projects in the future. We're big fans of the paperclip Noun 📎*

![Noun-788](https://hackmd.io/_uploads/SJL-JqCST.png)


# NounSwap v2
## Overview
While the initial release of NounSwap v1 was successful, having to make a governance proposal for each swap is a cumbersome task, and could potentially lead to prop spam/voter fatigue. This proposal, if successful, will implement NounSwap v2, which will allow permissionless swaps, redemption tokens, governance configurable swap fees, and governance configurable permissionless swap exclusion of low number Nouns. This will vastly improve the swapping experience, and gamify the way the community distributes Nouns with a redemption token and a vending machine-like experience, allowing all players in the Game of Nouns the ability to Choose Their Character!


![NounSwap-Vending](https://hackmd.io/_uploads/SkSYtTTHT.png)


## Scope

### NounSwap v2 Implementation

**Objective:** Implement a permissionless version of NounSwap which will allow anyone to swap their Noun for a Noun in the Treasury without a gouvernance proposal. It will also support governance configurable parameters, and redemption tokens.

**Activities:**
1. **NounSwap Contract:** Develop the NounSwap contracts which will:
    - Facilitate the permissionless swap process 
    - Support governance configurable swap fees
    - Support governance configurable permissionless swap exclusion of low number Nouns
    - Create the redemption token
    - Allow redemption tokens to be redeemed for Nouns
2. **NounSwap Contract Audit:** Have the NounSwap contracts audited.
3. **Contract Deployment:** 
    - Deploy the NounSwap contracts. 
    - Submit a Nouns governance proposal that will allow the NounSwap contract to move Treasury Nouns to facilitate swaps and redemptions. 
    - Mint redemption tokens to the Nouns treasury.
4. **UI Design Updates:** Update to the NounSwap v1 UI to facilitate the new features. Proposals for low number Nouns will be supported through the NounSwap v1 mechanism of creating props.
5. **Frontend Implementation:** Iterate on the v1 frontend to implement the UI design updates.
6. **Frontend Deployment:** Deploy NounSwap frontend on Vercel and IPFS.
7. **Twitter Bot:** An opt-in bot that will tweet whenever a swap happens.

### Deliverables:
- **Open Source Design Files:** Figma design files including all assets and UI Kit open sourced and publised on the [Paperclip Labs Figma Profile.](https://figma.com/@papercliplabs)
- **Open Source Code:** Frontend and smart contracts open sourced on [Paperclip Labs Github.](https://github.com/papercliplabs)
- **Contract Deployment:** NounSwap contracts deployed to Ethereum Mainnet and Goerli Testnet.
- **Frontend Deployment:** NounSwap v2 frontend deployed and hosted.

### Maintenance 
We believe it is important to sustain projects that the community finds useful. As such, we will include 6 month sustaining and maintenance support as part of this proposal. Beyond that, we plan for any additional maintenance to be funded by a combination of potential fee split revenue and mini-grants via Nouns Governance.

### Budget & Timeline

1. NounSwap v2 Implementation (8 weeks): $76,000 USD
2. 6 Months Maintenance: $6,000 USD
3. 6 Months Community Outreach: $6,000 USD

Total future ask: $88,000 USD


### The Audit
In our ongoing commitment to ensuring the security of the DAO, we propose to undertake an audit of our contracts. For this purpose, we are requesting an additional allocation of $15,000. This funding will solely be used to cover the auditing expenses. Any unspent funds will be returned to the DAO treasury, maintaining our commitment to financial responsibility and transparency.

---

# The Team


## Paperclip Labs
We’re [Paperclip Labs](https://paperclip.xyz/). We design, build and ship crypto products and tools. We are a team of designers, developers and researchers that have worked with some of the top DeFi teams, including Compound, dYdX and Messari. We have experience and a proven track record building, shipping and maintaining products for a number of clients and protocols. We believe we are well-positioned to successfully execute on this initiative.

### Paperclip Labs Leadership

#### Cole Perkins - Co-founder ([@coleperkins_](https://twitter.com/coleperkins_))
Cole leads design at Paperclip Labs. Previously, he was a Product Designer at MetaLab, where he worked with clients, including Google, The Chan Zuckerberg Institute, D-Wave, Otter AI, Upstox, and IFTTT.

#### Spencer Perkins - Co-founder ([@spencerperkins_](https://twitter.com/spencerperkins_))
Spencer leads engineering at Paperclip Labs. Previously, he was a Software Engineer at Tesla, working on the Megapack & Cybertruck teams. Prior to Tesla, Spencer worked on robotics at Nvidia.

### Paperclip Labs Past Relevant Projects:
- **Paperclip Labs work samples:** You can checkout out some of the clients we have worked with in the past:
    - [Paperclip Labs Website](https://paperclip.xyz/)
    - [Freely Available Figma Designs](https://www.figma.com/@papercliplabs)
    - [Paperclip Labs Github](https://github.com/papercliplabs)

- **Hopscotch:** We recently launched Hopscotch, a tool that allows anyone to generate on-chain payment request links, accepting payments in any token. We designed, built and created the entire product. The initial idea was to create a widget-like experience someone would be able to embed. You can check out v.1.0 here:
    - [Hopscotch Website](https://hopscotch.cash/)
    - [GitHub Repository](https://github.com/papercliplabs/hopscotch-contracts)
    - [Video of paying a request](https://twitter.com/hopscotchcash/status/1659169795311382531?s=20)

- **Etherlands:** Was a unique Minecraft server that allowed players to buy, own, and sell virtual land as NFTs. We designed and built a web platform to onboard players, allowing them to purchase, trade, and discover virtual in-game land. In 2021 to 2022, we worked to help bring this project to life. [Read more](https://paperclip.xyz/work/etherlands)

- **dYdX:** We desiged and developed a few consumer facing products the dYdX ecosystem. We did the [dYdX Grants Program website and brand](https://www.dydxgrants.com/). We have also made our design work and concepts [publicly available](https://www.figma.com/community/file/1122297379970921131) for community use, which numerous other teams have utilized as a foundation for their projects. Additionally, [we designed and built the dYdX Merch Shop](https://dydxmerch.shop/), where provided the abililty for them to offer a distinctive token-gating feature, designed to provide exclusive access to select merchandise for Hedgie NFT holders.

- **Compound Finance:** For Compound, we [created a distinctive branding identity](https://www.figma.com/community/file/1204549542354856394/compound-grants-brand-assets) for their Grants Program. Beyond branding, we have built subgraphs and comprehensive analytics dashboards. These tools have been pivotal in equipping teams with the ability to consume data insights necessary to make informed decisions within the Compound ecosystem.


---

### Collaborators 
We are also working with the following Nounish contributors

#### Toady Hawk ([@toady_hawk](https://twitter.com/toady_hawk))
Toady Hawk was the one who originally inspired us to build NounSwap, and has been a valuable advisor thus far. He will continue to do so throughout this project.

#### BenBodhi ([@benbodhi](https://twitter.com/benbodhi))
BenBodhi has been an avid contributor to Nouns DAO and provided us with early feedback on the product he will be helping to contribute on NounSwap.  

Both Toady and Ben will also act as signers on the 3/5 Multisig for this project, alongside 3 Paperclip representatives. 

---

We would like to thank Nouns in advance for the opportunity, and we hope to have your support as we aim to help bring a new reward and swap paradigm to the Nouns community, and allow Nouners the freedom to Choose Their Character.

If you have any questions for us about the Proposal, please don't hesitate to ask questions here onchain, on [X/Twitter](https://twitter.com/papercliplabs) or [Farcaster](https://warpcast.com/coleperkins).


Thank you,

Paperclip Labs & friends ⌐◨-◨

Outcome: DEFEATED