Bitcron API Documentation


Welcome to the Bitcron API Documentation

Bitcron provides a simple and robust REST API to integrate digital currency wallets with your application. In Bitcron Platform, we have extended our API to allow the management of multiple digital currencies and wallets through a single, unified interface.


Bitcron REST API

The Bitcron REST API is a lightweight service for developers that want to take advantage of Bitcron, but are developing in a language without a native Bitcron API.

Bitcron REST API runs as a service in your own datacenters, and handles the client-side operations involving your own keys, such as partially signing transactions before submitting them to Bitcron. This ensures your keys never leave your network, and are never seen by Bitcron. Bitcron Express can also proxy the standard Bitcron REST APIs, providing a unified interface to Bitcron through a single REST API.


Hierarchical Deterministic Wallets

An Hierarchical Deterministic wallet, is a new-age digital wallet that automatically generates a hierarchical tree-like structure of private/public keys, thereby addressing the problem of the user having to generate them on his own.

A standard cryptocurrency wallet is used to store the cryptocurrency tokens or coins. It has a public address which the user can give to others to receive funds from them, and a private key that the user uses to spend the stored tokens.

This public/private combination mechanism ensures safety of the cryptocurrency tokens, but comes with an additional overhead of the user being required to repeatedly generate a random pair of private/public keys, and back up each time one configures a new pair of addresses. As the number of transactions increases, this process becomes cumbersome for the user.

Bitcron’s HD Wallets solve this problem by deriving all the addresses from a single master seed (hence the name hierarchical).


Coin / Digital Currency Support

Bitcron Platform supports a variety of digital currencies. A summarized list of all supported digital currencies:

Number Identifier Digital Currency Family Bitcron Environment Release status
1 BTC Bitcoin Coin Production Available
2 BCH Bitcoin Cash Coin Production Available
3 ETH Ethereum Coin Production Available
4 ETC Ethereum Classic Coin Production Available
5 DASH Dash Coin Production Available
6 XMR Monero Coin Production Available
7 BTG Bitcoin Gold Coin Production Available
8 BTX Bitсore Coin Production Available
9 LTC Litecoin Coin Production Available
10 XRP Ripple Coin Production Available
11 ADA Cardano Coin Production Available
12 NEO NEO Coin Production Available
13 XEM NEM Coin Production Available
14 NMC Namecoin Coin Production Available
15 MIOTA IOTA Coin Production Available
16 XVG Verge Coin Production Available
17 QTUM Qtum Coin Production Available
18 DOGE Dogecoin Coin Production Available
19 RDD ReddCoin Coin Production Available
20 BCN Bytecoin Coin Production Available
21 TRX Tron Coin Production Available
22 SC Siacoin Coin Production Available
23 DGB Digibyte Coin Production Available
24 PPT Populous ERC20 Token Production Available
25 ELF AELF ERC20 Token Production Available
26 DENT DENT ERC20 Token Production Available
27 ENG Enigma ERC20 Token Production Available
28 ETHOS Ethos ERC20 Token Production Available
29 SALT SALT ERC20 Token Production Available
30 TUSD True USD ERC20 Token Production Available
31 SNT StatusNetwork ERC20 Token Production Available
32 MCO Monaco ERC20 Token Production Available
33 ZIL Zilliqa ERC20 Token Production Available
34 AE Aeternity ERC20 Token Production Available
35 POWR Power Ledger ERC20 Token Production Available
36 MKR Maker ERC20 Token Production Available
37 TNB Time New Bank ERC20 Token Production Available
38 REP Augur ERC20 Token Production Available
39 ZRX 0x ERC20 Token Production Available
40 IOST IOST ERC20 Token Production Available
41 BTM Bytom ERC20 Token Production Available
42 VEN Vechain ERC20 Token Production Available
43 LINK ChainLink ERC20 Token Production Available
44 GNT Golem ERC20 Token Production Available
45 DGD DigixDAO ERC20 Token Production Available
46 REQ Request Network ERC20 Token Production Available
47 NULS Nuls ERC20 Token Production Available
48 CMT CyberMiles ERC20 Token Production Available
49 KIN Kin ERC20 Token Production Available
50 VERI Veritaseum ERC20 Token Production Available
51 CENNZ Centrality ERC20 Token Production Available
52 STORM Storm ERC20 Token Production Available
53 CVC Civic ERC20 Token Production Available
54 ICN Iconomi ERC20 Token Production Available
55 STORJ Storj ERC20 Token Production Available
56 LOOM Loom Network ERC20 Token Production Available
57 BNT Bancor ERC20 Token Production Available
58 POLY Polymath ERC20 Token Production Available
59 GTO Gifto ERC20 Token Production Available
60 AION Aion ERC20 Token Production Available
61 AST AirSwap ERC20 Token Production Available
62 APPC AppCoins ERC20 Token Production Available
63 ANT Aragon ERC20 Token Production Available
64 BAT Basic Attention Token ERC20 Token Production Available
65 BRD Bread ERC20 Token Production Available
66 KNC Kyber Network ERC20 Token Production Available
67 FUN FunFair ERC20 Token Production Available
68 NEXO Nexo ERC20 Token Production Available
69 PRO Propy ERC20 Token Production Available
70 RDN Raiden Network Token ERC20 Token Production Available
71 NPXS Pundi X ERC20 Token Production Available
72 MANA Decentraland ERC20 Token Production Available
73 HOT Holo ERC20 Token Production Available
74 THETA Theta ERC20 Token Production Available
75 BLZ Bluzelle ERC20 Token Production Available
76 ENJ Enjin Coin ERC20 Token Production Available
77 BCPT BlockMason Credit Protocol ERC20 Token Production Available
78 DNT District0x ERC20 Token Production Available
79 MFT Mainframe ERC20 Token Production Available
80 LUN Lunyr ERC20 Token Production Available
81 QASH Qash ERC20 Token Production Available
82 CTXC Cortex ERC20 Token Production Available

Error Handling

All errors follow general REST principles. Included in the body of any error response will be an error object of the form:

Parameter Value
Status The HTTP error status returned.
Error The detailed description of the error.

The Bitcron API uses the following status and codes:

