How to Transfer ROSE into Emerald ParaTime
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.
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.
Click "Import" and select "Ethereum-compatible Private Key" to import your existing Ethereum Account address.
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.
Fill in the "Account name" that will appear later in the Account Management screen.
Next, paste your hex-encoded Ethereum private key.
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.
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.
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!
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.
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.
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.
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.
Brave wallet network configuration requires you to enter Chain's currency decimals for ROSE: 18)
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.
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.
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.
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.
📄️ Writing dApps on Emerald
How to write and deploy a dApp to Oasis Emerald