How to Transfer ROSE into a ParaTime
This guide will walk you through transferring ROSE tokens from an Oasis consensus layer account into an Emerald, Sapphire or Cipher ParaTime using the Oasis Wallet - Browser Extension.
Each ParaTime hosts accounts in its own independent chain state, which means that ROSE held at the consensus layer is not the same as the ParaTime's token. Fortunately, you can easily swap between the two by making deposits and withdrawals. These procedures are formally described in ADR 0003.
The deposit procedure will approve the ParaTime access to the specified
amount of ROSE. Then, a
Deposit transaction will be executed inside the
ParaTime and tokens will be transferred from your consensus layer account to
the ParaTime. If that transaction succeeds, the ParaTime will update the state
of your provided EVM account to reflect the deposit of tokens. Emerald,
Sapphire and Cipher will give you 1 e/s/cROSE for each consensus ROSE, although
other ParaTimes may implement different rules.
The withdraw procedure executes the
Withdraw transaction inside the
ParaTime which transfers the ROSE on the consensus layer from the ParaTime to
oasis1 address. If the transaction succeeds, the ParaTime will
update your EVM account state (usually by burning the tokens inside the
Currently, the Oasis Wallet Browser Extension is the only graphical user interface for performing deposits/withdrawals to/from ParaTimes. Alternatively, you can use the Oasis CLI, if you are more keen to using a command line interface.
Managing your account with Oasis Wallet Browser Extension
First, install the Oasis Wallet Browser extension. Next, restore your existing Oasis wallet or create a new by following the Oasis Wallet Browser Extension chapter.
Once done, you will see your balance on the Oasis consensus layer. Next, we will import your wallet to be used in the ParaTime.
Importing wallet account
In the top-right corner, click your account icon to open the Account management menu.
Click "Import" and select the:
- "Oasis Private Key" to import your existing Oasis private key to be used by Cipher ParaTime; or
- "Ethereum-compatible Private Key" to import your existing Ethereum Account to be used by the EVM-compatible Emerald or Sapphire.
We assume that you already have your public/private 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 Base64-encoded Oasis or 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 account will, depending on the account type, appear under the "Oasis Account" or "Ethereum-compatible Account" sections in the Account Management screen. Check that the Oasis or Ethereum address shown at the bottom that it matches the address shown to you when you generated the keypair.
In older versions of the Oasis Wallet Browser Extension there was also another bech32-encoded version of the Ethereum address shown in the Ethereum-compatible wallet. This address is used in the backend for setting the allowance policy on the Oasis network. If you can see it, 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 a ParaTime
Now, you can transfer your ROSE to the ParaTime. Navigate to the "ParaTimes" tab. For the sake of demonstration, we'll continue with the Emerald ParaTime, but the Sapphire or Cipher ParaTimes work just as well.
Under Emerald click on the "To ParaTime" button.
Fill in the "Amount" of ROSE that you want to transfer to Emerald and, in our case, 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 ParaTime
If everything went well, your entered amount of ROSE was sent to the destination address on ParTime. In our case, let's verify that your ROSE safely arrived at 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 destination account to which you sent ROSE. Then click on the back arrow and navigate to the "ParaTimes" tab. In the corresponding ParaTime pane, you will notice the available amount of your ROSE.
For EVM-compatible ParaTimes, you can as well verify the balance in Metamask (or a built-in wallet in the Brave browser). First, install the extension in your favorite browser and add the Emerald Mainnet/Testnet by pointing your wallet at the Web3 gateway with parameters listed here (Sapphire parameters can be found here). 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 a ParaTime
You can withdraw your ROSE from the ParaTime back to your Oasis wallet by first selecting your ParaTime account in the Account Management screen. Next, switch to ParaTimes tab and click on the "To Consensus" button near the ParaTime 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 ParaTime
compute nodes) may need to
withdraw ROSE from EVM-compatible ParaTimes stored in their
for example to claim their ParaTime execution rewards. 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 ParaTime deposits and withdrawals
To verify and validate your transactions (deposits, withdrawals) on ParaTime
you can use the official Oasis Scan block
explorer. Enter your consensus bech32-encoded 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 both the native or Ethereum
compatible address (
0x) you used in Emerald to your consensus (
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 native or Ethereum-compatible address, your to destination consensus address, and amount of ROSE transferred.
📄️ Writing dApps on Emerald
This tutorial will show you how to set up dApp development environment for
In this tutorial, you'll port an Eth project in under 10 minutes, and then go on
Using CLI for performing account-related tasks