project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

Programmatic NFTs

ERC6551 accounts that allow customisable tokenURIs without changing any underlying token, bringing liquidity to loyal holders for practically free.

Programmatic NFTs

Created At

ETHGlobal Paris

Project Description

The idea is simple, define a tokenURI method in the ERC6551 Account contract, which can then be dependent on the underlying assets. What's so special about this is that this can be done fully on-chain, full transparency. This means that normie ERC721 holders, can gain this abstraction just by deploying their Token-Bound Account (TBA) for almost free. With this, sponsorship can be enabled (with some auxiliary data structures), and loyal NFT holders can get their PFPs sponsored to wear cool swag. Think BAYC with Nike shirts, or your favourite PFP with custom-designed wearables. On top of this, using Biconomy's SDK, the sponsors will pay it forward for the token holders. This is made possible using ERC4337 when creating the TBA, which ensures that the token holder only ever needs to approve and gain sponsorship money with a click of a button (since transactions can be batched easily). Another point to add on UX, was the use of Hyperlane to enable cross-chain sponsorship, without sponsors having to continuously swap & switch between chains. This project aims to build a more interactive experience for the sponsors as well, by creating chat rooms with the TBA using Push.

How it's Made

This project uses the @tokenbound/sdk to interact with ERC6551 compatible contracts. The smart contract was put together using foundry, and frontend was made with TypeScript, React, TailwindCSS, and using @shad-cn/ui library. The wallet uses @safe-core-sdk/auth-kit (although it is currently a Rainbow wallet as I had into some issues with Biconomy's and Safe's AA wallets). The chat room system was done using Push, although it is not fully working due to a lack of time. For cross-chain interactions, I was going to use Hyperlane's Queries API to retrieve contract reads, along with Accounts API to setup TBA creations and sponsorship approvals. Unfortunately, I did not have time to implement this, so the NFT data. can only be written if you are in the same chain (app makes the user switch). The sponsorship creation and gas fees should be borne by the sponsors, which was supposed to be done through Biconomy's SDK. This was also not done due to lack of time.

background image mobile

Join the mailing list

Get the latest news and updates