Status Meaning
200 Successfully completed
202 Accepted
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timeout
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
Code Meaning
ERR_EMAIL_REQUIRED Email is required.
ERR_FIRSTNAME_REQUIRED Firstname is required.
ERR_LASTNAME_REQUIRED Lastname is required.
ERR_ACCOUNTYPE_REQUIRED Account Type is required.
ERR_COMPANY_NAME_REQUIRED Company name is required.
ERR_PASSWORD_REQUIRED Password is required.
ERR_OLD_PASSWORD_REQUIRED Old Password is required.
ERR_INVALID_OLD_PASSWORD Invalid Old Password.
ERR_CONFIRM_REQUIRED Password confirmation is required.
ERR_USER_NOT_FOUND User not found.
ERR_EMAIL_PASSWORD_INVALID Email or Password is wrong.
ERR_EMAIL_ALREADY_EXISTS Email address already exists.
ERR_CURRENCY_FEES_NOT_FOUND Currency fees are not found.
ERR_COIN_NOT_FOUND Coin not found.
ERR_INVALID_INPUT_PARAMETERS Invalid input parameters.
ERR_SAME_IP_REQUIRED Verification needed from the same ip.
ERR_NAME_REQUIRED Name is required.
ERR_MULTIPLIER_REQUIRED Multiplier for currency is required.
ERR_MIN_AMOUNT_REQUIRED Minimum amount for currency is required.
ERR_MAX_AMOUNT_REQUIRED Maximum amount for currency is required.
ERR_DEPOSIT_FEE_REQUIRED Deposit fee for currency is required.
ERR_WITHDRAWAL_FEE_REQUIRED Withdrawal fee for currency is required.
ERR_COINCAP_PRICE_USD_REQUIRED Default coincap price for currency is required.
ERR_COINCAP_PRICE_CHANGE_REQUIRED Default coincap price change for currency is required.
ERR_USER_ID_REQUIRED User ID is required.
ERR_COIN_NP Please provide at least one coin.
ERR_NOTIFICATION_INSERT Notification insert error.
ERR_NOTIFICATION_TEXT_REQUIRED Notification text is required.
ERR_AMOUNT_REQUIRED Amount is required.
ERR_AMOUNT_NEO_INVALID NEO Amount can not be in decimals.
ERR_AMOUNT_LESS_MIN Amount is lesser than minimum amount.
ERR_INVALID_ADDRESS Address is not valid.
ERR_AMOUNT_BIGGER_MAX Amount is bigger than maximum amount.
ERR_BALANCE_NOT_ENOUGH Balance is not enough. If you have pending transactions, wait till they get more than 6 confirmations
ERR_CURRENCY_ID_REQUIRED Currency ID is required.
ERR_TYPE_REQUIRED Type is required.
ERR_USER_FEE_NOT_FOUND User currency fee not found.
ERR_TOKEN_REQUIRED Token is required.
ERR_ADA_TX_INFO Problem getting transaction information.
ERR_ADA_TXS Problem getting transactions information.
ERR_TX_NOT_FOUND Transaction not found.
ERR_TX_NOT_SUCCESSFUL Transaction was not successful.
ERR_NEO_TX_WAIT Your balance appeared not updated yet.
ERR_COUNT_REQUIRED Count is required.
ERR_SKIP_REQUIRED Skip is required.
ERR_FULLNAME_REQUIRED Fullname is required.
ERR_SUBJECT_REQUIRED Subject is required.
ERR_MESSAGE_REQUIRED Message is required.
ERR_IP_REQUIRED Ip address is required.
ERR_ISADMIN_REQUIRED IsAdmin is required.
ERR_SESSION_NOT_FOUND Session not found.
ERR_SESSION_COMPLETED Session expired.
ERR_IP_COUNTRY_REQUIRED IP country is required.
ERR_CF_RAY_REQUIRED Cluster is required.
ERR_APIKEY_NOT_FOUND API key not found.
ERR_ACTIVATIONCODE_REQUIRED Activation code is required.
ERR_ACTIVATION Invalid Activation code.
ERR_ACTIVATIONCODE_NOT_FOUND Activation Code not found.
ERR_PERMISSION_DENIED Permission denied.
ERR_USER_API_ALREADY_EXISTS User API KEY already exists.
ERR_PASSWORD_CONFIRMATION_REQUIRED Password confirmation is required
ERR_PASSWORD_DOESNOT_MATCH Password and confirmation are not matching.
ERR_MUST_AGRREE You must accept terms and conditions
ERR_INVALID_CAPTCHA Invalid captcha.
ERR_NOTADMIN User is not admin.
ERR_ISADMIN User is admin.
ERR_USER_BLOCKED User account has been blocked.
SUCC_COMPLETED Successfully completed.
WALLET_PASSWORD_RESET_EMAIl We have sent an email with link to reset Wallet Password.
SUCC_UPDATED Successfully updated.
ERR_IP_RESTRICTED IP address is not allowed to execute operation.
ERR_IP_UNVERIFIED IP address is unverified.
ERR_IP_VERIFIED IP address is verified.
ERR_WALLET_REQUIRED Wallet is required.
ERR_WALLET_ID_REQUIRED Wallet ID is required.
ERR_WALLET_NOT_FOUND Wallet not found.
ERR_WALLET_HIDDEN Wallet is hidden and can not be used.
ERR_WALLET_FREEZED Wallet is hidden and can not be used.
ERR_NEO_WALLET_NOT_FOUND NEO Wallet not found.
ERR_XEM_WALLET_NOT_FOUND XEM Wallet not found.
ERR_AMOUNT_LESS_THAN_ZERO Deposit amount can not be less than 0.
ERR_BALANCE_FOR_FEE_NOT_ENOUGH Balance is not enough for fee.
ERR_LABEL_REQUIRED Wallet Label is required.
ERR_LABEL_UPDATE_PROBLEM Problem updating Address Label.
ERR_PASSPHRASE_REQUIRED Wallet passphrase is required.
ERR_CONFIRM_PASSPHRASE_REQUIRED Wallet confirm passphrase is required.
ERR_SEED_REQUIRED Wallet seed is required.
ERR_COIN_REQUIRED Coin is required.
ERR_COIN_NOT_IMPLEMENTED Coin API not yet implemented.
ERR_ADDRESS_REQUIRED Address is required.
ERR_TOKEN_AND_APIKEY_SPECIFIED Both token and apikey specified.
ERR_ADDRESS_NOT_FOUND Address not found.
ERR_RANDOM_CANNOT_GENERATE Randomizer coudld not provide true random.
ERR_ID_REQUIRED ID is required.
ERR_LABEL_ALREADY_EXISTS Label has to be unique.
ERR_WRONG_USER Wrong user.
ERR_FORWARDED_FOR_REQUIRED FORWARDED-FOR required.
ERR_TO_ADDRESS_REQUIRED Address to send coins is required.
ERR_CANNOT_SEND_ITSELF Cannot send to itself.
ERR_CANNOT_SEND_SELF_INTERNAL Cannot send within your wallet.
ERR_INCORRECT_WALLET_PASSPHRASE Incorrect passphrase for wallet. Could not decrypt.
ERR_UPDATE_COUNT Update count error.
ERR_NEO_UPDATE_COUNT NEO wallet Update count error.
ERR_UPDATE_PROFILE Error updating profile.
ERR_UPDATE_IP Error updating IP Verification Status.
ERR_COINS_REQUIRED Coins list must contain at least one coin.
ERR_WEBHOOKID_REQUIRED Web Hook ID is required.
ERR_WEBHOOK_ALREADY_EXISTS Web Hook already exists.
ERR_URL_REQUIRED URL is required.
ERR_INSERT_NOT_HAPPENED Could not add.
ERR_ACCESS_TOKEN_NOT_FOUND Access token not found.
ERR_USER_TWO_FA_DISABLED User two factor is disabled.
ERR_METHOD_INDEFINED Method is undefined.
ERR_COIN_TEMP_UNAVAILABLE Coin temporarily unavailable.
ERR_ROLE_REQUIRED Role is required.
ERR_USER_ALREADY_EXISTS User already exists.
ERR_USER_NOT_VERIFIED User is not verified.
ERR_SELF_ACCOUNT_FOUND You can't add yourself.
ERR_OWNER_ACCOUNT_FOUND You can't add owner.
ERR_SELF_ACCOUNT_DELETE_FOUND You can't remove yourself.
ERR_OWNER_ACCOUNT_DELETE_FOUND You can't remove owner.
ERR_USER_NOT_ENROLLED Not enrolled for the wallet.
SUCCESS_FORGOT_PASSWORD Please check your email for password reset link.
SUCCESS_FORGOT_2FA Two Factor reset request received. We will get back to you soon.
SUCCESS_PASSWORD_RESET Password reset successfully.
SUCCESS_WALLET_PASSWORD_RESET Wallet Password successfully reset.
SUCCESS_PASSWORD_CHANGE Password changed successfully.
SUCCESS_IP_VERIFIED IP verified successfully.
ERR_IP_VERIFICATION IP Verification failed.
SUCC_PROFILE_UPDATE Profile updated successfully.
SUCC_REPORT_EMAIL We will send report by email shortly (If transfers exist for selected dates).
SUCC_SETTING_UPDATE Setting updated successfully.
ERR_NO_TXS Transfers not found.
ERR_PASSPHRASE_CONFIRMATION_REQUIRED Passphrase confirmation is required.
ERR_PASSPHRASE_MISMATCH Passphrase and confirmation does not match.
ERR_ADA_WALLET_GENERATION Problem generating ADA Wallet.
ERR_ADA_ADDRESS_GENERATION Problem generating ADA Address.
ERR_ADA_BALANCE Problem getting Wallet Balance at the moment.
ERR_OLD_PASSPHRASE_REQUIRED Old passphrase is required.
ERR_INVALID_PASSPHRASE Invalid passphrase.
ERR_MNEMONIC_REQUIRED Mnemonic recover passphrase is required.
ERR_INVALID_MNEMONIC Invalid mnemonic recovery phrase.
ERR_DELETE_NOT_HAPPENED Delete not happened.
ERR_ADDRESS_ALREADY_EXISTS Address already exists in the list.
ERR_TX_USD_LIMIT_TOO_LOW Transaction limit is too low.
ERR_CONFIRMED_BALANCE_NOT_ENOUGH Confirmed balance is not enough.
ERR_UNCONFIRMED_BALANCE_NOT_ENOUGH Unconfirmed balance is not enough.
ERR_INVALID_COIN Invalid coin type for wallet.
ERR_WALLET_NOT_ACTIVATED Please activate wallet.
ERR_ACCOUNT_BASED_BLOCKCHAIN Blockchain is account based and does not generate addresses. Instead, create wallets.
ERR_CREATING_TRANSFER Problem creating trasancation.
ERR_XRP_NEW_ADDR_TRANSFER The Ripple address is new. In order to activate you need to transfer Minimum 20 XRP.
ERR_XRP_DESTINATION_TAG_REQUIRED Destination Tag is required to make payment to this address.
ERR_LINK_EXPIRED Link is expired. Please create one more transaction.
ERR_UVTX_PROCESSED Transaction is already processed.
ERR_UNVERIFIED_TX Verification is required for this transfer.
ERR_TOKEN_ADDRESS_GENERATION_NOT_SUPPORTED Token addresses can not be generated.
ETH_LIST_TX Error in getting transaction list.
ERR_CHARGE_ACCOUNT In order to send tokens you need to charge account with ethers to pay for gas.
ERR_RIPPLE_CONNECTION Problem processing XRP at the moment.
COIN_DONOT_SUPPORT_ADDRESS_GEN Coin does not support address generation.
ERR_NOT_ENOUGH_UNLOCKED_MONEY Not enough unlocked money. Please, wait for confirmatins and send it again.
ERR_INVALID_DECIMAL_NUMBER Invalid decimal number in token smart contract.
ERR_ENTERPRISE_SPECIFIC_ONLY Coin is available for specific enterprise customers.
ERR_NO_FEE_WALLET No fee wallet has been created.
ERR_ADDRESS_NEEDS_MINIMUM_FEE In order to generate address, you need to fullfill it with 0.05 ETH at least.
REQ_ACCEPTED Request for transfer has been accepted.
ERR_TRANSFER_REQUIRED Transfer is required.
ERR_TRANSFER_NOT_FOUND Transfer not found.
ERR_NOT_SUPPORTED This operation is not supported for this coin.
ERR_TX_CHECK Error while checking the transaction status
ERR_WALLET_COIN_MISMATCH Error when wallet id and coin is not matching

