ShapeShift Integration

From Nxtwiki
Jump to: navigation, search


The purpose of this feature is to support exchanging NXT to/from other crypto-currencies directly from inside the client wallet. In addition it provides a way to quickly fund a new account using Bitcoin and thereby secure it with a public key.

Warning: this feature relies on a 3rd party exchange service any exchange performed using the exchange page will expose the IP address and NXT address of your client to ShapeShift. However, your account passphrase is never sent to ShapeShift.

Terminology: the term "coin" in this document refers to any crypto-currency available for exchange with NXT.

Funding a new account

When logging in using a passphrase to a new account which does not have a public key yet, under the welcome message, there is now an "Exchange Bitcoin to NXT" link. Clicking the link loads the "Exchange BTC to NXT" modal which specifies a Bitcoin deposit address. Deposit your Bitcoin to this address to automatically convert your Bitcoin to NXT and deposit it into your new account thereby also protecting your new account with a public key. It may take several minutes until your NXT are visible in your wallet, this depends on the timing of the next Bitcoin block and next NXT block and the exchanged amount. However, you should be able to track your transaction status immediately in the "My Exchanges" table of the "Coin Exchange" page.

Exchanging NXT

In the upper toolbar of the client dashboard, click the exchange icon to open the "Coin Exchange" page.

This page is composed of the following sections:

Header - specifies the exchange service status and the amount of NXT available for exchange with other coins. In case the exchange status is not "ok" do not use this service.

Coins selector - these 3 comboboxes allow you to select the coins you would like to exchange with NXT out of the list of all coins supported by ShapeShift. Changing the selection automatically reloads the data in the exchange tables below it. The selected coins triplet is saved in the client settings for later use.

"Exchange NXT to Coin" and "Exchange Coin to NXT" tables - list the exchange rates between NXT and the selected coins and provide links to the two possible exchange methods "Shift" and "Send Amount" explained below.

"My Exchanges" table - lists the actual exchange operations performed by the account and their status, this information is saved in the browser local storage.

"Latest NXT Exchanges" table - lists the most recent NXT exchanges as recorded by ShapeShift, these exchanges were not necessarily created by this account.

Information in the "Coin Exchange" page is refreshed with every new block as long as the page remains in focus. Otherwise it's updated when the page is reloaded.

Exchange Methods

There are two exchange methods provided by shapeshift: Shift and SendAmount

Shift - the user specifies the withdrawal address and sends the amount of the deposited coin to a deposit address provided by ShapeShift. Use this method when you like your exchange to execute quickly for small amounts since in most cases the Shift reply does not wait any Bitcoin confirmations.

SendAmount - requests a fixed amount of the withdrawal currency to be sent to the withdrawal address. The user provides a withdrawal address and the amount to withdraw in the withdrawal coin. ShapeShift returns the amount to deposit in the deposit coin and the address to deposit to.

For NXT_BTC and BTC_NXT pairs the exchange rate provided by SendAmount requests is usually better compared to the exchange rate provided by Shift requests since knowing the withdrawal amount allows ShapeShift to know in advance the depth to use in their order book. Therefore for NXT/Bitcoin exchanges of significant amount, always prefer using SendAmount over Shift. The rate difference between the two methods is displayed in the "Difference" column of the exchange pairs tables.

Exchange related settings

The client settings now includes the following exchange related settings

"EXCHANGE URL" - specifies the address of the ShapeShift exchange. Do not change it unless you have a specific reason.

"EXCHANGE API PUBLIC KEY" - each Shift or SendAmount operation specifies an apiKey parameter which can be used to later track the status of the exchange transaction. The client default API key is the NXT developers API key. Using it allows the NXT developers to easily identify your transaction and assist you in case you run into problems. However, if you like to specify your own key you should be able to generate a private/public affiliate key pair on the ShapeShift web site, then update the public key setting in this field.