RESTful API

bitHolla Vault provides full API setup for businesses and developers. Most of Vault APIs are private and require authentication through API key and secret.

You need to signup on Vault Dashboard and generate an API key under Vault section in order to use the platform.

Host URL: https://api.vault.bitholla.com/v1

Interactive API Explorer: https://api.vault.bitholla.com/docs

Generating API keys and accessing Vault through APIs are only allowed for business accounts. Contact sales@bitholla.com to upgrade your account.

You can use a 15 days trial business account upon request. Contact support@bitholla.com to activate your trial access.

Authentication

All vault APIs require authentication by the client.

Any authenticated request requires key and secret present in the request header. You are required to register your account and get your API keys in order to use bitHolla Vault kit.

Refer to the private API headers for authentication.

You can use the interactive API Explorer to place your key and secret and click Authorize and fill in Key and Secret fields use authenticated services in the API Explorer.

Authorization in Interactive API Explorer on https://api.vault.bitholla.com/docs

Do not add any values to Bearer field since that is not relevant to this scope and is used for bitHolla dashboard.

Endpoints

All vault endpoints are private endpoints and require authentication.

All currencies in Vault API should be in lower case in their 3,4 digit format. For example, Bitcoin should be used as btc when sent to the server.

Public

get
Coins

https://api.vault.bitholla.com/v1/coins
Get a list of all available coins on Vault
Request
Response
Request
Response
200: OK
[
"btc",
"eth",
"xrp",
"hex",
"usdt",
...
]

get
Wallet Name Check

https://api.vault.bitholla.com/v1/wallet/:wallet_name/check
Check to see if a wallet name is available
Request
Response
Request
Path Parameters
wallet_name
required
string
Response
200: OK

Private

post
Wallet

https://api.vault.bitholla.com/v1/wallet
This endpoint allows you to create a brand new single-address or multi-address wallet. Make sure you write down and store the random seed securely. You will never be able to get the seed later in future.
Request
Response
Request
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Body Parameters
name
required
string
Wallet name. Needs to be unique and can only contain alphanumeric characters, dash(-) and underscore(_). min 3, max 20 characters.
currency
required
string
currency name e.g. btc
is_testnet
optional
boolean
Type of wallet. If true, it uses testnet coins instead of real coins
webhook
optional
string
Endpoint webhook for notifications of this wallet
type
optional
string
single address wallet or multi address wallet. Default: multi
Response
200: OK
{
"name": "string",
"currency": "string",
"is_testnet": true,
"webhook": "string",
"type": "multi",
"seed": "string"
}

delete
Wallet

https://api.vault.bitholla.com/v1/wallet
Permanently delete a wallet.
Request
Response
Request
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Body Parameters
wallet_id
required
number
Id of the wallet being deleted
Response
200: OK
{
message: 'Successfullly deleted wallet with id: <wallet_id>.'
}

get
Wallets

https://api.vault.bitholla.com/v1/user/wallets
Get all user wallets.
Request
Response
Request
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Query Parameters
name
optional
string
Wallet name to filter by. Will return all wallets with name within the name.
currency
optional
string
Currency to filter by e.g. btc
limit
optional
number
Number of elements to return. Default: 50. Max 100
page
optional
number
Page of data to retrieve. Default: 1
order_by
optional
string
Field to order data by
order
optional
string
Direction of data. Values: asc, desc
start_date
optional
string
Starting date of queried data in date-time format
end_date
optional
string
Ending date of queried data in date-time format
Response
200: OK
{
"count": 0,
"data": [
{
"id": 0,
"name": "string",
"currency": "string",
"version": 0,
"is_testnet": true,
"webhook": "string",
"type": "multi",
"created_at": "2019-08-29T10:00:53.628Z",
"updated_at": "2019-08-29T10:00:53.628Z"
},
...
]
}

get
Master Address

https://api.vault.bitholla.com/v1/wallet/:wallet_name/master
Get a wallet's master address.
Request
Response
Request
Path Parameters
wallet_name
required
string
Name of wallet to get master address for
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Response
200: OK
{
"master": "string"
}

get
New Address