Feel free to contact us if you need any further information.


Example JSON Status and Code:

{
    "statusCode": "ERR_AMOUNT_LESS_MIN",
    "statusText": "Amount is lesser than minimum amount"
}

Pagination

Certain routes, such as listing wallets or transactions, may return an array of results. Response will return 6 latest wallets and in order to get more, skip query parameters has to be passed in url.

Example: In order to get full list of wallets, the following code should run inside for loop till it returns empty array. Considering we have 500 wallets, loop should run in a next way: ?skip=0, ?skip=6, ?skip=12 .... ?skip=500 which will return empty array and after loop should be stopped.

Example

GET /api/v1/coin/:coin/wallets?skip=0


Bitcron Access Tokens

Access tokens allow you to connect BitCron's API remotely and execute functionality. Access tokens are binded to IP address to protect from unauthorized access. Keep in mind, withdrawal amount can not be exceeded wallet spending limit, if it has been installed.

You can generate as many access tokens as you wants, but keep in mind, access tokens must be stored securily and should not be shared with anyone who should not have access to it.


Creating Access Token through Web Interface

User Profile -> Access Tokens

You can create a long-lived access token. The token will come unlocked by default with your specified spending limit. Keep in mind, transaction should not exceed transaction usd limit. (Transaction USD Limit checks transfer amount converted to USD value which should be less or equal usd limit amount)

Example:

bitcron-access-token: 54717df-5da-400c-a0a0-cd7d7771de


Wallet Operations

All Bitcron Wallets are institutional Hirearchial determenistic wallets and uses standard 12-word master seed key, and each time this seed is extended at the end by a counter value which makes it possible to automatically derive an unlimited number of new addresses.


List of Coins

Returns list of all supported coins.

HTTP Request

GET /api/v1/coin

Response

