Skip to content

Super CLI: Gasless Deployments #41

@pharger

Description

@pharger

TLDR: Create a deployment pattern for developers to get "free" deployments through SuperCLI

There are probably two tracks to this work worth pursuing:

  1. Pattern which enables devs to deploy for free on testnet and devnets
  2. Patter for long term support of mainnet deployments

For path 1. we could consider centralizing deployment through a centralized deployer wallet operated by OP Labs to testnet and devnets

  • Doing so would allow us to remove the need for developers to prefund a wallet with gas on relevant testnets and devnets
  • In this model we would package the deploy init code in the CLI and hand it off to a centralized service which would deploy to the relevant chains
  • In this model we would not need programatic faucet access or need to provide a bridging expeirence in the CLI for devnets

For path 2. we probably want to pursue this as the long term strategy for testnet and mainnet deployments to decentralize the deployments

  • Users in the CLI would store private key as is, during deployment flow, deployment would be packaged as a userOp and appended to a smart wallet init userop
  • Deployment would be submitted from the smart wallet
  • Paymasters would be set up on relevant chains and prefunded
  • Devs deploying through CLI would be sponsored up to some limit per week, etc.

Why?

  • Deployments don't cost much but removing friction and encouraging free use is a great way to add value without changing the workflow
  • Removing the need to bridge or fund on various networks simplifies the process of deploying and encouraging multichain behavior

My recco:

  1. Get a version of path 1 working for ETH Denver - support the hackathon and devs building on devnets to start through CLI
  2. Later in Q1 ship path 2 as a more durable long term solution

Lets discuss @jakim929 @nitaliano @fainashalts

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions