Natural Language to Calldata - Interact with blockchain in no minute!
Inspiration
Web3 sounds so cool, fun, and innovative that people all wanna have a try. BUT!!! It is just so hard to get started. There is an unreasonably high technical overhead for newby users to do even the easiest thing on any blockchain. As crypto-native builders, we ask ourselves, what will be the ultimate interface for end users to interact with any blockchain project? We are passionate about making crypto accessible to everyone, and we believe the barrier to entry should not be a hindrance. BlockTalk is a game-changer for new users, as it eliminates the need for prior knowledge. With BlockTalk, users can easily transfer and swap cryptocurrencies without the hassle of navigating complicated interfaces or researching obscure technical terms.
What it does
Users input simple commands in natural language and it gets translated into calldata that Blocktalk executes automatically for them! Describe it and it is done!
How we built it
We used react+ wagmi for frontend and we choose chatgpt as our LLM model. We get user's command from frontend and embed it into our prompt-engineering script to transcribe NL to a middle DSL. After getting the DSL, we parse it and feed it into a calldata template. Finally, we send out execution calldata and boooom it is done on-chain!
Challenges we ran into
We prompt-engineered all kinds of Openai models and found that the best performance comes from Chatgpt. Unfortunately, Chatgpt doesn't yet offer public APIs and we had to use a very hacky way to get our prompts working. (thank you selenium lolll)
Accomplishments that we're proud of
It actually works! The whole process runs smoothly and we successfully connected the backend with frontend calls so that the AI part works seamlessly with the crypto side. This is a new direction we are exploring into - how AI can better power crypto?
What we learned
A lot of prompt-engineering and how to get chatgpt work in the backend.
What's next for Block Talk
We will finalize it and support more command types- other than transfer, swap, and bridge. We would also want to talk more with zetachain as it seems to be a great way to execute the users' needs.
Log in or sign up for Devpost to join the conversation.