How to Transfer ROSE into a ParaTime
This guide will walk you through transferring ROSE tokens from an Oasis consensus layer account into a Sapphire, Emerald 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-3.
The deposit procedure will first allow the ParaTime to access a 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. Sapphire, Emerald
and Cipher will give you 1 ParaTime ROSE 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
Both the Oasis Wallet Browser Extension and the Oasis Wallet Web offer a 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 or you want to automate token operations.
Managing your account with the 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.
At time of writing, depositing and withdrawing ROSE to and from ParaTimes works for Oasis wallets imported from the private key or the mnemonic only. If you want to use the Ledger wallet, please use the Oasis CLI.
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 Sapphire or Emerald.
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 Sapphire ParaTime, but the Emerald or Cipher ParaTimes work just as well.
Under the Sapphire label click on the "To ParaTime" button.
Fill in the "Amount" of ROSE that you want to transfer to Sapphire and, in our case, your Ethereum-compatible address in the "To" field you imported/created before. Then, click "Next", review and confirm the transaction.
If everything goes well, you will see a successful ParaTime transaction in your account history.
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 Sapphire 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:
Install the Metamask extension to your browser.
Brave wallet network configuration requires you to enter Chain's currency decimals for ROSE: 18)
Import your Ethereum keypair. The balance should immediately be visible.
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 Sapphire, 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 ParaTimes stored in their
oasis1 accounts, for example to
claim their ParaTime execution rewards. Oasis Wallet Browser Extension does not
support such withdrawals. Use the
oasis account withdraw command which is
part of the Oasis CLI instead, for example:
oasis account withdraw 10
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 Sapphire 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.
In this tutorial, you will build and deploy a unique dApp that requires
📄️ Writing dApps on Emerald
This tutorial will show you how to set up dApp development environment for
Using CLI for performing account-related tasks