Skip to main content

How to Transfer ROSE into Emerald ParaTime

About

Emerald is an EVM-compatible blockchain running inside the Oasis ParaTime. Because the balance of your ROSE wallet is stored on the consensus layer - outside of ParaTime's reach - there are special mechanisms for Emerald to access your tokens (formally defined in ADR 0003).

The Deposit procedure will first create the allowance policy for the provided ParaTime (in our case Emerald) to access a specific amount of your ROSE. Then, the Deposit transaction will be executed inside the ParaTime and tokens will be implicitly transferred on the consensus layer from your account to the ParaTime. Finally, if that transaction succeeds, Emerald will mint the same amount of ROSE on its blockchain and fill the provided Ethereum-compatible account address.

The Withdrawal procedure executes the Withdraw transaction inside the ParaTime which locks your ROSE and implicitly transfers the same amount of ROSE on the consensus layer from the ParaTime to the provided Oasis address. If the transaction succeeds, Emerald will then burn the locked tokens inside the ParaTime.

Currently, only the Oasis Wallet Browser Extension supports a graphical user interface to perform deposits and withdrawals to and from ParaTimes.

Managing your Emerald account with Oasis Wallet Browser Extension

Firstly, install the Oasis Wallet Browser extension, restore your existing or create a new Oasis wallet as described in the Oasis Wallet Browser Extension chapter.

Oasis Wallet Extension - chrome web store

Once done, you will see your balance on the Oasis consensus layer. Next, we will import your Ethereum wallet to be used in Emerald.

Importing Ethereum wallet account

In the top-right corner, click your account icon to open the Account management menu.

Account Management - Importing Accounts

Click "Import" and select "Ethereum-compatible Private Key" to import your existing Ethereum Account address.

info

We assume that you already have your Ethereum keypair. If you don’t have one yet, please go and create one. Store your Private Key, because you will need it in the Oasis Wallet Browser Extension.

Importing Ethereum-compatible Account with Private Key

Fill in the "Account name" that will appear later in the Account Management screen.

Imported Account Name

Next, paste your hex-encoded Ethereum private key.

caution

You will need to import the private key and not the mnemonics. You can derive a private key from the mnemonics with BIP39->BIP44 converter. For example by using the Ian Cole's tool offline.

Entering Ethereum address Private Key (BIP44)

Your newly imported Ethereum account will appear under the "Ethereum-compatible Account" section in the Account Management screen. Check that the Ethereum address shown at the bottom matches the address that was shown to you when you generated the Ethereum key.

danger

In older versions of the Oasis Wallet Browser Extension there was also a bech32-encoded version of the Ethereum address shown in the Ethereum-compatible wallet. This address is only used internally for setting the allowance policy on the Oasis network. If you encounter this, you should immediately update your Wallet Extension! The bech32-encoded address of the Ethereum-compatible account must never be used for transferring ROSE to. The signature schemes are incompatible (ECDSA versus ed25519) and those tokens would not be accessible anymore!

Account Management - Accounts Overview

Depositing ROSE To Emerald ParaTime

Now, you can transfer your ROSE to Emerald ParaTime. Navigate to the "ParaTimes" tab. Notice two ParaTimes: Emerald and Cipher with the corresponding ParaTime IDs. Under Emerald click on the "To ParaTime" button.

ParaTimes - Transfer ROSE To Emerald

Fill in the the "Amount" of ROSE that you want to transfer to Emerald ParaTime and your Ethereum-compatible address in the "To" field you imported/created before. Then, click "Next", review and confirm the transaction.

Sending ROSE to Emerald

info

At the time of writing, depositing and withdrawing ROSE to and from ParaTimes works for Oasis wallets imported from the private key or the mnemonic only. Support for the Ledger hardware wallet is not implemented yet.

Verifying ROSE balance on Emerald ParaTime

If everything went well, your entered amount of ROSE was sent to the Ethereum-compatible address in Emerald. Let's verify that your ROSE safely arrived on your Emerald Ethereum wallet.

Wallet Browser Extension

You can check the balance in the Oasis Wallet extension by opening the "Account Management" tab and selecting your Ethereum-compatible account which you used to send ROSE to. Then click on the back arrow and navigate to the "ParaTimes" tab. Under Emerald you will notice the available amount of your ROSE.

ROSE balance in Emerald

Metamask

You can verify your balance in Metamask (or a built-in wallet in the Brave browser). First, install the extension in your favorite browser and add the Emerald Network (refer to the Web3 gateway parameters here for either Emerald Mainnet or Testnet). Then, import your Ethereum keypair and your balance should immediately be visible.

info

Brave wallet network configuration requires you to enter Chain's currency decimals for ROSE: 18)

Metamask - Adding Emerald Mainnet Network Configuration

Brave Wallet - Received ROSE

Withdrawing ROSE from Emerald ParaTime

You can withdraw your ROSE from Emerald back to your Oasis wallet by first selecting your Ethereum-compatible account in the Account Management screen. Next, switch to ParaTimes tab and click on the "To Consensus" button near the Emerald entry. Fill in the "Amount" and your bech32-encoded Oasis wallet address and confirm the withdrawal. In a few moments you will have your ROSE accessible on the consensus layer.

danger

If you want to transfer ROSE to an exchange and you currently have them deposited on Emerald ParaTime, we strongly recommend that you withdraw ROSE to your Oasis wallet first and then perform a regular token transfer to your Oasis address on the exchange! The ParaTime's withdrawal procedure involves a number of steps as described in the introduction and some exchanges may not recognize this transaction as a valid transaction for funding your account on the exchange.

info

Advanced users (e.g. those running Emerald ParaTime compute nodes) may need to withdraw ROSE stored in their oasis1 Emerald account. Oasis Wallet Browser Extension does not support such withdrawals. Read the Oasis CLI Deposit/Withdraw Tokens to/from ParaTime chapter to learn how to use Oasis CLI instead.

Verifying Emerald ParaTime deposits and withdrawals

To verify and validate your transactions (deposits, withdrawals) on Emerald you can use our official Oasis Scan block explorer. Enter your oasis1 address and press Search. Then navigate to Transactions section and press "ParaTime" button next to Consensus. You will be able to see all transactions made from Ethereum compatible address (0x) you used in Emerald to your Consensus (oasis1) address where you sent your ROSE to.

Search result of oasis1 address - Account details

Furthermore, you can click on Tx Hash of any transaction you see on the list. You will find your from Ethereum-compatible address, your to destination Consensus address, and amount of ROSE transferred.

Tx Hash - Transaction details

info

Be aware that the Oasis Scan Blockchain Explorer is built for Consensus layer. If you want to explore Emerald ParaTime (0x addresses, Token Transfers, Contract Calls, etc.), you have to use Emerald Blockchain Explorer.

See also

📄️ Writing dApps on Emerald

How to write and deploy a dApp to Oasis Emerald