EVM Actions is a standard to perform web3 interactions within any (web2) website such as social networks or chat apps without leaving a website. EVM Actions is super easy-to-use to develop with and empowers web3 accessibility and ease of use for anyone.
EVM Actions standard conssists of APIs that return actions - such as signing of messages or transactions - directly to a user. They are hosted at publicly accessible URLs and are therefore accessible by their URL for any client to interact with.
The Actions follow a predefined JSON specification and inject/prompt them in the user flow.
EVM Actions are supported by so-called Shortcuts, browser extensions capable of detecting EVM Actions links in a web page and displaying them to the user in a user-friendly way. A shortcut can read a web page's content detect EVM Actions links. When it finds one, it renders the EVM Action metadata in the following way.
Each action includes a title, a description and an image.
There are 4 type of actions that can be injected in a web page:
This project involves three core components:
About the docs, we used Vocs, a Minimal Documentation Framework, powered by React + Vite.
For what concerns the Chrome extension we used Plasmo, a framework to build, test, and deploy powerful extensions on top of the web browser. Creating such extension was no easy task, due to the difficulty of interacting with injected wallet providers such as Metamask: that's why we decided to proceed with the WalletConnect protocol via Dynamic to allow users to connect to a Shortcut via their mobile phone. Obviously, the extension is not perfect, but it shows to wallet developers how powerful such standard is.
The starter kits showcase and implement different use cases and scenarios integrating with multiple partners. We implemented 3 use cases around the "transaction" type of action, namely a simple transfer transaction, a swap transaction powered by 1inch API and finally a crowdfund deposit transaction using the $nouns token on Base. Then we implemented 2 use cases around the "1-click login" type of action, showing developers how to perform 1-click login with both Dynamic and Privy, redirecting and automatically logging-in users into their websites. Finally, we implemented a "signature" use case supporting the signing of a Safe transaction.
Finally, each EVM action link can be stored as a text record in an ENS subdomains, to improve URL readability.