Field Description
coin The digital currency type.
name The digital currency name.
order Digital currency order.
minamount Minimum amount which can be transferred.
maxamount Maximum amount which can be transferred.
minstay Minimum amount which must be maintained inside the wallet.
coincappriceusd The digital currency CoinCap price (USD).
coincap24hrchange The digital currency CoinCap price change (24 hr).
active The digital currency status.
ethtoken Account based status.
description The digital currency description.
blockurl Block link (Optional in some digital currencies).
addressurl Address link.
txurl Transaction link.
curl \
-H "api-key: $API_KEY"
https://bitcron.io/api/v1/coin

The above will print an object structured as follows:

[{
    "coin": "btc",
    "name": "Bitcoin",
    "order": 1,
    "minamount": 0.0001,
    "maxamount": 100000,
    "minstay": 0.0001,
    "coincappriceusd": 7475,
    "coincap24hrchange": -1.09,
    "active": true,
    "ethtoken": false,
    "description": null,
    "blockurl": "https://tradeblock.com/bitcoin/block/",
    "addressurl": "https://tradeblock.com/bitcoin/address/",
    "txurl": "https://tradeblock.com/bitcoin/tx/"
}]

Coin Details

Returns coin information by the coin. This is useful when the detail information of the coin is needed.

HTTP Request

GET /api/v1/coin/details/:coin

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency code

Response

Field Description
coin The digital currency type.
name The digital currency name.
order Digital currency order.
minamount Minimum amount which can be transferred.
maxamount Maximum amount which can be transferred.
minstay Minimum amount which must be maintained inside the wallet.
coincappriceusd The digital currency CoinCap price (USD).
coincap24hrchange The digital currency CoinCap price change (24 hr).
ethtoken This variable showing is digital currency account based (Token).
contractaddress Contract address (Only for Tokens).
coinspecific The digital currency specific information. Coinspecific can contain following information: payment_id, messageId, destinationTag.
description The digital currency description.
blockurl Block link (Optional in some digital currencies).
addressurl Address link.
txurl Transaction link.
curl \
-H "api-key: $API_KEY"
https://bitcron.io/api/v1/coin/btc

The above will print an object structured as follows:

{
    "coin": "btc",
    "name": "Bitcoin",
    "order": 1,
    "minamount": 0.0001,
    "maxamount": 100000,
    "minstay": 0.0001,
    "coincappriceusd": 7475,
    "coincap24hrchange": 0.37,
    "ethtoken": false,
    "contractaddress": null,
    "coinspecific": null,
    "description": null,
    "blockurl": "https://tradeblock.com/bitcoin/block/",
    "addressurl": "https://tradeblock.com/bitcoin/address/",
    "txurl": "https://tradeblock.com/bitcoin/tx/"
}

List of Wallets

Returns 6 latest wallets for the specified coin. This is useful when you have over 500 wallets as you will not be able to use the Web UI. Response will return 6 latest wallets and in order to get more, skip query parameters has to be passed in url. Example: In order to get full list of wallets, the following code should run inside for loop till it returns empty array. Considering we have 500 wallets, loop should run in a next way: ?skip=0, ?skip=6, ?skip=12 .... ?skip=500 which will return empty array and after loop should be stopped.

HTTP Request

GET /api/v1/coin/:coin/wallets?skip=0

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type

Response

Array of wallet objects

Field Description
coin The digital currency type.
wallet Wallet ID.
address Wallet address.
label The wallet label, as shown in the UI.
freezed The wallet freezing status.
timestamp The date when that command was called.
hidden The wallet hiding status.
activated The wallet activation status.
balance This variable showing amounts of confirmed and unconfirmed currencies in your wallet. Balance can contain following fields: confirmedBalance, unconfirmedBalance, usdConfirmedBalance and usdUnconfirmedBalance. Example: "balance": {"confirmedBalance": 1, "unconfirmedBalance": 1, "usdConfirmedBalance": 7700,"usdUnconfirmedBalance": 7700}.
curl \
-H "api-key: $API_KEY"
https://bitcron.io/api/v1/coin/btc/wallets

The above will print an object structured as follows:

[{
    "coin": "btc",
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR",
    "address": "2NAj7Pq5tX4LUj1PrX2ZJf59c96bs20b69f",
    "label": "My test wallet",
    "freezed": false,
    "timestamp": "2018-07-21T07:33:33.777Z",
    "hidden": false,
    "activated": true,
    "balance": {
        "confirmedBalance": 1,
        "unconfirmedBalance": 1,
        "usdConfirmedBalance": 7700,
        "usdUnconfirmedBalance": 7700
    }
}]

Get Wallet by ID

Returns wallet information by the Wallet ID. This is useful when the detail information of the wallet is needed.

HTTP Request

GET /api/v1/coin/:coin/wallet/:wallet

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.

Response

Field Description
txusdlimit Spending limits in USD for every transaction.
wallet Wallet ID.
address Wallet address.
coin The digital currency type.
label The wallet label, as shown in the UI.
freezed The wallet freezing status.
timestamp The date when that command was called.
hidden The wallet hiding status.
activated The wallet activation status.
role The wallet user role.
balance This variable showing amounts of confirmed and unconfirmed currencies in your wallet. Balance can contain following fields: confirmedBalance, unconfirmedBalance, usdConfirmedBalance and usdUnconfirmedBalance. Example: "balance": {"confirmedBalance": 1, "unconfirmedBalance": 1, "usdConfirmedBalance": 7700,"usdUnconfirmedBalance": 7700}.
curl \
-H "api-key: $API_KEY"
https://bitcron.io/api/v1/coin/btc/wallet/3a54537b-5b0e-4f21-aa37-KEzHczMwejf77R

The above will print an object structured as follows:

{
    "txusdlimit": 10000,
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf77R",
    "address": "2NAj7Pq5tX4LUj1PrX2ZJf59c97bs20b77f",
    "coin": "btc",
    "label": "My test wallet",
    "freezed": false,
    "timestamp": "2018-07-21T07:33:33.777Z",
    "hidden": false,
    "activated": true,
    "role": "owner",
    "balance": {
        "confirmedBalance": 1,
        "unconfirmedBalance": 1,
        "usdConfirmedBalance": 7700,
        "usdUnconfirmedBalance": 7700
    }
}

Get Address

Returns wallet addresses information by the wallet ID. This is useful to get addresses of the wallet.

By default latest 50 addresses will be returned, in order to get more addresses you need to pass in query ?skip=50 parameter.

If an address is not generated, then it returns pending status instead of the address, In case of Ethereum or Ethreum based tokens, if address generation fails, corresponding error will be returned instead of address

HTTP Request

GET /api/v1/coin/:coin/wallet/:wallet/addresses?skip=0

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.

Response

Array of address Objects

Field Description
wallet Wallet ID
coin The digital currency type.
label Text name of the address.
address Wallet address.
timestamp The date when that command was called.
status Address generation status (Status: 'completed' / 'pending' / 'error').
errordetails Errors details.
hidden The wallet freezing status.
index The index of the address.
curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/wallet/3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR/addresses

