Our project introduces a novel cross-chain integration protocol specifically designed for TBAs. This protocol addresses the critical need for trustless and secure cross-chain interactions while prioritizing user confidence.
The current ERC6551 token bounded accounts can be deployed on the blockchain where we have the NFT due to owner function of ERC 6551Account
function owner() public view returns (address) { (uint256 chainId, address tokenContract, uint256 tokenId) = this.token(); if (chainId != block.chainid) return address(0); // Restricts owner to same chain
return IERC721(tokenContract).ownerOf(tokenId); }
Our solution extended the use cases of Tokenbounded accounts to multiple chains
when a user clicks on create account the the relayer emits an event verifiernodes keep tracking the relayer when ever relayer emits the event then the verifier sends the details of transaction to be executed and the threshold key of relayer executior node will decrypt key form the threshold key and executes account creation transaction verifiers will keep track of all the NFTs on source destination when ever the NFT is transfered to new owner the the relayer will change the ownership of Account to new owner The Address of token bounded account remains same on every blockchain and also the ownership changes when the ownership of NFT changes
We designed our Threshold Relayer in which the share of key is stored in every node so we have 2 types of nodes in relayer
Verifier Node Executior Node
Verifier node : verifier nodes verify all the transactions such as create account transfer ownership and send them to executior node will execute the transaction
Executior node : executior node after receiving minimum no.of verifies it will decode the key from shares of threshold key and execute the transaction
BLOCKSCAN: all the transactions made on erc7551 are stored in block scan we have build a small implementation of etherscan for our project
Use of create2: every relayer and Registry contract is deployed on same address on sepolia base sepoilia ,optimisum sepoila (since as of now we only support only these 3 chains)
By using create2 we tried to deploy all accounts on different chains at same address this is to make a user friendly experience rather than having different account on different chain