Description

Juice is a tool that allows you to deploy your own powerful / upgradeable Token contract without knowing how to code. The neat part about Juice is it is very extensible. You can add on new contract functionality to your existing contract very easily (and in a gas efficient way). Once your contract is deployed we will also provide an easy way to embed a token "checkout experience" directly in your website, so you can sell your tokens from common no-code site builders like Webflow or Wordpress.

Juice showcase

How it's made

For the smart contracts, juice is built as a modified version of EIP-2535 Diamond standard. This is a new architecture which allows one contract (the "Diamond") to point to multiple implementation contracts, called "Facets." Diamonds are really awesome, but one problem is they are more expensive to deploy than normal proxy contracts because they have to store all the information about what functions get pointed to which facet. The thing I'm most proud of with this project is an optimization on top of the diamond standard, which I'm calling the "Diamond saw," that reduces the storage needs of diamonds and makes it radically cheaper to deploy / upgrade diamond "clones." It does this by storing router information in a singleton contract, vs in each individual diamond, and there is more information in the readme of the github repo. I think this pattern could be a game changer! On the front end side of things, I used this project as an excuse to learn svelte / svelte kit. Being brand new to svelte definitely slowed me down at times, and I got a bit tripped out by module resolution with server side rendering, but I'm pretty happy with how the front end turned out. Sponsor technologies used: Wallet Connect / Coinbase Wallet for wallet connection (and embedded wallet connect UI for customers on their site). Polygon / Arbitrum will be supported for deploying contracts, and IPFS is used for metadata storage via nft.storage. Hacky stuff? There is literally no error handling lol ๐Ÿš€