Receive
You can receive coins for the web wallet by sending them to the address of the wallet. Before you send any coins to the wallet make sure you can close and reopen the wallet with the same receive address. Using the menu option Dump as Key File
and Restore from Key File
is a safe way to do this. Using the menu option to restore from seed words to reopen the wallet is riskier because entering a typo for the seed words or password will create an unexpected random address.
On the View Wallet Info page click on the blue address COPY
button and then paste this address as the receiving address in the sending wallet or account, and then send the coins. Wait a few minutes for the next block to be published and reload the web wallet to see the new balance. You can also click on the menu option View Wallet Txs
to see the receiving transaction:

Send
From your receiving wallet or account, copy the receiving address. On the web wallet menu, click Send
and paste the receiving address into the Address* field, then enter the amount to send in the Amount* field (if you are sending an amount less than 1.0, use a leading zero, like "0.5", not ".5"). You can leave the Fee field set at the default of 0.01 (or set a lower fee if you understand how to do this) and click the green CONFIRM
button:

The Please enter address again (Double check) page will be displayed. Copy and paste the receiving address into the Address field and click the blue CONFIRM
button:

The You are going to send page will be displayed, after verifying the information click the blue CONFIRM
button:

At the bottom of the screen you will see the green confirmation bar with a link to show the transaction in the Explorer:

The View Wallet Info page will display an Unconfirmed balance for the amount being sent (+ fee).
After the transaction is published in the next block you can reload the wallet to see the updated balance and also see the transaction using the menu option View Wallet Txs
.
Sending with Ledger
Sending when the wallet has been restored from Ledger has a few more steps.
From your receiving wallet or account, copy the receiving address. On the web wallet menu, click Send
and paste the receiving address into the Address* field, then enter the amount to send in the Amount* field. You can leave the Fee* field set at the default of 0.01 (or set a lower fee if you understand how to do this) and click the green CONFIRM
button:

The Please enter address again (Double check) page will be displayed. Copy and paste the receiving address into the Address field and click the blue CONFIRM
button:

You will see the You are going to send… Please confirm tx on your ledger… page:

Provided you have connected the Ledger hardware wallet, entered the PIN code an selected the xray App, on the Ledger display you will see scrolling details of the transaction so you can confirm the address and amount:

On the Ledger, press the right button above the check mark on the display to confirm output #1, which is the main transaction, in this case sending 2.0 xray. You will also need to press this button again to confirm output #2, which is sending the change back to your wallet, and press the button a third time to confirm the overall transaction:

Now on the web wallet, you will see the raw transaction on the You are going to send page. After verifying the information click the blue CONFIRM
button:

At the bottom of the screen you will see the green confirmation bar with a link to show the transaction in the Explorer:

The View Wallet Info page will display an Unconfirmed balance for the amount being sent (+ fee). After the transaction is published in the next block you can reload the wallet to see the updated balance and also see the transaction using the menu option View Wallet Txs
.
Safe Send
A basic xray transaction is composed of three steps:
- Compose the base transaction: from, to, amount, fee.
- Sign the transaction using the private key.
- Transmit the signed transaction to the network.
"Safe Send" isolates these steps between two computers/wallets, where step 2 is performed with an offline wallet whose private keys are never exposed to the internet. The web wallet "Safe Send" walks through these 3 steps to make a very safe transaction using the offline wallet.
Setup Offline Wallet
For a Safe Send, first set up the offline wallet by getting a copy of the web wallet and browser software. This example will use Google Chrome on Windows, and you can adjust to your preferred browser and operating system.
On the online computer, using the Chrome browser, go to https://xraywallet.org. In the browser upper right-hand corner select the three vertical dots for menu, select More tools
then Save page as…
to save the xray Web Wallet HTML file. This file contains all the JavaScript code to run the web wallet:
The Web Wallet HTML file
To make an offline copy of Chrome, navigate to find the Chrome install folder on your computer. For Windows it is typically in Program Files (x86) - Google:
Copy Chrome folder
Copy the Chrome folder and Web Wallet HTML file to a USB thumb drive and then copy these to the offline computer.
This gives a copy of the current Chrome and web wallet for the offline computer, and will not get any future version updates. You can do an update with these same steps, but it should not be necessary for these basic operations.
Launch the wallet in Offline Mode
On the offline computer, launch the Chrome browser: in the copied Chrome folder select User Data - Application - Chrome.exe:
(here in a folder called "Offline wallet")
Launch the offline web wallet
With the cursor in the Chrome URL address bar press Control - "O" (for Open) and then navigate to and Open the xray Web Wallet.html file:

