project screenshot 1
project screenshot 2
project screenshot 3

DeployAlchemist

DeployAlchemist streamlines and accelerates multichain contract deployment. With Terraform as the frontend and Hyperlane Sender and Receiver as the backend, it enables deployment from a single account across all networks, minimizing fees.

DeployAlchemist

Created At

ETHGlobal Brussels

Winner of

Hyperlane - Best Infrastructure

Blockscout - Best use of Blockscout Block Explorer

Prize Pool

Project Description

The core idea is that maintaining a project consisting of several smart contracts on several different chanes while being developed by a team is a big headache. This is the task our tool is designed to solve. Terraform, as a declarative configuration language, allows us to keep track of the state of the deployment, while Hyperlane allows us to federate networks and forget about managing each account separately and constantly replenishing fee.

So, using our tool is all about writing a terraform configuration and then running it. Contracts will be pulled automatically from the parent directory and will be mapped to all specified networks.

The contracts responsible for crosschain interaction are developed by us and can be used in the deployment configuration. But they can also be enhanced by the user and he can raise his own instances.

How it's Made

The exchange of messages and the creation of smart contracts is realised via Hyperlane. For this purpose, on the one hand a message is sent to Mailbox, and on the other hand Mailbox in turn sends a call. The contracts are created using create2, which opens up a more convenient approach to deployment. This approach also allows automatic verification of the code of the deposited smart contracts. There is also active development of a solution to reduce fees quite significantly. Since crosschain messages are quite expensive and bytecode needs to be exchanged for deployment, this exchange can be off-chain (e.g. on ipfs) and then be received by the onchain code of the deployer via Chainlink Functions.The architecture proposed for abstracting the data transfer layer involves a curl request with bytecode to ipfs on the terraform side, and then reading the data with javascript code that will return this information to the onchain via Chainlink Functions.

background image mobile

Join the mailing list

Get the latest news and updates