Manage multiple wallets from multiple chains with an AI agent, in a secure & non-custodial way.
Prize Pool
How many wallets do you have? The web3 space nowadays is crowded with many different projects: Ethereum & EVMs, Solana, Cosmos, Bitcoin... managing your addresses between all those chains can be challenging, especially when you have multiple wallets on each one of them (hot wallet, cold wallet, test/garbage one...). On the other end, AI Agents and assistants are increasingly popular in the web3 community. What if you could, with a single Ethereum wallet, use a decentralized messaging app to chat with an AI Agent that will automatically create, manage and allow you to transact with wallets on a multitude of chains.
Feels tempting right? Meet AIlice (AI-lice), an AI Agent built on top of XMTP and Near that does exactly this, in a secure, non-custodial way to make sure that only you can access those wallets, and allowing you to export their private key at any time if you need it.
Currently supported chains for derivative accounts:
Actions that can be done by discussing with AIlice:
and this is just the beginning 🚀
AIlice leverages Near Protocol's Chain Signatures to create derivative accounts and signatures of transactions for other blockchains. For each account generation, the derivation path used is composed of the main Ethereum address of the user (more on this part later) and of the sha256 hash of a password that is chosen when creating the wallet and needs to be given every time you want to perform a transaction with a derivative account.
The other crucial component is XMTP and the Converse app, on which the AI Agent is built using MessageKit. It leverages the framework's AI Skills to define possible actions, like creating wallets or crafting transactions. This means that it's currently powered by OpenAI models (GPT 4), usage of open-source models deployed in TEEs was studied but not realized during the hackathon due to the integration complexity with MessageKit's AI Skills, the text generation features being present directly inside the main package code with the openai library and some hardcoded values. The User Experience is also simplified by the fact that the user already has an Ethereum address that we can access with MessageKit, which is the one he registered on Converse with.
Both parts are linked using another Near (beta) feature: Trade Signatures. This is generally used to exchange ("trade" as stated in the name) a signature on a chain (eg Ethereum) for another one on a different chain (eg Near). In the case of AIlice, Trade Signatures are leveraged to generate an implicit Near account, that will then be used to perform the previously explained chain signatures.
We end up with the following flow: Ethereum wallet using in Converse -> Near implicit account generated with Trade Signatures -> Ethereum, Bitcoin, Cosmos, XRP... wallets generated and used to make transactions with Chain Signatures.
No sensitive data need to be stored (as the Near implicit account is (re)generated on the fly, and same for the derivative wallets), but there's still some public metadata (for each Converse user interacting with Alice, list of their derivative wallet addresses and public keys, along with a label/name they put on it for simplified discussions). As these can still pose some confidentiality/privacy issues (you may not want a cartography of all your wallets on different chains in the wild), this is stored in Aleph.im's decentralized network messages, with the content encrypted by and for the agent wallet.