project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

EVM Actions

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

Created At

ETHGlobal Brussels

Winner of

1inch - Enhance your app with 1inch Developer Portal APIs 1st Place

ENS - Best use of ENS 1st place

Dynamic - Best Integration

Project Description

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:

  • Transaction: prompt the user to execute a transactions through an EOA (e.g., transfer 0.01 ETH to limone.eth)
  • Signatures: prompt the user to sign a transaction through an EOA (e.g., sign a message)
  • Links: redirect the user to an external website
  • 1-click Login: allow the user to quickly login into an external application with their connected EOA (e.g., with Dynamic / Privy)

How it's Made

This project involves three core components:

  • a standard to define / declare / describe EVM actions (docs on https://evm-actions.builders.garden/)
  • a Chrome extension to detect EVM actions in web pages (e.g., Twitter, Discord) and injects an iFrame with a title, image, description and multiple buttons
  • a set of Next.js starter kits to showcase what developers can build on top of this new standard

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.

background image mobile

Join the mailing list

Get the latest news and updates