The newly minted wallet object looks as follows:

[{
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR",
    "coin": "btc",
    "label": "Main",
    "address": "2NAj7Pq5tX4LUj1PrX2ZJKEzHcz5tX4LUj1",
    "timestamp": "2018-07-21T07:33:33.777Z",
    "status": "completed",
    "errordetails": null,
    "hidden": false,
    "index": 0
}]

Get Address by Index

Returns wallet address information by the address index. This is useful when address generation takes time, the generated address at the time can be fetched by index.

HTTP Request

GET /api/v1/coin/:coin/address/:wallet/:index

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.
index Integer Yes The index of the address.

Response

Field Description
wallet Wallet ID.
coin The digital currency type.
label Text name of the address.
address Wallet address.
timestamp The date when that command was called.
status Address generation status (Status: 'completed' / 'pending' / 'error').
errordetails Errors details.
hidden The wallet freezing status.
index The index of the address.
curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/wallet/3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR/addresses

The newly minted wallet object looks as follows:

{
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR",
    "coin": "btc",
    "label": "subaddress - 177",
    "address": "2NAj7Pq5tX4LUj1PrX2ZJKEzHcz5tX4LU7G",
    "timestamp": "2018-07-21T07:33:33.777Z",
    "status": "completed",
    "errordetails": null,
    "hidden": false,
    "index": 177
}

Get Wallet Balance

Returns wallet balance information by the wallet ID.

Balance information contains Confirmed, Unconfirmed balance and also Confirmed USD and Unconfirmed USD balance.

HTTP Request

GET /api/v1/coin/:coin/balance/wallet/:wallet

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.

Response

Field Description
coin The digital currency type
wallet Wallet ID.
balance This variable showing amounts of confirmed and unconfirmed currencies in your wallet. Balance can contain following fields: confirmedBalance, unconfirmedBalance, usdConfirmedBalance and usdUnconfirmedBalance. Example: "balance": {"confirmedBalance": 1, "unconfirmedBalance": 1, "usdConfirmedBalance": 7700,"usdUnconfirmedBalance": 7700}.
curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/balance/wallet/3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR

Returns an object that looks like this:

{
    "coin": "btc",
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR",
    "balance": {
        "confirmedBalance": 1,
        "unconfirmedBalance": 1,
        "usdConfirmedBalance": 7700,
        "usdUnconfirmedBalance": 7700
        }
}

Create Wallet

Creates a new wallet.

HTTP Request

POST /api/v1/coin/:coin/wallet

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Body Parameters

Parameter Type Required Description
label String Yes The wallet label, as shown in the UI.
passphrase String Yes Passphrase to decrypt the wallet’s private key.
cpassphrase String Yes Passphrase confirmation.

Response

Field Description
wallet Wallet ID
address Wallet address.
label The wallet label, as shown in the UI.
coin The digital currency type.
timestamp The date when that command was called.
activationcode The generated activation code for the new wallet.
seed The seed used to derive the signing key.
balance This variable showing amounts of confirmed and unconfirmed currencies in your wallet. Balance can contain following fields: confirmedBalance, unconfirmedBalance, usdConfirmedBalance and usdUnconfirmedBalance. Example: "balance": {"confirmedBalance": 1, "unconfirmedBalance": 1, "usdConfirmedBalance": 7700,"usdUnconfirmedBalance": 7700}.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/wallet

The newly minted wallet object looks as follows:

{
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR",
    "address": "2NAj7Pq5tX4LUj1PrX2ZJsdKEzHcz54LUj1",
    "label": "My test wallet",
    "coin": "btc",
    "timestamp": "2018-07-21T07:33:33.777Z",
    "activationcode": "activation_code",
    "seed": {
        "seed": "secret_seed"
    },
    "balance": {
        "confirmedBalance": 1,
        "unconfirmedBalance": 1,
        "usdConfirmedBalance": 7700,
        "usdUnconfirmedBalance": 7700
    }
}

Activate Wallet

Activates wallet by generated activation code.

Activation code can not be regenerated, so the activation code generated while creating wallet must be provided for activating wallet, otherwise the wallet can not used for further operations.

HTTP Request

POST /api/v1/coin/:coin/wallet/activate

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Body Parameters

Parameter Type Required Description
label String Yes The wallet label, as shown in the UI.
activationCode Integer Yes The generated activation code.

Response

Field Description
wallet Wallet ID
address Wallet address.
label The wallet label, as shown in the UI.
coin The digital currency type.
timestamp The date when that command was called.
activated The wallet activation status.
balance This variable showing amounts of confirmed and unconfirmed currencies in your wallet. Balance can contain following fields: confirmedBalance, unconfirmedBalance, usdConfirmedBalance and usdUnconfirmedBalance. Example: "balance": {"confirmedBalance": 1, "unconfirmedBalance": 1, "usdConfirmedBalance": 7700,"usdUnconfirmedBalance": 7700}.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/wallet/activate

Activation wallet response looks like this:

{
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR",
    "address": "2NAj7Pq5tX4LUj1PrX2ZJsdKEzHcz54LUj1",
    "label": "My test wallet",
    "coin": "btc",
    "timestamp": "2018-07-21T07:33:33.777Z",
    "activated": true,
    "balance": {
        "confirmedBalance": 1,
        "unconfirmedBalance": 1,
        "usdConfirmedBalance": 7700,
        "usdUnconfirmedBalance": 7700
    }
}

Create Address

Creates a new receive address for your wallet. Keep in mind, coins like ETH, ETC requires time and gas to generate address. You can check status of address by using index.

HTTP Request

POST /api/v1/coin/:coin/address/:wallet

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.

Body Parameters

Does not need body parameters.

Response

Newly created address object.

Field Description
id Address ID.
wallet Wallet ID.
label Address label.
address Wallet address.
coin The digital currency type.
timestamp The date when that command was called.
status Address generation status (Status: 'completed' / 'pending' / 'error').
index Address index.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/address/3a54537b-5b0e-4f21-aa37-KEzHczMwejf77R

The new address response looks like this:

{
    "id": "7721",
    "wallet": "3a54537b-5b0e-4f21-aa37-KEzHczMwejf77R",
    "label": "Main",
    "address": "2MyTxDHqnm6impeRsMHJ728jcvnReCEsqZ777",
    "coin": "btc",
    "timestamp": "2018-07-21T07:33:33.777Z",
    "status": "completed",
    "index": 1
}

Get Transactions

Returns 5 latest transactions for the specified wallet which includes outgoing and incoming transactions. This is useful when you have over 500 transactions as you will not be able to use the Web UI. Response will return 5 latest transactions and in order to get more, skip query parameters has to be passed in url. Example: In order to get full list of transactions, the following code should run inside for loop till it returns empty array. Considering we have 500 transactions, loop should run in a next way: ?skip=0, ?skip=5, ?skip=10 .... ?skip=500 which will return empty array and after loop should be stopped.