https://api.vault.bitholla.com/v1/wallet/:wallet_name/address/new
Generate a new address for a specific multi-wallet. Only multi-wallets can make new addresses.
Request
Response
Request
Path Parameters
wallet_name
required
string
Wallet name used for generating new address
Headers
key
required
string
Client API key
secret
required
string
Client API secret
Response
200: OK
{
"address": "address string",
"index": "address index"
}

get
Addresses

https://api.vault.bitholla.com/v1/wallet/:wallet_name/addresses
Get all wallet addresses.
Request
Response
Request
Path Parameters
wallet_name
required
string
Name of wallet to get addresses for
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Query Parameters
limit
optional
number
Number of elements to return. Default: 50. Max: 100
page
optional
number
Page of data to retrieve. Default: 1
order_by
optional
string
Field to order data by
order
optional
string
Direction of data. Values: asc, desc
start_date
optional
string
Starting date of queried data in date-time format
end_date
optional
string
Ending date of queried data in date-time format
Response
200: OK
{
"count": 0,
"data": [
{
"id": 0,
"address": "string",
"index": 0,
"created_at": "2019-08-30T08:25:46.252Z",
"updated_at": "2019-08-30T08:25:46.252Z",
"wallet_id": 0,
"Wallet": { ... }
},
...
]
}

get
Balance

https://api.vault.bitholla.com/v1/wallet/:wallet_name/balance
Get a wallet's balance (master address amount).
Request
Response
Request
Path Parameters
wallet_name
required
string
Name of wallet to get balance for
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Response
200: OK
{
"address": "string",
"balance": 0
}

get
Restart

https://api.vault.bitholla.com/v1/wallet/:wallet_name/restart
Restart a wallet
Request
Response
Request
Path Parameters
wallet_name
required
string
The wallet to restart
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Response
200: OK

post
Withdraw

https://api.vault.bitholla.com/v1/wallet/:wallet_name/withdraw
Withdrawal of funds to an external address. ALL JSON BODY OBJECTS MUST GO WITHIN A SINGLE ARRAY! Pro Tip: To withdrawal the total amount available in wallet_name, set the amount as 0.
Request
Response
Request
Path Parameters
wallet_name
required
string
Wallet name that funds need to be withdrawn from
Headers
key
required
string
Client API key
secret
required
string
Client API secret
Body Parameters
address
required
string
Receiving address of the withdraw
amount
optional
number
Amount to be withdrawn. Omit or set as 0 to withdraw the total amount in the wallet
meta
optional
object
Meta options added to the request. Set additional options within this object. Available options: - tag Tag value for XRP withdrawals - fee Fee to include with withdrawal, can be optimal (recommended fee), low (low priority fee), or min (lowest possible fee). Default value is optimal
Response
200: OK
{
"id": 1,
"txid": "string",
"currency": "btc",
"amount": 0.0001,
"type": "withdrawal",
"is_confirmed": true,
"fee": 0.000001,
"is_sweeped": true,
"updated_at": "2019-10-07T01:44:57.968Z",
"created_at": "2019-10-07T01:44:57.968Z"
}

post
Simple Withdraw

https://api.vault.bitholla.com/v1/wallet/:wallet_name/withdraw/simple
Perform a single withdrawal. Pro Tip: To withdrawal the total amount available in wallet_name, set the amount as 0.
Request
Response
Request
Path Parameters
wallet_name
required
string
Wallet name that funds need to be withdrawn from
Headers
key
required
string
Client API key
secret
required
string
Client API secret
Body Parameters
data
required
object
Contains the parameters address, amount, and meta below
address (in data)
required
string
Receiving address of the withdraw
amount (in data)
optional
number
Amount to be withdrawn. Omit or set as 0 to withdraw the total amount in the wallet
meta (in data)
optional
object
Meta options added to the request. Set additional options within this object. Available options: - tag Tag value for XRP withdrawals
fee
optional
string
Fee to include with withdrawal, can be: - optimal (recommended fee) - low (low priority fee) - min (lowest possible fee) Default value is optimal
Response
200: OK

post
Batch Withdraw

