# HODL Helper ==Believe in something and just HODL== ![hodl-helper-logo](https://hackmd.io/_uploads/SkLsOt6Wkg.png) ## About HODL Helper aims to help people lock away tokens they truly believe so they aren't tempted into trading. One of the best moves people can make when investing is to "buy and hold". This is especially true in the stock market, but I also believe that it can be valid in crypto, even if that hasn't been fully proven yet. Locking tokens away helps keep people true to the strategy, as humans are easily tempted by charts in general. The goal of this app is to lock tokens away without completely stopping users from accessing the funds in case they need them. ## Protocol The onchain protocol is built around the concept of a "Lock". A Lock escrows any amount of a single token, along with a user-specified holding period. To setup a Lock, a small fee of 0.00069 ETH is charged as part of the transaction. This fee helps fund the development of the app. It's pretty easy for infrastructure for the frontend and backend (planned for future) to need to scale with traffic, which costs money. You can always add more tokens to an existing Lock, which again incurs the same small transaction fee (0.00069 ETH). The tokens in a Lock can be withdrawn at any point, however, if withdrawn prior to the holding period ending, a 10% penalty is applied. This penalty is not applied if withdrawing after the holding period ends. ### Sequence Diagram ```sequence Title: Smart Contract Sequences Note left of User: User approves User -> Token: Approve HODL Helper contract Token -> User: Transaction success Note left of User: User configures Lock User -> HODL Helper: Create Lock HODL Helper --> Token: Escrow tokens Token --> HODL Helper: Tokens escrowed HODL Helper --> Protocol Owner: Transfer fee HODL Helper -> User: Transaction success Note left of User: User adds to Lock User -> HODL Helper: Add to Lock HODL Helper --> Token: Escrow tokens Token --> HODL Helper: Tokens escrowed HODL Helper --> Protocol Owner: Transfer fee HODL Helper -> User: Transaction success Note left of User: User withdraws early User -> HODL Helper: Withdraw tokens HODL Helper --> Token: Transfer penalty Token --> Protocol Owner: Penalty tokens sent HODL Helper --> Token: Transfer remaining Token --> User: Remaining tokens sent HODL Helper -> User: Transaction Success Note left of User: User withdraws after holding User -> HODL Helper: Withdraw tokens HODL Helper --> Token: Transfer remaining Token --> User: Remaining tokens sent HODL Helper -> User: Transaction Success ``` ## dApp The current dApp is written in NextJS. It's a framework I'm comfortable with and has large support, especially in web3 and it uses React. It's meant to be a pretty simple MVP. I've built the smart contract to be useable as a simple backend, however, more complex ideas I have like trending tokens will require a backend in the future. For now, that's something I planning on working on, but want to get this out in front of the community to get feedback. ### Design I'm not a designer, but I'd like to think that I've learned a few things over the last few years of building. This doesn't mean that the design is good, but hopefully it's not bad either. In my head, HODL Helper has always been yellow. Not sure why, maybe it's cause I think the logo should be similar to the Walmart smiley face stickers they give out. I'm open to changing this around and would love input from the community. Please feel free to roast my designs! I need the help :) ## Roadmap Honestly, I want to build the app out more than the MVP, but it's not on a set timeline and I want to stay open to ideas from the community. Here's a mindmap of ideas I have for the future of the app that can serve as a good starting point. ```markmap # HODL Helper --- ## Protocol ### EVM #### Ethereum #### Base #### Arbitrum #### Optimism ### Solana (future) --- ## Frontend ### NextJS ### Recent Locks feed ### Copy Lock ### Shareable Lock page ### In-app token purchases via DEXs (future) ### Top tokens people are locking away (future) --- ## Backend (future) ### Django REST Framework ### Index Locks for easier querying ### Public API for retreiving indexed data ```