HTTP Request

GET /coin/:coin/wallet/txs/:wallet

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.

Response

Array of transaction objects

Field Description
type Transaction type (Type: 'send' / 'receive').
address Recipient address.
amount Amount of currency.
time Time that this transaction occured (Optional in some digital currencies).
blockhash Block Hash (Optional in some digital currencies).
txid Transaction ID.
blockLink Block link (Optional in some digital currencies).
txLink Transaction link.
confirmations Number of confirmations (Optional in some digital currencies).
status Transaction status (Status: 'confirmed' / 'pending').
fee Transaction fee (Optional in some digital currencies).
coinspecific Coinspecific can contain following fields: payment_id, messageId, destinationTag. Example: "coinspecific": {"payment_id": "11111"}.
branchtransaction Branch transaction.
curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/wallet/txs/3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR

Returns an object that looks like this:

[{
  "type": "send",
  "address": "2NAj7Pq5tX4LUj1PrX2ZJsdKEzHcz54LUj1",
  "amount": -0.12345678,
  "time": 15971246209,
  "blockhash": "00000000000188e52816338d688124d26a9sd23juce3n8vcok43ba2b9c1594",
  "txid": "382bdc0100cb037647ba18c4329e3d31b50e31366or34jvi3m9v490f45ae85c1479",
  "blockLink": "https://testnet.smartbit.com.au/block/00000000000188e52816338d688124d26a9sd23juce3n8vcok43ba2b9c1594",
  "txLink": "https://testnet.smartbit.com.au/tx/382bdc0100cb037647ba18c4329e3d31b50e31366or34jvi3m9v490f45ae85c147",
  "confirmations": "7+",
  "status": "confirmed",
  "fee": -0.00000721
 }]

Get Transaction by ID

Get blockchain transaction by it's hash. Keep in mind, different coins return transaction in different ways.

This is the recommended method to track funding withdrawals and deposits.

HTTP Request

GET /api/v1/coin/:coin/wallet/:wallet/tx/:tx

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type
wallet String Yes Wallet ID
tx String Yes Blockchain transaction details.

Response

Blockchain transaction object in JSON

curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/tx/3a54537b-5b0e-4f21-aa37-KE77zHczMwejf5R7

The JSON response will look similar to:

{
  "fee": 50000,
  "hash": "a3ce6dc8173cdd72ffb115d1b7bb28c1ee6013f84f091c94c1d8bf4a474de25c",
  "attachments": [
  ],
  "timestamp_nem": 107275688,
  "timestamp": "2018-08-21 14:54:33",
  "s_printablekey": "NAED5RMVNYN3IAR664VXTMLNPX27H7POEVB3ACMG",
  "signature": "66a97e5548d4dda5313d234f9a783a3d6564cd2a18f36ee717a0cbf08c5916c77932d4e98544e5b72d5c34b0443b445e15a2788042fe27ab66a7294f8d6a860f",
  "message_data": null,
  "mosaics": {
  },
  "block_height": 1772082,
  "amount": 16800000,
  "recipient_id": 333801,
  "r_publickey": "e9e7f71fa1c18c7bc44fc248af6c434627ca37a4d1b651e4430c77880b25e359",
  "deadline_nem": 107362088,
  "timestamp_unix": 1534863273,
  "id": 2684418,
  "r_printablekey": "NB5WKQU5ZVHNJJ7GIUIC3ON75I33SM6YIDA2JH2P",
  "message_type": null,
  "s_publickey": "8e0e71bb7366d75165f50adc672194e29c94bb5953b27d2456439eab8cf56e3b",
  "deadline": "2018-08-22 14:54:33",
  "signer_id": 333259
}

Get Transfers

Returns a list of pending outgoing transactions. Bitcron maintains internal outgoing transactions for easy tracking of Transaction Statuses.

HTTP Request

GET /api/v1/coin/:coin/wallet/transfers/:wallet

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
wallet String Yes Wallet ID.

Response

Field Description
id Transfer ID.
txid Transaction ID.
amount Amount of the currencies.
to The receiver address.
createdtime Transfer created time.
updatedtime Transfer updated time.
comletedtime Transfer completed time.
status Transfer status (Status: 'completed' / 'pending' / 'processing' / 'error').
errordetails Transfer error details.
curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/transfer/3a54537b-5b0e-4f21-aa37-KE77zHczMwejf5R7

The JSON response will look similar to:

[{
    "id": "b4ef7699-1e66-45bb-b322-481d7ec85f05",
    "txid": null,
    "amount": 17,
    "to": "2NAj7Pq5tX4LUj1Pr77X2ZJsdK7EzHcz54LUj1",
    "createdtime": "2018-07-17T10:57:37.029Z",
    "updatedtime": "2018-07-17T10:57:37.437Z",
    "completedtime": null,
    "status": "processing",
    "errordetails": null
}]

Get Transfer by ID

Return transaction from Bitcron (Not from blockchain) by provided Transfer ID. For outgoing transactions, Bitcron maintains internal records for easy tracking of Transaction Status, which has an Unique Transfer ID.

On providing this Unqiue Transfer ID, an internal transaction is returned which provides information like if the transaction is pending/failed.

HTTP Request

GET /api/v1/coin/:coin/wallet/transfer/:transferId

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.
transferId String Yes Transfer ID.

Response

Field Description
txid Transaction ID.
amount Amount of the currencies.
to The receiver address.
createdtime Transfer created time.
updatedtime Transfer updated time.
comletedtime Transfer completed time.
status Transfer status (Status: 'completed' / 'pending' / 'processing' / 'error').
errordetails Transfer errors details.
curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/transfer/3a54537b-5b0e-4f21-aa37-KE77zHczMwejf5R7

The JSON response will look similar to:

[{
    "txid": "41e1a1e7010b67b8266928a643e1f80293d4bb6f775ce36f16253d3eaaa61e18",
    "amount": 12.345,
    "to": "RooZq1t9MNcMKDjcWNWgseJahzeY8SPKws",
    "createdtime": "2018-08-18T09:29:55.109Z",
    "updatedtime": "2018-08-18T09:29:55.357Z",
    "completedtime": "2018-08-18T09:29:55.404Z",
    "status": "completed",
    "errordetails": null
}]

Send Coin

Sends digital currency to provided destination address.

HTTP Request

POST /api/v1/coin/:coin/transfer

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Body Parameters

Parameter Type Required Coins Description
from String Yes All Sender wallet ID.
to String Yes All Recipient wallet address.
passphrase String Yes All The passphrase to be used to decrypt the user key on this wallet.
amount Integer Yes All Amount to be sent to the recipient.
label String No All Any additional comment to attach to the transaction.
coinspecific String No XMR, BCN, XEM, XRP Coinspecific can contain following fields: payment_id, messageId, destinationTag. Example: "coinspecific": {"payment_id": "11111"}.

