How to verify a smart contract on the RSK Block Explorer

Originally published on the RSK Developers Portal.

Smart contracts are a means to execute code and store data on a blockchain. To understand how smart contracts work, read What is a Smart Contract?

Source code verification provides transparency for users interacting with smart contracts. By uploading the source code, a block explorer will match the compiled code with that on the blockchain.

Once verified, a smart contract or token contract’s source code becomes publicly visible and thus independently verifiable. This creates transparency and trust. It also makes it more convenient for other developers to interact with your smart contracts.

In this tutorial, we will verify a smart contract, using the following steps:

  1. Connect metamask to RSK Explorer
  2. Get tRBTC using the RSK faucet
  3. Use remix to compile and deploy the Smart Contract at RSK testnet
  4. Verify the Smart Contract on the RSK Explorer

Getting started

To connect Metamask to RSK Testnet, compile and deploy a smart contract, follow the steps in Using remix and metamask with RSK Testnet

As mentioned in the steps above, this is the smart contract below we will compile and deploy, it is called SimpleStorage.sol which has:

  • A variable storedData to store a number
  • A function get() to return the number stored at variable storedData
  • A function set() to change the number stored at variable storedData
// SPDX-License-Identifier: MITpragma solidity ^0.8.7;contract Contract {
uint public x;
constructor (uint _x)public{
x = _x;
}
function increment() external {
x++;
}
function add(uint one) external view returns(uint){
// return the state variable
return x + one;
}
}

Prepare the compiler settings in Remix

In Remix, ensure that the compiler setting used for the contract is same as the one in Remix. In this tutorial, we used version 0.8.7 of the Solidity compiler, solc.

You do this by clicking on the solidity icon by the left navigation in remix, and selecting the compiler version, this looks something like: 0.8.7+commit.e28d00a7 in the dropdown menu.

Note that the exact version of the compiler, plus the other details here are critical during verification. We’ll use this later.

Verifying the smart contract

Upon contract creation, you will receive an address to check a pending transaction. Visit the RSK Explorer and paste the transaction hash into the search field.

In this article, we’ll use the transaction hash: 0x843c7fc61ef2d678b36bb6662f610426a60ca484443231c3347c1896e03dfd49

To verify the smart contract, we need to locate the contract address, to do this, scroll down to find the contract address.

Click on this address to open up the contract details.

Click on Code

This shows the bytecode for the contract.

If another developer sees this, they are unlikely to be able to interact with your smart contract, as this is not human readable. Let’s improve this by performing verification.

Smart contract code is usually written in a high level programming language such as Solidity. This code gets compiled to something called the bytecode which gets deployed to the RSK blockchain. The nodes that comprise the RSK blockchain network execute this bytecode. What is actually stored on the blockchain is not the original code written in Solidity, but rather this compiler output.

Click on Verify Contract

Fill in the details below, enter contract name, upload the source file called SimpleStorage.sol.

Check that the compiler version matches the version selected in remix, as shown in the images below;

Fill in other info, such as constructor arguments, libraries, and EVM encoded arguments (if available).

Note that the SimpleStorage.sol smart contract does not have any constructor arguments, so this is left blank.

Click on Verify.

Contract successfully verified.

Once contract is successfully verified, click on “go to contract page”. You’ll notice a checkmark is now present beside Code which wasn’t there previously.

You can click on it to see more details of the contract.

You’ll also be able to see the compiler settings.

Congratulations, you have successfully verified a smart contract on the RSK Block Explorer. To see a live example check out the one used in this article: 0x111b836d63e507a45dee556b10aa17ef16d423ae.

--

--

--

Content Developer | Technical Writer | Editor| Blockchain Enthusiast | Ask me anything about Content Strategy, Technical Documentation and Developer Portals.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Mobile Project Progression Report: Level Design Part 1 Unity

Selenium 4 Chrome DevTools Examples

Different Types of SQL Joins: Concepts and Step-by-Step Thought Process

A Primer on Sizing Hardware FIFOs

Software Engineer, Get Ahead of The Game With Elasticsearch.

AMA with DigiByte Foundation Ambassador — Josiah Spackman — October 3rd

An Interesting Behaviour of Go’s Unmarshal

Cross Browser Testing Clarified

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Owanate Amachree

Owanate Amachree

Content Developer | Technical Writer | Editor| Blockchain Enthusiast | Ask me anything about Content Strategy, Technical Documentation and Developer Portals.

More from Medium

Let’s talk about Crypto, The difference between Ethereum and Solana.

Ethereum Hard Forks You Should Know About

How will MimbleWimble work on Litecoin?

Dolphinu ERC-20