project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

ETHStacks is an account management interface for token bound accounts (TBAs). Stack your assets through token bound accounts and manage them all through a simple interface.


Created At

ETHGlobal Waterloo

Winner of


🥇 Airstack — Best Use


🏗 Tokenbound — Best Infrastructure/Tooling

Project Description is an account management interface for token bound accounts (TBAs). By leveraging the properties of ERC-6551 tokens, ETHStacks allows you to create token bound accounts and manage them all through a simple interface.


  • Manage multiple token bound accounts through a simple interface
  • Stack assets within token bound accounts
  • Interact with dApps and dynamic NFTs as your token bound accounts
  • Take advantage of the security, privacy and capabilities of smart contract wallets
  • Create joint accounts
  • Add a trusted social recovery address

Our goal was to explore use cases leveraging the parent-child relationship of ERC-6551 tokens, improve the existing wallet management user experience and build a future-facing solution for managing assets and inventory of token bound accounts.

How it's Made used an NFT Contract factory to deploy and NFT contract for each user. Each NFT token minted represents a Stack, a ERC-6551 token-bound account that can hold ERC20 and ERC721 tokens, and execute functions on other contracts.

When s Stacks NFT contract is deployed, it also mints the master NFT stack, and deploys an ERC-6551 Account for the master or "root" Stack. All subsequent NFTs minted are "children" NFTs that are owned by this master tokenbound account. Each NFT has it own tokenbound account that hold assets, though it may not be deployed until the user wants to withraw any of the assets. Due to the couterfactual deterministic addresses, asssets can be sent to these addresses prior to deployment, and the user can be confident that only the only of the Stack NFT will ever be able to access them.

While the potential is limitless, example included in this submission include:

transferring assets between Stacks supplying assets to both Compound and Aave to earn yield (ie. "Savings Stacks") borrowing assets from Aave (ie. "Loan Stacks") using a Stack to send your spam assets creating a Stack for high value assets and then sending the Stack to your cold wallet adding a joint account holder who has equal access to the Stack's assets adding a trusted social recovery address that can access the asset if you lose your private key creating a Stack as a stealth address that you want to receive payment, without immediately being linked your main address creating Stacks to act as NFT galleries recycle your private keys periodically by sending your master Stack to a new wallet address -- only 1 transaction required! Contracts were deployed using Hardhat via Scaffold.eth, interfacing with already-deployed registry and account implementation contracts for ERC-6551 tokenbound accounts.

The front-end is powered by React, Wagmi, Tailwind, Prisma, Sign-in with Ethereum, ConnectKit and Viem.

User assets are pulled using Airstack endpoints.

Unit tests were written using hardhat and ethers.js.

All of the above was powered by caffeine.

background image mobile

Join the mailing list

Get the latest news and updates