GET/infopublic
Returns an object containing feature description and context information about the SEP-6 transfer server. Conforms to the official Stellar SEP-6 definitions described here.
GET
/info
GET
/deposit
GET
/withdraw
GET
/transaction
GET
/transactions
This SEP-6 transfer service enables you to tokenize (deposit) and detokenize (withdraw) Bitcoin and Litecoin on the Stellar Network. Access it programmatically or make deposits and withdrawals using our web interface.
Assets on the Stellar Network are digital (tokenized) representations of anything of value.
COINQVEST issues assets for Bitcoin and Litecoin as listed below. Show more.
COINQVEST's SEP-6 transfer server is transparent and all transactions are auditable. We publish circulating supply, hot wallet addresses, cold wallet addresses, accounts, blockchain transaction ids, and balances so you can always have peace of mind about the whereabouts of the underlying assets. Custodial funds never leave our hot or cold wallets for any purpose other than SEP-6 transfers.
Stellar SEP-6 defines a standard way for wallets, exchanges, end-users, or any type of Stellar application to programmatically interact with asset issuers (a.k.a. anchors, bridges, or ramps). The developer documentation for COINQVEST's SEP-6 implementation is located here.
COINQVEST's assets are built into the COINQVEST payment processing platform and provide an organic way to drive traffic to liquidity pools and generate conversion fees and create arbitrage opportunities. Read our liquidity pool documentation or contact us to get started.
In order to interact with the SEP-6 transfer server you will need a funded Stellar account with established trustlines to the asset you want to operate with. This SEP-6 implementation is permission-less and you do not need authentication (or a COINQVEST account) to use it.
Assets are digital (tokenized) representations of anything of value on the Stellar Network. They are typically backed by fiat or cryptocurrencies. COINQVEST issues assets for Bitcoin and Litecoin as listed below. Please note that COINQVEST's only official and valid issuer domain is coinqvest.com
.
BTC:GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT
Deposit Info | Withdrawal Info |
Min Amount: 0.0005 BTC Max Amount: 100 BTC Fee Fixed: 0 BTC Fee Percent: 0 % |
Min Amount: 0.0005 BTC Max Amount: 100 BTC Fee Fixed: 0 BTC Fee Percent: 0 % |
When using a SEP-6 asset, you are trusting the service provider (e.g. COINQVEST) to store your deposit and to honor your withdrawals. This idea of trust is made explicit on Stellar through trustlines. Trustlines are added to your Stellar account and let you hold a token as well as specify the amount of that token you’re willing to hold. Trustlines also keep you from receiving unwanted assets.
In order to trade, receive, or hold any asset on the Stellar network you must first establish a trustline with the issuing account. An issuing account is the service provider's Stellar account that created the asset. Trustlines are set using the change trust operation and cost a base reserve fee of 0.5 XLM each. What this means is that for each trustline you set, your account will be required to maintain 0.5 XLM in reserve that can’t be spent until you close your trustlines. *
You need the asset code, issuer account, and (in some cases) the issuer domain as indicated below in order to add trustlines.
BTC:GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT
Some Stellar wallets and exchanges have built-in UIs that allow you to add and remove trustlines to arbitrary assets. Popular wallets and exchanges on Stellar include Freighter, Albedo, xBull, StellarX, Rabet, Lumenswap, Scopuly, LOBSTR, and StellarTerm. You could also use the Stellar Laboratory in order to craft your own change trust operations securely.
Please note that we don't endorse any third party services and recommend to work programmatically (see below) or via the Stellar Laboratory.
In order to add a trustline programmatically, you will need one of the Stellar SDKs, a funded Stellar account and its secret key, and a few lines of code to invoke the change trust operation. Below is an example in JavaScript. It adds a trustline to COINQVEST's Bitcoin and Litecoin assets on Stellar. If you ever want to delete a trustline again, simply set the trustline limit parameter in your operation to 0 after removing all asset balances (if any).
const sdk = require('stellar-sdk');
const server = new sdk.Server('https://horizon.stellar.org');
// COINQVEST's Assets
const BtcAsset = new sdk.Asset('BTC', 'GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT');
const LtcAsset = new sdk.Asset('LTC', 'GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT');
(async function main() {
const keyPair = sdk.Keypair.fromSecret(process.env.secretKey);
const account = await server.loadAccount(keyPair.publicKey());
const fee = await server.fetchBaseFee();
const transaction = new sdk.TransactionBuilder(account, {
fee, networkPassphrase: sdk.Networks.PUBLIC
})
.addOperation(
sdk.Operation.changeTrust({
source: keyPair.publicKey(),
asset: BtcAsset,
amount: "922337203685.4775807"
})
)
.addOperation(
sdk.Operation.changeTrust({
source: keyPair.publicKey(),
asset: LtcAsset,
amount: "922337203685.4775807"
})
)
.setTimeout(30)
.build();
// sign the transaction
transaction.sign(keyPair);
try {
const transactionResult = await server.submitTransaction(transaction);
console.log(transactionResult);
} catch (e) {
console.error(e.message);
}
})()
A healthy liquidity on the Stellar Decentralized Exchange is challenging but vital to the success of COINQVEST as a platform and its as assets within the wider Stellar ecosystem. A significant TVL (total value locked) on the COINQVEST liquidity pools is the backbone for providing payment processing services, asset exchange, and settlement of funds for our merchants and clients in particular and other participants on the Stellar Network in general. We are providing liquidity within our abilities but hope for your participation and support.
COINQVEST's main liquidity pools are XLM/BTC
and BTC/LTC
. These pools are most likely to be triggered when an asset exchange takes place. We picked these pairs for two reasons. First, they exist as trading pairs on major centralized exchanges, which makes them easy to map for arbitrageurs. Second, having these two pairs ensures that BTC and LTC can always find payment paths via XLM to other relevant assets on the network.
84cf93f8d1c22e150b8f0022b3c9a39d03976da6b5143818327bf298358ce5e7
It is useful to understand that checkouts, deposits, swaps, and withdrawals on the COINQVEST platform consume liquidity on the above pools whenever an asset exchange is processed. Usually the exchange is from Bitcoin or Litecoin into a fiat stablecoin (such as USDC). This means that the COINQVEST platform continuously produces traffic in one direction of the pool and opens up arbitrage opportunities. There is also public trading activity on the Stellar Network consuming liquidity in general and that also produces volume. If you are a market maker or arbitrageur please read on and we would love to hear from you.
Before going any further we recommend to read up about the concepts of liquidity pools and to educate yourself about the risks of impermanent loss. Some good resources include: Liquidity, Liquidity, Liquidity, Introducing Automated Market Makers on Stellar, and AMMs in the Stellar Ecosystem.
Participation in liquidity pools is permissionless. You need to establish trustlines to both the assets and the corresponding liquidity pools to deposit and withdraw into pools. There are some Stellar wallets like xBull, Lumenswap, LOBSTR, and StellarX that provide interfaces to deposit into and withdraw from liquidity pools. We do not actually endorse any third-party services however and recommend to interact with pools programmatically or using the Stellar Laboratory. This way you have full control over keys, security, automation, and customization.
Our friends over at the Stellar Development Foundation did a tremendous job in documenting programmatic liquidity pool participation and we recommend following this guide to get started. It contains examples for liquidity pool creation, deposits, withdrawals, and liquidity pool monitoring.
Tokenizes and deposits Bitcoin or Litecoin onto the Stellar Network.
Detokenizes Bitcoin or Litecoin assets on Stellar and redeems them to their native blockchain.
Queries the SEP-6 transfer status for a given transfer request or blockchain transaction id.
COINQVEST's SEP-6 Transfer API enables you to tokenize (deposit) and detokenize (withdraw) Bitcoin and Litecoin on the Stellar Network. This documentation walks you through the required steps to do so.
Stellar SEP-6 defines a standard way for wallets, exchanges, end-users, or any type of Stellar application to programmatically interact with asset issuers (a.k.a. anchors, bridges, or ramps) like COINQVEST. Its documentation is located here and can be considered a good starting point to understand its overall concepts but it can get overwhelming and all you really need to get started is compiled below for your convenience.
The COINQVEST SEP-6 transfer server lives at sep6.coinqvest.com
and you can communicate with it by sending simple HTTP GET requests and reading responses. In order to interact with it you need a REST client in your favorite programming language (we published one for PHP, NodeJS, and Ruby) or a tool like cURL or wget. Since all SEP-6 endpoints are accessed via HTTP Get you could technically even just use a browser window if you want. COINQVEST's home domain is coinqvest.com
and you can inspect our stellar.toml file here.
In order to interact with the SEP-6 transfer server you will need a funded Stellar account with established trustlines to the asset you want to operate with. This SEP-6 implementation is permission-less and you do not need authentication (or a COINQVEST account) to use it.
The transfer server exposes five endpoints that are all accessible via HTTP GET. All endpoints conform to the official SEP-6 definitions documented here.
info
Returns an object containing feature description and context information about the SEP-6 transfer server.deposit
Returns an object with deposit information containing all the information needed to make payment and receive tokenized assets on Stellar. withdraw
Returns an object with withdrawal information containing all the information needed to redeem assets onto the underlying blockchain. transaction
Returns an object with transaction information regarding a SEP-6 deposit or withdrawal. transactions
Returns a list of transactions related to the SEP-6 transfer server.
const Sep6Client = require('sep6-client');
const client = new Sep6Client('sep6.coinqvest.com');
let response = await client.get('/deposit', {
'asset_code': 'BTC',
'account': 'GDONUHZKLSYLDOZWR2TDW25GFXOBWCCKTPK34DLUVSOMFHLGURX6FNU6',
'memo': 'Sent via SEP-6',
'memo_type': 'text'
});
// console.log(response.data) -> {"how":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23","id":"f2118ef4115642870638616a4372","eta":600,"min_amount":"0.00001","max_amount":"100.0000000","extra_info":{}}
Returns a Bitcoin deposit address alongside some additional context information documented here. Bitcoin sent to the received deposit address is tokenized onto Stellar and sent to above account. The tokenized Bitcoin can be sent and received on the Stellar Network, exchanged for other assets on the SDEX, or be deposited into Stellar's liquidity pools.
const Sep6Client = require('sep6-client');
const client = new Sep6Client('sep6.coinqvest.com');
let response = await client.get('/withdraw', {
'asset_code': 'BTC',
'dest': 'bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23'
});
// console.log(response.data) -> {"account_id":"GCQVESTEG3MY2AA4LFF2J5K77IQP4G5WZCUDOJ5RUIPA6ZKRGQ7XXKBR","memo_type":"text","memo":"010cdf0a41410d75b2797a6fa38f","id":"010cdf0a41410d75b2797a6fa38f","min_amount":"0.0005000","max_amount":"100.0000000","fee_fixed":0.0002,"fee_percent":0.2,"extra_info":{"message":"An amount above 100.0000000 will take longer to complete"}}
Returns a Stellar account and memo alongside some additional context information documented here. Tokenized Bitcoin sent to the given account is burned on the Stellar Network and released into the Bitcoin address given in the request.
The SEP-6 transfer server works with any REST client in any programming language and we've published SDKs for PHP, Ruby, and NodeJS on our GitHub to help you get started quickly.
Returns an object containing feature description and context information about the SEP-6 transfer server. Conforms to the official Stellar SEP-6 definitions described here.
curl 'https://sep6.coinqvest.com/info'
{ "deposit":{ "BTC":{ "enabled":true, "min_amount":0.0001, "max_amount":100, "fee_fixed":0, "fee_percent":0, "authentication_required":false }, "LTC":{ "enabled":true, "min_amount":0.00001, "max_amount":10000, "fee_fixed":0, "fee_percent":0, "authentication_required":false } }, "withdraw":{ "BTC":{ "enabled":true, "min_amount":0.0005, "max_amount":100, "fee_fixed":0.0002, "fee_percent":0.2, "authentication_required":false, "types":{ "crypto":{ "fields":{ "dest":{ "description":"The Bitcoin target address in any format, i.e. native SegWit (bech32), SegWit (P2SH), or legacy (P2PKH).", "optional":false } } } } }, "LTC":{ "enabled":true, "min_amount":0.0005, "max_amount":10000, "fee_fixed":0.0002, "fee_percent":0.2, "authentication_required":false, "types":{ "crypto":{ "fields":{ "dest":{ "description":"The Litecoin target address in any format, i.e. native SegWit (bech32), SegWit (P2SH), or legacy (P2PKH).", "optional":false } } } } } }, "transaction":{ "enabled":true, "authentication_required":false }, "transactions":{ "enabled":true, "authentication_required":false }, "features":{ "account_creation":false, "claimable_balances":false }, "fee":{ "enabled":false }, "deposit-exchange":{ "enabled":false }, "withdraw-exchange":{ "enabled":false }, "supply":{ "BTC":{ "circulating_supply":5.671082, "circulating_supply_components":{ "amount":1.0399347, "claimable_balances_amount":0, "liquidity_pools_amount":4.6311473 }, "hotwallet_reserves":1.6826130, "coldwallet_reserves":4.0000000, "total_reserves":5.6826130 }, "LTC":{ "circulating_supply":318.5104129, "circulating_supply_components":{ "amount":136.3382091, "claimable_balances_amount":0, "liquidity_pools_amount":182.1722038 }, "hotwallet_reserves":118.6363572, "coldwallet_reserves":200.0000000, "total_reserves":318.6363572 } } }
Name | Type | Description | Nullable |
---|---|---|---|
deposit |
object | An object containing an associative list of assets available for deposit and additional context information about the assets. Each asset is identified by its key, which is the asset code. | false |
.ASSET_CODE |
object | An object containing context information about the asset identified in the deposit object's key attribute. | false |
.enabled |
boolean | Indicates whether deposit transactions are enabled. If set to false then this is the only attribute of the object. |
false |
.min_amount |
float | Indicates the minimum deposit amount on the /deposit endpoint. |
false |
.max_amount |
float | Indicates the maximum deposit amount on the /deposit endpoint. |
false |
.fee_fixed |
float | Indicates the fixed fee on the /deposit endpoint. In units of the deposited asset. |
false |
.fee_percent |
float | Indicates the percentage fee on the /deposit endpoint. In units of percentage points. |
false |
.authentication_required |
boolean | Indicates whether authentication for this asset is required on the /deposit endpoint. If set to true then requests must be authenticated via SEP-10. |
false |
withdraw |
object | An object containing an associative list of assets available for withdrawal and additional context information about the assets. Each asset is identified by its key, which is the asset code. | false |
.ASSET_CODE |
object | An object containing context information about the asset identified in the withdraw object's key attribute. | false |
.enabled |
boolean | Indicates whether withdrawal transactions are enabled. If set to false then this is the only attribute of the object. |
false |
.min_amount |
float | Indicates the minimum withdrawal amount on the /withdraw endpoint. |
false |
.max_amount |
float | Indicates the maximum withdrawal amount on the /withdraw endpoint. |
false |
.fee_fixed |
float | Indicates the fixed fee on the /withdraw endpoint. In units of the deposited asset. |
false |
.fee_percent |
float | Indicates the percentage fee on the /withdraw endpoint. In units of percentage points. |
false |
.authentication_required |
boolean | Indicates whether authentication for this asset is required on the /withdraw endpoint. If set to true then requests must be authenticated via SEP-10. |
false |
.types |
object | An object containing instructions for `dest` parameter on the /withdraw endpoint. |
false |
transaction |
object | An object containing information about the /transaction endpoint. |
false |
.enabled |
boolean | Indicates whether the /transaction is enabled. If set to false then this is the only attribute of the object. |
false |
.authentication_required |
boolean | Indicates whether the /transaction requires authentication. If set to true then requests must be authenticated via SEP-10. |
false |
transactions |
object | An object containing information about the /transactions endpoint. |
false |
.enabled |
boolean | Indicates whether the /transactions is enabled. If set to false then this is the only attribute of the object. |
false |
.authentication_required |
boolean | Indicates whether the /transactions requires authentication. If set to true then requests must be authenticated via SEP-10. |
false |
features |
object | An object containing information about possible additional features provided by the SEP-6 server. | false |
.account_creation |
boolean | Indicates whether or not the SEP-6 transfer server supports creating accounts for users requesting deposits (COINQVEST does not). | false |
.claimable_balances |
boolean | Indicates whether or not the SEP-6 transfer server supports sending deposits as claimable balances to accounts that do not have a trustline established (COINQVEST does not, a trustline is required prior to receiving a deposit address). | false |
fee |
object | An object containing information about the optional SEP-6 /fee endpoint. | false |
.enabled |
boolean | Indicates whether the /fee endpoint is enabled (in COINQVEST SEP-6 it is not because we use the fee_fixed and fee_percent above in lieu of a dedicated fee endpoint). If set to false then this is the only attribute of the object. |
false |
.authentication_required |
boolean | Indicates whether the /fee requires authentication. If set to true then requests must be authenticated via SEP-10. |
false |
deposit-exchange |
object | An object containing information about the optional SEP-6 /deposit-exchange endpoint. | false |
.enabled |
boolean | Indicates whether the /deposit-exchange endpoint is enabled (in COINQVEST SEP-6 it is not). If set to false then this is the only attribute of the object. |
false |
.authentication_required |
boolean | Indicates whether the /deposit-exchange requires authentication. If set to true then requests must be authenticated via SEP-10. |
false |
withdraw-exchange |
object | An object containing information about the optional SEP-6 /withdraw-exchange endpoint. | false |
.enabled |
boolean | Indicates whether the /withdraw-exchange endpoint is enabled (in COINQVEST SEP-6 it is not). If set to false then this is the only attribute of the object. |
false |
.authentication_required |
boolean | Indicates whether the /withdraw-exchange requires authentication. If set to true then requests must be authenticated via SEP-10. |
false |
supply |
object | An object containing circulating supplies, hot wallet, and cold wallet reserves for above-mentioned assets. Cached five minutes. | false |
{ "status":"400", "error":"invalid request (and more information explaining the error"" }
Name | Type | Description | Nullable |
---|---|---|---|
status |
string | The issued HTTP status code. | false |
error |
string | A human readable string explaining the error. | false |
Returns an object with deposit information containing all the information needed to make payment and receive tokenized assets on Stellar. Conforms to the official Stellar SEP-6 definitions described here.
curl 'https://sep6.coinqvest.com/deposit?asset_code=BTC&account=GDONUHZKLSYLDOZWR2TDW25GFXOBWCCKTPK34DLUVSOMFHLGURX6FNU6'
Key | Type | Description | Nullable | Mandatory |
---|---|---|---|---|
asset_code |
string | The asset code of the asset you wish to deposit. | false | mandatory |
account |
string | The Stellar account to which you wish to deposit. As a prerequisite for receiving tokenized funds the account must have a trustline for the desired asset. | false | mandatory |
type |
string | Requests a specific Bitcoin or Litecoin address type. Allowed types are p2sh-segwit , bech32 , legacy . Defaults to bech32 . |
false | optional |
memo |
string | An optional memo to be sent to the above Stellar account. If a memo is given its type must also be specified in memo_type . |
false | optional |
memo_type |
string | A string specifying the given memo type. Valid options are text , id , and hash . |
false | optional |
email_address |
string | Reserved for future use. An optional email address for receiving email updates related to this deposit transfer. | false | optional |
on_change_callback |
string | An optional URL listening for status updates related to this deposit transfer. The callback sends an HTTP POST request with a JSON object conforming to the one described in /transaction .Your server should respond with a 200 OK HTTP status code upon to acknowledge the callback. If we don't see a 200 OK response we will keep re-sending the callback for a while until we encounter one and eventually give up (after 48 hours or so). Callbacks are signed via an HTTP header, as documented here. |
false | optional |
{ "how":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23", "id":"085a2e4aca82edd52d12b37388da", "eta":600, "min_amount":"0.0001000", "max_amount":"100.0000000", "fee_fixed":"0.0000000", "fee_fixed":"0.0000000", "extra_info":{} }
Name | Type | Description | Nullable |
---|---|---|---|
how |
string | The blockchain address to which the deposit should be sent. | false |
id |
string | A unique identifier given by COINQVEST. Save this client-side to reference and query this deposit and related blockchain transactions using the /transaction endpoint. |
false |
eta |
integer | An estimated time of fund transfer in seconds. The actual time can vary depending on underlying blockchain speed and used fees. | false |
min_amount |
string | The minimum deposit amount for the fund transfer to trigger. Deposits below the minimum threshold stay pending until the sum of all made deposits matches or exceeds this amount. | false |
max_amount |
string | The maximum deposit amount. | false |
fee_fixed |
string | Indicates the fixed fee for this deposit. In units of the deposited asset. | false |
fee_percent |
string | Indicates the percentage fee for this deposit. In units of percentage points. | false |
extra_info |
object | An object optionally containing exactly one field message containing a human readable text string with additional information. |
false |
{ "status":"400", "error":"Account does not have a trustline for BTC-GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT." }
Name | Type | Description | Nullable |
---|---|---|---|
status |
string | The issued HTTP status code. | false |
error |
string | A human readable string explaining the error. | false |
Returns an object with withdrawal information containing all the information needed to redeem assets onto the underlying blockchain. Conforms to the official Stellar SEP-6 definitions described here.
curl 'https://sep6.coinqvest.com/withdraw?asset_code=BTC&dest=bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23'
Key | Type | Description | Nullable | Mandatory |
---|---|---|---|---|
asset_code |
string | The asset code of the asset you wish to redeem. | false | mandatory |
dest |
string | The Bitcoin (or Litecoin) target address in any format, i.e. native SegWit (bech32), SegWit (P2SH), or legacy (P2PKH). | false | mandatory |
email_address |
string | Reserved for future use. An optional email address for receiving email updates related to this withdrawal transfer. | false | optional |
on_change_callback |
string | An optional URL listening for status updates related to this withdrawal transfer. The callback sends an HTTP POST request with a JSON object conforming to the one described in /transaction .Your server should respond with a 200 OK HTTP status code upon to acknowledge the callback. If we don't see a 200 OK response we will keep re-sending the callback for a while until we encounter one and eventually give up (after 48 hours or so). Callbacks are signed via an HTTP header, as documented here. |
false | optional |
type |
string | Optional parameter indicating the type of withdrawal. The only currently allowed value is crypto . |
false | optional |
{ "account_id":"GCQVESTEG3MY2AA4LFF2J5K77IQP4G5WZCUDOJ5RUIPA6ZKRGQ7XXKBR", "memo_type":"text", "memo":"cf86a99b3e6ecd1359a0d2992e70", "id":"cf86a99b3e6ecd1359a0d2992e70", "min_amount":"0.0005000", "max_amount":"100.0000000", "fee_fixed":0.0002, "fee_percent":0.2, "extra_info":{ "message":"An amount above 100.0000000 BTC will take longer to complete" } }
Name | Type | Description | Nullable |
---|---|---|---|
account_id |
string | The Stellar account to which the funds should be sent. | false |
memo |
string | A mandatory memo to be included in the Stellar withdrawal transaction. It is vital to include the memo. Funds sent without the memo might not be able to be resolved or refunded. | false |
memo_type |
integer | The memo type (always text ). |
false |
id |
string | A unique identifier given by COINQVEST. Save this client-side to reference and query this withdrawal and related blockchain transactions using the /transaction endpoint. |
false |
min_amount |
string | The minimum withdrawal amount for the fund transfer to trigger. Payment operations below the minimum threshold stay pending until the sum of all made payments matches or exceeds this amount. | false |
max_amount |
string | The maximum withdrawal amount. | false |
fee_fixed |
string | Indicates the fixed fee for this withdrawal. In units of the transferred asset. | false |
fee_percent |
string | Indicates the percentage fee for this withdrawal. In units of percentage points. | false |
extra_info |
object | An object optionally containing exactly one field message containing a human readable text string with additional information. |
false |
{ "status":"400", "error":"Invalid destination address." }
Name | Type | Description | Nullable |
---|---|---|---|
status |
string | The issued HTTP status code. | false |
error |
string | A human readable string explaining the error. | false |
Returns an object with transaction information regarding a SEP-6 deposit or withdrawal. Conforms to the official Stellar SEP-6 definitions described here.
Requires either an external_transaction_id
(i.e. the Bitcoin or Litecoin transaction id), a stellar_transaction_id
, or an id
as given by COINQVEST in the HTTP response to a deposit, withdraw, or transactions request.
curl 'https://sep6.coinqvest.com/transaction?external_transaction_id=914f2fe1175101d5d1b3fc75c053cc090590bb0e251b938c255598c828742c43'
Key | Type | Description | Nullable | Mandatory |
---|---|---|---|---|
id |
string | A transfer id as given by COINQVEST in the HTTP response to a /deposit , /withdraw , or /transactions request. |
true | optional |
stellar_transaction_id |
string | A Stellar transaction id related to a SEP-6 deposit or withdrawal. | true | optional |
external_transaction_id |
string | An external transaction id (i.e. a Bitcoin or Litecoin transaction id) related to a SEP-6 deposit or withdrawal. | true | optional |
{ "transaction":{ "id":"085a2e4aca82edd52d12b37388da-814f2fe117-0", "status":"completed", "message":"Transaction fully completed.", "kind":"deposit", "amount_in":"0.0001000", "amount_in_asset":"iso-24165:BTC", "amount_out":"0.0001000", "amount_out_asset":"stellar:BTC:GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT", "amount_fee":"0.0000000", "from":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23", "started_at":"2022-10-04T20:50:18.307Z", "completed_at":"2022-10-04T20:51:20.032Z", "stellar_transaction_id":"a426a057aaba5a5811d5ee243f76c767a6756df89f417610a4ebd114e162596a", "external_transaction_id":"814f2fe1175101d5d1b3fc75c053cc090590bb0e251b938c255598c828742c43", } }
Name | Type | Description | Nullable |
---|---|---|---|
transaction |
object | An object containing information about the transfer transaction. | false |
.id |
string | A composite id combining the SEP-6 transfer id as given by COINQVEST in the HTTP response to a deposit or withdrawal request with a conditional unique suffix in the format -[a-z0-9]{10}-[0-9] identifying a single SEP-6 transfer explicitly. |
false |
.status |
string |
A transaction state as documented here.
Possible states:
completed , pending_external , pending_anchor , pending_stellar , pending_trust , pending_user , pending_user_createaccount , pending_user_transfer_start , pending_user_transfer_complete , pending_customer_info_update , incomplete , expired , too_small , too_large , error .
|
false |
.message |
string | A human-readable text string explaining the status given above. |
false |
.kind |
string | The transaction type. Possible values are deposit and withdrawal . |
false |
.amount_in |
string | Amount received by transfer server at the start of the transaction. A string with up to 7 decimals. Excludes any fees charged before the transfer server received the funds. | true |
.amount_in_asset |
string | The asset received or to be received by the transfer server. The value is in SEP-38 Asset Identification format. | true |
.amount_out |
string | Amount sent by the transfer server to the user at end of transaction. A string with up to 7 decimals. | true |
.amount_out_asset |
string | The asset delivered or to be delivered to the user. The value is in SEP-38 Asset Identification format. | true |
.amount_fee |
string | Amount of fee charged by the transfer server. | true |
.from |
string | A Stellar account in the case of withdrawal transactions or a comma-separated string with all UTXO inputs in the case of deposits. | true |
.started_at |
string | Start date and time of transaction (UTC ISO 8601). | true |
.completed_at |
string | Completion date and time of transaction (UTC ISO 8601). | true |
.stellar_transaction_id |
string | Id on Stellar Network indicating the transaction that either completed the deposit or started the withdrawal. | true |
.external_transaction_id |
string | Id of the blockchain transaction on the external network that either started the deposit or completed the withdrawal. | true |
.withdraw_anchor_account |
string | If this is a withdrawal, this is the anchor's Stellar account that the user transferred (or will transfer) their issued asset to. | true |
.withdraw_memo |
string | Mandatory withdrawal memo given by the transfer server. | true |
.withdraw_memo_type |
string | Mandatory withdrawal memo type given by the transfer server. | true |
related_transactions |
object | An optional list of additional transaction objects for situations in which more than one blockchain transaction is associated with a deposit or withdrawal. | true |
{ "status":"404", "error":"not found" }
Name | Type | Description | Nullable |
---|---|---|---|
status |
string | The issued HTTP status code. | false |
error |
string | A human readable string explaining the error. | false |
Returns a list of transaction objects as described in /transaction
. Conforms to the official Stellar SEP-6 definitions described here.
curl 'https://sep6.coinqvest.com/transactions?asset_code=BTC&account=GACK3ODRMGCTRH6HNVETEOF2ZK5G5QUIGLDFFZQSLM6RZJ2LFY3VWQBT'
Key | Type | Description | Nullable | Mandatory |
---|---|---|---|---|
asset_code |
string | The asset code of interest, e.g. BTC or LTC . |
false | mandatory |
account |
string | The stellar account id involved in the transactions. Without this filter the entire transaction history of the transfer server is queried. | false | optional |
no_older_than |
string | The response should only contain transactions starting on or after this date and time (UTC ISO 8601). | true | optional |
limit |
string | The response should contain at most limit transactions. | true | optional |
kind |
string | A comma-separated list containing the desired transaction kinds. Possible values are deposit and withdrawal . |
true | optional |
paging_id |
string | The response should contain transactions starting prior to this ID (exclusive). | true | optional |
{ "transactions":[ { "id": "30978809351d5e145b8a9bce49a8", "kind": "deposit", "status": "pending_user_transfer_start", "message": "Please initiate your transfer." }, { "id":"085a2e4aca82edd52d12b37388da-814f2fe117-0", "status":"completed", "message":"Transaction fully completed.", "kind":"deposit", "amount_in":"0.0001000", "amount_in_asset":"iso-24165:BTC", "amount_out":"0.0001000", "amount_out_asset":"stellar:BTC:GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT", "amount_fee":"0.0000000", "from":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23", "started_at":"2022-10-04T20:50:18.307Z", "completed_at":"2022-10-04T20:51:20.032Z", "stellar_transaction_id":"a426a057aaba5a5811d5ee243f76c767a6756df89f417610a4ebd114e162596a", "external_transaction_id":"814f2fe1175101d5d1b3fc75c053cc090590bb0e251b938c255598c828742c43" }, { "id":"9f5762bbbe11dc58be299b8d68e3-8348091630-0", "status":"completed", "message":"Transaction fully completed.", "kind":"withdraw", "amount_in":"0.0005000", "amount_in_asset":"stellar:LTCTEST:GBSY6HJZLWBUUNJHHDLDE3AIBSQCHI6UMIMWOLZ6GUWI3NPPLP6QNGI2", "amount_out":"0.0002990", "amount_out_asset":"iso24165:LTC", "amount_fee":"0.0002010", "from":"GACK3ODRMGCTRH6HNVETEOF2ZK5G5QUIGLDFFZQSLM6RZJ2LFY3VWQBT", "started_at":"2022-10-05T00:04:02.168Z", "completed_at":"2022-10-05T00:12:30.284Z", "stellar_transaction_id":"83480916303afa78b93831e3964eec748b6265148823d27fecb7c7648a9c87ec#184545592135122945", "external_transaction_id":"f09c0f9fcf7cf88727b20275b2b231b2a0dbb2563e3ad19fe97b839fe50dff50", "withdraw_memo":"9f5762bbbe11dc58be299b8d68e3", "withdraw_memo_type":"text", "withdraw_anchor_account":"GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT" } ] }
Name | Type | Description | Nullable |
---|---|---|---|
transactions |
array | An array of transaction objects as described in /transaction . |
false |
{ "status":"500", "error":"internal server error" }
Name | Type | Description | Nullable |
---|---|---|---|
status |
string | The issued HTTP status code. | false |
error |
string | A human readable string explaining the error. | false |
View on GitHub | https://github.com/COINQVEST/sep6-client-php |
This client communicates with COINQVEST's Stellar SEP-6 transfer server documented here. It lets you on- and off-ramp Bitcoin on the Stellar Network. This client is written in PHP but we also provide clients in different programming languages.
Read our stellar.toml to inspect available COINQVEST assets on the Stellar Network. At the time of writing we support wrapped Bitcoin and Litecoin.
Copy the contents of src
into the include path of your project.
Usage Client
include('SEP6Client.class.php');
$client = new SEP6Client();
Deposit Bitcoin onto Stellar
$response = $client->get('/deposit', array(
'asset_code' => 'BTC',
'account' => 'GDONUHZKLSYLDOZWR2TDW25GFXOBWCCKTPK34DLUVSOMFHLGURX6FNU6',
'memo' => 'Sent via SEP-6',
'memo_type' => 'text'
));
// $response->responseBody -> {"how":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23","id":"f2118ef4115642870638616a4372","eta":600,"min_amount":"0.00001","max_amount":"100.0000000","extra_info":{}}
Returns a Bitcoin deposit address alongside some additional context information documented here. Bitcoin sent to the received deposit address is tokenized onto Stellar and sent to above account. The tokenized Bitcoin can be sent and received on the Stellar Network, exchanged for other assets on the SDEX, or be deposited into Stellar's liquidity pools.
Withdraw Bitcoin from Stellar
$response = $client->get('/withdraw', array(
'asset_code' => 'BTC',
'dest' => 'bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23'
));
// $response->responseBody -> {"account_id":"GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT","memo_type":"text","memo":"010cdf0a41410d75b2797a6fa38f","id":"010cdf0a41410d75b2797a6fa38f","min_amount":"0.0005000","max_amount":"100.0000000","fee_fixed":0.0002,"fee_percent":0.2,"extra_info":{"message":"An amount above 100.0000000 will take longer to complete"}}
Returns a Stellar account and memo alongside some additional context information documented here. Tokenized Bitcoin sent to the given account is burned on the Stellar Network and released into the Bitcoin address given in the request.
Please inspect our SEP-6 API docs or email us at service@coinqvest.com if you have questions.
We'd love to hear your feedback. If you have specific problems or bugs with this SDK, please file an issue on GitHub. For general feedback and support requests please email service@coinqvest.com.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)View on GitHub | https://github.com/COINQVEST/sep6-client-nodejs |
This client communicates with COINQVEST's Stellar SEP-6 transfer server documented here. It lets you on- and off-ramp Bitcoin on the Stellar Network. This client is written in Node JS but we also provide clients in different programming languages.
Read our stellar.toml to inspect available COINQVEST assets on the Stellar Network. At the time of writing we support wrapped Bitcoin and Litecoin.
npm install sep6-client
Usage Client
const Sep6Client = require('sep6-client');
const client = new Sep6Client();
Deposit Bitcoin onto Stellar
let response = await client.get('/deposit', {
'asset_code': 'BTC',
'account': 'GDONUHZKLSYLDOZWR2TDW25GFXOBWCCKTPK34DLUVSOMFHLGURX6FNU6',
'memo': 'Sent via SEP-6',
'memo_type': 'text'
});
// console.log(response.data) -> {"how":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23","id":"f2118ef4115642870638616a4372","eta":600,"min_amount":"0.00001","max_amount":"100.0000000","extra_info":{}}
Returns a Bitcoin deposit address alongside some additional context information documented here. Bitcoin sent to the received deposit address is tokenized onto Stellar and sent to above account. The tokenized Bitcoin can be sent and received on the Stellar Network, exchanged for other assets on the SDEX, or be deposited into Stellar's liquidity pools.
Withdraw Bitcoin from Stellar
let response = await client.get('/withdraw', {
'asset_code': 'BTC',
'dest': 'bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23'
});
// console.log(response.data) -> {"account_id":"GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT","memo_type":"text","memo":"010cdf0a41410d75b2797a6fa38f","id":"010cdf0a41410d75b2797a6fa38f","min_amount":"0.0005000","max_amount":"100.0000000","fee_fixed":0.0002,"fee_percent":0.2,"extra_info":{"message":"An amount above 100.0000000 will take longer to complete"}}
Returns a Stellar account and memo alongside some additional context information documented here. Tokenized Bitcoin sent to the given account is burned on the Stellar Network and released into the Bitcoin address given in the request.
Please inspect our SEP-6 API docs or email us at service@coinqvest.com if you have questions.
We'd love to hear your feedback. If you have specific problems or bugs with this SDK, please file an issue on GitHub. For general feedback and support requests please email service@coinqvest.com.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)View on GitHub | https://github.com/COINQVEST/sep6-client-ruby |
This client communicates with COINQVEST's Stellar SEP-6 transfer server documented here. It lets you on- and off-ramp Bitcoin on the Stellar Network. This client is written in Ruby but we also provide clients in different programming languages.
Read our stellar.toml to inspect available COINQVEST assets on the Stellar Network. At the time of writing we support wrapped Bitcoin and Litecoin.
gem install sep6_client
Usage Client
require 'sep_client/client'
client = Sep6Client::Client.new()
Deposit Bitcoin onto Stellar
response = client.get('/deposit', {
:asset_code => 'BTC',
:account => 'GDONUHZKLSYLDOZWR2TDW25GFXOBWCCKTPK34DLUVSOMFHLGURX6FNU6',
:memo => 'Sent via SEP-6',
:memo_type => 'text',
})
// print response.body -> {"how":"bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23","id":"f2118ef4115642870638616a4372","eta":600,"min_amount":"0.00001","max_amount":"100.0000000","extra_info":{}}
Returns a Bitcoin deposit address alongside some additional context information documented here. Bitcoin sent to the received deposit address is tokenized onto Stellar and sent to above account. The tokenized Bitcoin can be sent and received on the Stellar Network, exchanged for other assets on the SDEX, or be deposited into Stellar's liquidity pools.
Withdraw Bitcoin from Stellar
response = client.get('/withdraw', {
:asset_code => 'BTC',
:dest => 'bc1qj633nx575jm28smgcp3mx6n3gh0zg6ndr0ew23'
})
// print response.body -> {"account_id":"GCQVEST7KIWV3KOSNDDUJKEPZLBFWKM7DUS4TCLW2VNVPCBGTDRVTEIT","memo_type":"text","memo":"010cdf0a41410d75b2797a6fa38f","id":"010cdf0a41410d75b2797a6fa38f","min_amount":"0.0005000","max_amount":"100.0000000","fee_fixed":0.0002,"fee_percent":0.2,"extra_info":{"message":"An amount above 100.0000000 will take longer to complete"}}
Returns a Stellar account and memo alongside some additional context information documented here. Tokenized Bitcoin sent to the given account is burned on the Stellar Network and released into the Bitcoin address given in the request.
Please inspect our SEP-6 API docs or email us at service@coinqvest.com if you have questions.
We'd love to hear your feedback. If you have specific problems or bugs with this SDK, please file an issue on GitHub. For general feedback and support requests please email service@coinqvest.com.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)COINQVEST's SEP-6 transfer server is transparent and auditable. Below is an itemized statement of the SEP-6 transfer server's recent deposit and withdrawal history. Use the /transactions
endpoint to query and inspect the entire transfer server history and verify the indicated wallet reserves.
ID | Started At | Completed At | Amount | Type | Status |
---|
12121...32323 |
2022-10-04 20:50:18 | 2022-10-04 20:51:20 | |
withdraw | pending_user_transfer_complete |
Use the SEP-6 /transactions
endpoint to query the entire transfer server history.