btc/acc

Project Overview
btc/acc is a protocol that helps you automatically accumulate Bitcoin while trading. Instead of losing all your profits in memecoins, btc/acc ensures you're building a position in Bitcoin over time.
There are 3 parts: the protocol, the hook, and the token.
- The protocol is a smart contract that takes Ether deposits and swaps to cbBTC (Coinbase Wrapped BTC) via Aerdrome and stores it for the user.
- The hook can be attached to any token pair on Uniswap v4 and takes 1% of each trade on behalf of the swapper, buys them Bitcoin, and deposits it in the protocol.
- The token is used to demonstrate the hook/protocol, and is a carrot to get other apps to integrate btc/acc fees for their users.
Uniswap v4 was launched on January 30th, so this project took around 3 weeks to fully realize. We wanted to ride the hype of v4 and create something positive-sum for the ecosystem.
Launch Details
- The token was fair-launched in a single-side v4 pool with the hook attached. 30% of the supply was kept in the contract for future incentives to incentivize deposits and integrations if the protocol ever took off.
What Went Right
- The hook/protocol worked as intended and had no logic issues.
- No one sniped the token, as it was launched on v4 and there was no support for it.
- We worked with our friend teto to design a beautiful frontend.
- Community sentiment was extremely positive and people loved the idea.
- Users accumulated Bitcoin on every trade of the btc/acc token—a positive feedback loop, as they could instantly see their rewards and withdraw them.
- Even though the rewards come directly from their transactions, it didn't really matter.
What Went Wrong
- We were too early. Almost no one supported v4 (Dexscreener, Routers, etc.) at the time of our launch.
- The Uniswap frontend only routed through whitelisted hooks that had custom "afterSwap" logic (this is basically all of them). This was the largest blocker, as we were experimenting with Uniswap tech and they wouldn't even let users trade through it.
- v4 requires you to call msgSender() to determine who is actually creating the swap. As a result, only routers that have implemented this callback will work with the hook.
- We forgot to whitelist the 0x routers initially. Once we whitelisted them, 0x was able to route through the hook for users (allowing them to buy and sell on sites like Matcha).
- This forced users to buy/sell on our frontend, which is a high friction to overcome.
- Some users created their own v2/v3 pools, which the Uniswap frontend would route through. This caused some people to pay 5-10x market price for tokens, instantly be down and angry at us, even though it was technically Uniswap's fault for not routing through v4.
- It's extremely optimistic to expect applications to charge a 1% fee for their users and not just take it for themselves.
- No communities added the hook to v4 pools because no one would route through them.
Wrap-up
After 2 months, btc/acc is one of 5 hooks whitelisted on the Uniswap frontend.
Most TokenWorks projects are pretty ephemeral, capturing narratives going on in the trenches, but I've been trying to tie btc/acc into them as a net-positive for the space and do exactly this (ex: Spawn would pay out fees by depositing into the protocol for creators).
It's somewhat idealistic to expect projects to add fees that aren't just taken for themselves, but imagine a world where Base & Uniswap incentivized adding the btc/acc hook to v4 pools. Coinbase/Warpcast/Banker could add a 1% fee on transactions that would just buy and deposit into the btc/acc protocol for users.
Without any of the above, btc/acc has $40k in TVL, which I consider a win (not to mention, TokenWorks has made 3/12 of the top v4 hooks across all chains with 0 funding).