Introducing Voyager — The window to StarkNet

Ismael Darwish
Nethermind.eth

--

By Ismael Darwish.
Special thanks to
Szymon Kulec for leading the project and providing feedback for this article.

Table of contents:

· Introduction
· What exactly is a block explorer?
· Browse chain content
· How to interact with the network — Voyager 🤝 ArgentX
· Advanced functionality — Accounts in StarkNet
· What’s next?

Introduction

Voyager is the block explorer for StarkNet. Developed by Nethermind in collaboration with StarkWare, it provides a window for anyone to interact with the most cutting-edge ZK-Rollup.

What exactly is a block explorer?

A block explorer is a fundamental component of any blockchain ecosystem. These are tools that let you easily navigate the blockchain state, see all transactions and their status, and for smart contract chains, see the code of the contracts deployed and how to interact with them. They are an essential piece of the puzzle that provides transparency and ease of use for that blockchain.

Etherscan is the most prominent explorer for Ethereum. It provides features like the gas tracker and ERC-20 and ERC-721 token trackers. It supports Ethereum Mainnet and other chains that share the same codebase, such as testsnets like Goerli and even Optimism’s L2 chain.

StarkNet is a decentralized, permissionless STARK-powered L2 ZK-Rollup that supports general computation, and Voyager is its block explorer. Let’s dive into what can be done today with it.

Browse chain content

Using Voyager’s search bar, users can input any address, transaction, block, or message hash to be instantly redirected to it.

Alternatively, there are separate sections:

  • Blocks: It shows the latest blocks and their status. The pending block appears at the top, and already accepted blocks can be inspected below. Users can quickly see transaction count, block status in L2, and whether it has already been accepted in L1.
  • Transactions: Shows transactions in reverse chronological order.
  • Messages: Messages are particular transactions that follow a protocol that allows smart contracts in L1 and L2 to communicate with each other. This section shows all messages in reverse chronological order.
  • Events: It shows events emitted by smart contracts. Events are emitted by smart contracts that notify applications about changes in their state.

On top of this, you can configure Voyager to explore StarkNet on Ethereum Mainnet or in the Goerli testnet. Given the cheaper cost of operating in Goerli, StarkNet blocks settle approximately twice per minute there instead of every 2 hours on Mainnet, but this will likely change as the technology matures.

How to interact with the network — Voyager 🤝 ArgentX

An important peculiarity of StarkNet is that it implements Account Abstraction out of the box. Here at Nethermind, we’re doing extensive research on the topic that you can read about here. In short, in Ethereum there are two types of accounts: wallets and smart contracts. By contrast, in StarkNet there are only smart contract accounts, which means wallet accounts are what’s called a smart contract wallet: contracts that are designed to hold and manage users’ funds. To create a wallet in StarkNet, you first have to create a deploy transaction that publishes your smart contract wallet to the network.

ArgentX is the first wallet solution for StarkNet. The team at Argent has years of experience developing their smart contract wallet mobile app for Ethereum L1, and they recently released ArgentX: a browser extension wallet. Similar to Metamask for Ethereum, ArgentX allows users to easily start transactions and interact with DApps built on StarkNet.

ArgentX and Voyager integrate deeply with each other. From the ArgentX wallet, users can be redirected to transactions, accounts, and contracts displayed in Voyager.

To see how ArgentX is implemented in Voyager, let’s take a look at the Account view.

Advanced functionality — Accounts in StarkNet

Voyager’s contract view with the ArgentX wallet

As explained earlier, every account in StarkNet is a smart contract. In the image, you can see how the wallet account 0x045db… is shown as a Contract in Voyager since there’s no distinction between it and any other smart contract.

Note that the first transaction is a deploy transaction, which is the one that created the wallet. It’s important to keep this in mind: since blocks don’t settle instantly, it will take a while for your wallet to be created.

In the Voyager view, you can see transactions, messages, events, as well as three more interesting sections:

Code

Displays the code of that smart contract. For any contract, it will show the byte code. This is what is stored on-chain, and it’s needed for nodes to run the program, but it’s difficult for anyone to read that code and verify that it does exactly what the programmer says.

To solve this, Voyager provides a code verification tool. This tool allows a developer to upload the source code to Voyager, providing the address the contract is deployed at. Voyager will verify that the source code matches the byte code of that contract and from then on will display a checkmark and the source code alongside the byte code for anyone to verify the inner workings of the contract.

Voyager’s contract code view

Read contract

Provides the functions that the contract has to retrieve its state. This section doesn’t require a connection with a wallet since it’s simply a way to read what’s already on-chain.

Write contract

By connecting the ArgentX wallet, a user can start transactions from this section, invoking the contract with the provided parameters.

What’s next?

At its current state, Voyager is completely functional and full of advanced features for power users, but we still have an exciting roadmap ahead. StarkNet’s ecosystem is thriving. Users and developers are quickly realizing the crucial role it will play in solving Ethereum’s scalability issues. Voyager, alongside other projects, will be one of the main pillars to sustain this ecosystem and make it accessible for everyone. If you want to be on the cusp and ride the wave, download ArgentX, play around with test tokens at no cost at all, and dive deep into this new frontier at voyager.online.

We can’t wait to share more exciting news about our progress.

If you’re interested in solving Ethereum’s hard challenges like this, we’re always looking for passionate people to join us at Nethermind. Drop us an email with your CV at talent@nethermind.io

--

--