Using the web wallet menu select Settings and in the Mode dropdown select Offline
and CONFIRM
:

Note the gold header for the wallet in offline mode. From this point, you can generate a new wallet and save (and backup) the key file. The menu will show Request Payment and the Request Payment page will show the receiving address for the offline wallet:

Copy the receiving address to a text file and copy to the USB thumb drive for transfer to the online computer. Now you can send xray to this address to fund the offline wallet.
This works to send xray to the offline wallet address because xray coins are actually stored as unspent transactions on the blockchain (no coins are ever stored in any wallet itself). However the offline wallet holds the private key for its address, and only the offline wallet can sign transactions to send xray from its address.
Now we can use the 3 transaction steps for a Safe Send.
- Compose the base raw transaction with the online wallet.
From the online wallet menu select Safe Send
and for step 1 fill in the addresses and amount. From Address* is the address of the offline wallet. The online wallet will query the blockchain for the "From Address" and select a previous transaction or transactions that hold sufficient xray for the amount being sent. Use 0.01 for the Fee unless you know how to choose lower fees.
After filling in all the fields, press CONFIRM
, reenter the To Address*, press CONFIRM
and CONFIRM
again to create the raw transaction file:
Step 1 - creating the raw transaction
The online wallet will create a raw transaction text file, for example:
{"from":"<xray address>","to":"<xray address>","amount":"5.0","fee":"0.01",
"utxo":[{"address":"<from xray address>","txid":"<transaction ID>","confirmations":4,
"isStake":false,"amount":10,"value":1000000000,"hash":"<hash checksum>","pos":0}]}
Here the online wallet has selected an appropriate unspent transaction owned by the "From Address" which holds 10.0 xray.
You must leave the online wallet running at the end of step 1 while completing step 2 with the offline computer, then return for step 3. Exiting the online wallet at this point and reloading for step 3 will cancel the sequence.
Copy the raw transaction file to the offline wallet computer. For the offline wallet launch Chrome and the wallet in offline mode as in "Launch the Offline Wallet" above. Use the menu option Restore from Key File
to load the previous address. The offline wallet will not know or display any balance.
- On the offline wallet menu select
Safe Send
and on the Safe Send page in step 1 press NEXT
to begin step 2.
In step 2 select UPLOAD
and open the raw transaction file copied from the online wallet. You will see the transaction fields as entered on the online computer. Select CONFIRM
, reenter the To Address* and CONFIRM
, and then CONFIRM
again to create the signed tx file:
Step 2 - sign the raw transaction file to create the tx (transmission) file
The offline wallet will generate a signed tx file, for example:
{"from":"<xray Address>","to":"<xray Address>","amount":"5.0",
"fee":"0.01","rawTx":"<raw hex transaction code>"}
Copy this file to a USB thumb drive and transfer to the online wallet computer.
Note that the offline wallet is completely disconnected from the internet, and can only sign the transaction using its private keys. The offline wallet cannot even show the balance for its address, but you can see the balance with the Explorer.
- Back on the online wallet (still on the Safe Send page) on step 2 select
NEXT
to advance to step 3.
On step 3 select UPLOAD
and open the signed tx file. You will see the transaction fields as entered in step 1. Press CONFIRM
, reenter the Send To* address and select CONFIRM
, and CONFIRM
again to send the transaction to the network:
Step 3 - send the tx file to the network to complete the transaction
At the bottom of the screen you will see the green confirmation bar, and after the transaction is published in the next block select the Explorer link to see the transaction on the blockchain.