11th Jun 2025
3 min read

Gearing Up for Launch: Mainsail EVM Public Devnet Nears Release

Since our last update, we’ve been heads down preparing Mainsail EVM for prime time. We’re closing in on the final fixes and getting ready to launch the Public Devnet. Here’s a behind-the-scenes look at what we’ve been working on.

V3 BLS Public Key Registration

To bootstrap the Public Devnet, we’ll be using a snapshot from the V3 Devnet. For the genesis block, we’ve introduced a new transaction type in Core V3 - BLSPublicKeyRegistration .

This transaction type allows delegates to register a BLS public key to a new attribute - delegate.blsPublicKey.

Key rules:

  • Only delegates can register a BLS public key.
  • Each BLS public key must be unique.
  • Delegates can overwrite their previously registered key at any time.

To streamline registration, we’ve created a CLI helper script: 👉 BLS Public Key Registration CLI

All V3 delegates on Devnet are encouraged to register their BLS key in advance to ensure inclusion in the Devnet snapshot and maintain seamless forging capabilities.

Note: Mainsail requires at least 2/3 of validators to be online with registered BLS keys in order to produce blocks.

If you miss the snapshot window don’t worry, you can still register your key via a ValidatorRegistration call after launch. You just won’t be part of the first block.

Validator Registration Fee

Initially, registering as a validator on Mainsail had no cost beyond gas fees. However, to improve security, commitment, and scalability, we’re introducing a fixed registration fee.

  • Initial fee: 250 ARK (in addition to gas)
  • Controlled via: Milestones
  • Refund policy: Validators who resign will be refunded (minus gas costs)

Snapshot Overview

Let’s clarify what we mean by the “V3 snapshot”.

Since Mainsail’s Devnet/Mainnet will be using V3 data, we need specific on-chain data exported from V3’s Postgres database. We use the @mainsail/snapshot-legacy-exporter to turn this data into a snapshot file.

Snapshot includes:

  • Block height and hash at export time
  • Wallet list (address, publicKey, balance)
  • Attributes like vote, delegate.username, delegate.blsPublicKey, secondPublicKey, etc.

Snapshots are:

  • SHA256 hashed (used as filename)
  • Brotli compressed to reduce size

Genesis Block with Snapshot

When using a snapshot, the genesis block does not include transactions. Instead, it references a snapshot hash to locate the snapshot file which is then:

  • Decompressed and validated using @mainsail/snapshot-legacy-importer
  • Used to create EVM accounts and perform contract calls like registerValidator, vote, and registerUsername

Cold Wallets: Wallets without a public key are still supported. During import, Mainsail matches ARK and ETH addresses and merges balances where appropriate.

Second Signature Wallets: Outgoing transactions remain fully supported, and ARK Vault remains compatible. However, registering new second signature wallets is not possible on Mainsail.

E2E Testing Scenarios

We’ve expanded our end-to-end testing to include networks bootstrapped from snapshots - just like the upcoming Public Devnet and future Mainnet.

To support this, we built tools to auto-generate and update network configs, helping us test under different network conditions.

What’s Next?

We’re almost ready to hoist the sails and launch the Mainsail Public Devnet in the upcoming weeks. Until then, we’re focused on polishing and testing the internal Devnet.

We’re incredibly excited to welcome early adopters and contributors to the ARK Mainsail EVM Devnet very soon.

Stay tuned as the sails are almost set.

Follow on Twitter (X)

Follow us on X (Formerly Twitter) and keep checking the blog to stay up-to-date on all of our new releases. We post a weekly development report so you can easily see what we’ve been up to and follow along our journey towards making your decentralized future a reality.

Share:

Get in Touch!

Whether you want to learn more about ARK Ecosystem, want to apply for developer bounty, become our partner or just want to say Hello, get in touch and we will get back to you.



An Ecosystem of Developers

Join us on our journey to create the future of Web3.