https://api.vault.bitholla.com/v1/wallet/:wallet_name/withdraw/batch
Perform multiple withdrawals at once. Currently only for BTC and BCH.
Request
Response
Request
Path Parameters
wallet_name
required
string
Wallet name that funds need to be withdrawn from
Headers
key
required
string
Client API key
secret
required
string
Client API secret
Body Parameters
data
required
array
An array that contains objects with the parameters address andamount below
address (in data)
required
string
Receiving address of the withdraw
amount (in data)
required
number
Amount to be withdrawn
fee
optional
string
Fee to include with withdrawal, can be: - optimal (recommended fee) - low (low priority fee) - min (lowest possible fee) Default value is optimal
Response
200: OK

put
Set Auto-Sweep

https://api.vault.bitholla.com/v1/wallet/:wallet_name/sweep
Turn on/off auto-sweep for a wallet
Request
Response
Request
Path Parameters
wallet_name
required
string
Name of wallet to configure auto-sweep
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Body Parameters
auto_sweep
required
boolean
Set auto-sweep functionality on/off
Response
200: OK

post
Sweep

https://api.vault.bitholla.com/v1/wallet/:wallet_name/sweep
Manually sweep a wallet's sub-addresses to an address. TIP: Pass an empty body object to sweep the sub-addresses to the wallet's master address.
Request
Response
Request
Path Parameters
wallet_name
required
string
Wallet to sweep
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Body Parameters
address
optional
string
The address to sweep the sub-address funds to. Leaving empty will sweep funds to the wallet's master address.
Response
200: OK

get
Transactions

https://api.vault.bitholla.com/v1/wallet/:wallet_name/transactions
Get a wallet's transactions.
Request
Response
Request
Path Parameters
wallet_name
required
string
Name of wallet to get transactions for
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Query Parameters
address
optional
string
Get transactions for a particular address
type
optional
string
Type of transactions. Values: deposit, withdrawal
address_id
optional
number
Get transactions for a particular Address ID
limit
optional
number
Number of elements to return. Default: 50. Max: 100
page
optional
number
Page of data to retrieve. Default: 1
order_by
optional
string
Field to order data by
order
optional
string
Direction of data. Values: asc, desc
start_date
optional
string
Starting date of queried data in date-time format
end_date
optional
string
Ending date of queried data in date-time format
Response
200: OK
{
"count": 0,
"data": [
{
"id": 0,
"txid": "string",
"amount": 0,
"currency": "string",
"type": "string",
"height": 0,
"is_confirmed": true,
"is_rejected": false,
"created_at": "2019-09-02T07:48:46.077Z",
"updated_at": "2019-09-02T07:48:46.077Z",
"wallet_id": 0,
"address_id": 0,
"Wallet": { ... }
},
...
]
}

get
Transaction Status

https://api.vault.bitholla.com/v1/wallet/transaction/status
Check the status of a transaction to a child address. If confirmed on the blockchain, amount will be swept to the master address. If a deposit transaction is missing, manual check with this endpoint is required to check the status of the deposit and this will automatically handle the deposit process.
Request
Response
Request
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Query Parameters
currency
required
string
Coin name of the transaction e.g. btc
transaction_id
required
string
Transaction ID of the transaction
address
required
string
Address the transaction was made to
is_testnet
optional
boolean
Specify whether or not the transaction was on the testnet. Default value: false.
Response
200: OK
{
"txid": "string",
"confirmation": 1,
"is_confirmed": true,
"is_suspicious": false,
"address": "string",
"currency": "btc",
"height": 1579424,
"amount": 0.0001
}

put
Webhook

https://api.vault.bitholla.com/v1/wallet/:wallet_name/webhook
Update a wallet's webhook. Learn more.
Request
Response
Request
Path Parameters
wallet_name
required
string
Name of wallet to update webhook URL
Headers
key
required
string
Client API key for authentication
secret
required
string
Client API secret for authentication
Body Parameters
url
required
string
The new URL of the wallet's webhook
Response
200: OK
{
"id": 0,
"name": "string",
"currency": "string",
"version": 0,
"is_testnet": true,
"webhook": "string",
"created_at": "2019-08-29T10:00:53.628Z",
"updated_at": "2019-08-29T10:00:53.628Z"
}