Response

Field Description
transferId Transfer ID (Bitcron's internal transfer id to track transaction. Please note this is not blockchain transaction ID/Hash).
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/transfer
{
    "transferId": "721ccb7fd24ece11cee2eed9c3758w85xc5a77cf9ee414cc52174e204da95d28c94da"
}

Freeze Wallet

Freezes the wallet. In case of emergency, you can freeze the BitCron wallet. This will prevent BitCron from signing any transactions.

HTTP Request

POST /api/v1/coin/:coin/freeze

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Body Parameters

Parameter Type Required Coins Description
wallet String Yes All Wallet ID.
passphrase String Yes All The passphrase to be used to decrypt the user key on this wallet.

Response

Field Description
statuscode The status code.
statustext The status description text.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/freeze
{
    "statusCode": "SUCC_COMPLETED",
    "statusText": "Successfully completed"
}

Unfreeze Wallet

Unfreezes a frozen wallet. To unfreeze Frozen wallets you will need to provide Mnemonic Recovery Phrase. After successful repose, the normal operation on the wallet will start working.

HTTP Request

POST /api/v1/coin/:coin/unfreeze

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Body Parameters

Parameter Type Required Coins Description
wallet String Yes All Wallet ID.
mnemonic String Yes All Mnemonic recovery phrases.
passphrase String Yes All The passphrase to be used to decrypt the user key on this wallet.

Response

Field Description
statuscode The status code.
statustext The status description text.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/unfreeze
{
    "statusCode": "SUCC_COMPLETED",
    "statusText": "Successfully completed"
}

Hide Wallet

Hides the wallet. In case the wallet is not in use then you can hide the wallet. Once the wallet is hidden, currently there is no way to Unhide the wallet, so this operation must be performed carefully.

This operation will prevent all the operation on the wallet and the wallet won't be shown anymore in the wallets list

HTTP Request

POST /api/v1/coin/:coin/hide

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Body Parameters

Parameter Type Required Coins Description
wallet String Yes All Wallet ID.
passphrase String Yes All The passphrase to be used to decrypt the user key on this wallet.

Response

Field Description
statuscode The status code.
statustext The status description text.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/hide
{
    "statusCode": "SUCC_COMPLETED",
    "statusText": "Successfully completed"
}

Unhide Wallet

At this moment we can not Unhide a wallet, but soon the feature will be introduced.


Wallet Sharing

A Bitcron wallet may be shared between multiple users. All users on a wallet share the same private key.

Security on a shared wallet is enforced by Bitcron, which requires that users must login and authenticate before co-signing. Wallet role defines how an individual user can access the wallet and what operations are allowed to perform on the wallet.

Wallet Roles

Role Description
administrator Change policy and manage users and settings on the wallet.
sender Initiate transactions on the wallet, which are subject to wallet policy.
viewer View transactions on the wallet.

Get Shared Wallets

Returns list of wallets which are shared with User.

HTTP Request

GET /api/v1/coin/:coin/sharedwallets

Query Parameters

Parameter Type Required Description
coin String Yes The digital currency type.

Response

Field Description
coin The digital currency type.
wallet Wallet ID.
address Wallet address.
label The wallet label, as shown in the UI.
freezed The wallet freezing status.
timestamp The date when that command was called.
hidden The wallet freezing status.
activated The wallet activation status.
balance This variable showing amounts of confirmed and unconfirmed currencies in your wallet. Balance can contain following fields: confirmedBalance, unconfirmedBalance, usdConfirmedBalance and usdUnconfirmedBalance. Example: "balance": {"confirmedBalance": 1, "unconfirmedBalance": 1, "usdConfirmedBalance": 7700,"usdUnconfirmedBalance": 7700}.
curl -X GET \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/sharedwallets

Returns an object that looks like this:

[{
    "coin": "btc",
    "wallet": "dc0239e6-57ds-4ccv-xxe3-9bc77c965ac9",
    "address": "DBzJ7gfv23r34Z5BWghchihSPyJNQKLCXfxjdr",
    "label": "My test wallet",
    "freezed": "false",
    "timestamp": "2018-07-21T07:33:33.777Z",
    "hidden": "false",
    "activated": true,
    "balance": {
        "confirmedBalance": 1,
        "unconfirmedBalance": 1,
        "usdConfirmedBalance": 7700,
        "usdUnconfirmedBalance": 7700
    }
}]

Share Wallet

Shares wallet of the User with specified User (In case of unregistered emails, wallet can not be shared).

HTTP Request

POST /api/v1/wallet-users

Body Parameters

Parameter Type Required Coins Description
email Integer Yes All Email of the user to share the wallet with.
wallet Integer Yes All Wallet ID.
role String Yes All User Role, e.g. administrator, sender, viewer.
passphrase String Yes All The passphrase to be used to decrypt the user key on this wallet.

Response

Field Description
statusCode The status code.
statusText The status description text.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/wallet-users
{
    "statusCode": "SUCC_UPDATED",
    "statusText": "Successfully updated"
}

Get Shared Wallet Users

Returns list of Users for shared wallet.

HTTP Request

GET /api/v1/wallet-users/:wallet

Query Parameters

Parameter Type Required Description
wallet String Yes Wallet ID.

Response

Returns array of Users.

Field Description
role User Role, e.g. administrator, sender, viewer.
email The user email to whom wallet was shared.
addedbyemail The user email by whom wallet was shared.
curl -X GET \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/wallet-users/33a90615-5c37-4f77-97b3-7edgf7edd797d

Returns an object that looks like this:

[{
    "role": "administrator",
    "email": "[email protected]",
    "addedbyemail": "[email protected]"
}]

Remove Shared Wallet User

Removes User from shared wallet (The User will no longer be able to access the wallet)

HTTP Request

POST /api/v1/wallet-users/delete

Body Parameters

Parameter Type Required Coins Description
email Integer Yes All Email of the user to share the wallet with.
wallet Integer Yes All Wallet ID.
passphrase String Yes All The passphrase to be used to decrypt the user key on this wallet.

Response

Field Description
statusCode The status code.
statusText The status description text.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/wallet-users/delete
{
    "statusCode": "SUCC_UPDATED",
    "statusText": "Successfully updated"
}

Wallet Webhook Operations

Wallet Webhook operations can be used to receive notification for incoming transactions on a wallet.

In case of an incoming transaction, Bitcron servers will make a POST http request to the URL defined inside Webhook with a JSON payload.

In case of not successful response, Bitcron servers will retry the webhook with an increasing delay between each retry (At this moment, maximum 100 times the webhook will be called in case of failed response).

Since anyone on the Internet can send HTTP requests to the Webhook URL, the request body payload should not be trusted. Please verify any information sent in the webhook by fetching the transfer data from Bitcron before processing the request.

Developers should take care to ensure that their application succeeds even in the cases of transient network error, or if receive the same webhook twice due to an improper acknowledgement.

Keep in mind, account based blockchains (TRON, ETH, ETC, IOTA) webhooks will arrive after transaction confirmation only.


List Wallet Webhook

Returns list of all Webhooks attached to wallet.

HTTP Request

GET /api/v1/webhook/:wallet

Query Parameters

Parameter Type Required Description
wallet String Yes Wallet ID.

Response

Returns an array of Webhook objects.

Field Description
id The webhook id.
name The webhook name.
url The webhook callback URL.
timestamp The Webhook creation time.
curl -X GET \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/webhook/b7a57dda-91d0-7d17-9ac5-7lea5ea007f1

Returns object that looks like this:

[{
      "id": "51ff9f9e-40cf-4354-accc-21b546d467b0",
      "name": "My test webhook",
      "url": "https://your-server.com/webhooks",
      "timestamp": "2018-07-21T07:33:33.777Z"
}]

Add Wallet Webhook

Adds a Webhook that will result in an HTTP callback at the specified URL from Bitcron when incoming transaction is found.

HTTP Request

POST /api/v1/webhook/

Body Parameters

Parameter Type Required Description
name String Yes The webhook name.
wallet String Yes Wallet ID.
url String Yes The webhook callback URL.

Response

Field Description
id Webhook ID.
name Webhook label.
url Webhook callback URL.
timestamp Webhook creation time.
curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/webhook/

Returns an object that looks like this:

{
  "id": "97fb007d-a929-4757-b140-c123sxd32v67a7",
  "name": "My test webhook",
  "url": "https://bitcron.io/api/v1/webhook/",
  "timestamp": "2018-07-21T07:33:33.777Z"
}

Example of Webhook Response

Field Description
webhookname Webhook label.
wallet Wallet ID.
address Wallet address.
type The operation type.
amount Amount of the currencies.
txid The transaction ID.
time Operation creation time.
confirmations Amount of the confirmations.
coin The digital currency type.
blockhash Block Hash (Optional in some digital currencies).

After transactions will happened webhook will print an object structured as follows:

{
"webhookname":"BTC - Test Webhook",
"wallet":"51ff9f9e-40c32-4455-a777-217b547d477b21",
"address":"3CXXP232fhhljfI78byKMtmukZxoSmv5CZy",
"type":"receive",
"amount":10,
"txid":"91f2db52a64aeb102233lfjdgo4474577fdbf4a6a1cd2bf9e6b48857ef4b2f8",
"time":"2018-07-01T13:15:20.000Z",
"confirmations":7,
"coin": "btc",
"blockhash": "00000000659a92af1c9619a6a1f12d9277dae6f81c6ee7ccaf4cbac0518b6f62"
}

Remove Wallet Webhook

Removes Webhook for the wallet. Once Webhook is removed, Bitcron Servers will no longer trigger HTTP callbacks to your URLs for incoming transactions.

HTTP Request

POST /api/v1/webhook/delete

Body Parameters

Parameter Type Required Description
id String Yes Webhook ID.
wallet String Yes Wallet ID.

Response

Returns an object containing and a boolean value indicating if the webhook was removed.

Field Description
statusCode The status code.
statusText The status description text.
curl -X POST \
-H "api-key: $API_KEY"
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/webhooks/delete

The above will print an object structured as follows:

{
    "statusCode": "SUCC_COMPLETED",
    "statusText": "Successfully completed"
}

Examples


Get Wallets

This example shows how to get existing wallets. By default response contains latest 6 wallets, in order to get more you need to pass in query ?skip=6 (where 6 can be replaces with the amount of wallets you already requested).

curl \
-H "api-key: $API_KEY"
https://bitcron.io/api/v1/coin/btc/wallets

Create Wallet

This example shows how to create new wallet.

curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/wallet

Create Address

This example shows how to generate new wallet address.

curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/address/3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR

Get List Transactions

This example shows how to get existing user transactions.

curl \
-H "api-key: $API_KEY" \
https://bitcron.io/api/v1/coin/btc/wallet/txs/3a54537b-5b0e-4f21-aa37-KEzHczMwejf5LR

Send Transactions

This example shows how to transfer currencies.

curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/btc/transfer

To send transaction JSON query should be like this:

{
  "from": "89cd664a-deeb-sd23-cy45-8a993206a897",
  "to": "38j7yERp2LVb23dcj7sd7WEQcHnApBuTRTT",
  "passphrase": "passphrase",
  "amount": 21
}

Send XRP Transactions

This example shows how to transfer Ripple.

curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/xrp/transfer

The above will print an object structured as follows:

{
  "from": "89cd664a-deeb-sd23-cy45-8a993206a897",
  "to": "38j7yERp2LVb23dcj7sd7WEQcHnApBu77TT",
  "coinspecific": {
  	"destinationTag": "474223721"
  },
  "passphrase": "passphrase",
  "amount": 21
}

Send XMR and BCN Transactions

This example shows how to transfer Monero or Bytecoin.

curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/xmr/transfer

The above will print an object structured as follows:

{
  "from": "89cd664a-deeb-sd23-cy45-8a993206a897",
  "to": "38j7yERp2LVb23dcj7sd7WEQcHnApBu77TT",
  "coinspecific": {
  	"payment_id": "474223717"
  },
  "passphrase": "passphrase",
  "amount": 21
}

Send NEM Transactions

This example shows how to transfer NEM.

curl -X POST \
-H "api-key: $API_KEY" \
-H "Content-Type: application/json" \
https://bitcron.io/api/v1/coin/xem/transfer

The above will print an object structured as follows:

{
  "from": "89cd664a-deeb-sd23-cy45-8a993206a897",
  "to": "38j7yERp2LVb23dcj7sd7WEQcHnApBu77TT",
  "coinspecific": {
  	"messageId": "474223714"
  },
  "passphrase": "passphrase",
  "amount": 21
}

Coin Specifics


Ethereum & Ethereum Classic Address Generation

Ethereum and Ethereum Classic do not support subaddresses by default. Bitcron uses cross accounts to make to identify the sender. Generation of address takes up to 10 minutes and mostly depends on the network. In order to generate address you need to have ethers on your account for providing gas fees. Cross accounts are smart contracts which retransfers the amount to the main account.


Ripple Wallet Generation

While creating Ripple wallet by default it is not active in Ripple Blockchain Network. In order to activate the wallet, you need to send 20 XRP to the wallet address.


Tron Cross Accounts

Tron by default does not support subaddresses. Bitcron uses cross account technique to identify the sender.


Siacoin Transaction ID

Siacoin txid is returned like this:

{"transactionids": ["b14f4c829c4c160f8420a1852357524e6ad8ea6450d18520ee4ec526d13e9ef1", "dcd703caa2a20104ce20bd1491fa2dbf67de6453d4ab9baba07d7f247855e806"]}


Support

Feel free to contact us if you need any further information.

Also you can register a ticket with your issue on Bitcron support portal.

Show Examples in: