Changelog

v.1.11.0 - 2020-06-23

Changes

  • Webhook Test

    • Previous version required user to enter a mock transaction manually

    • The process is simplified to be more similar to the actual webhook flow

    • Endpoint changed from POST /vault/webhook/test to GET /vault/:wallet_name/webhook/test

    • Endpoint only requires the name of a user's wallet (:wallet_name)

    • Vault will send two mock transactions to the wallet's webhook URL separated by 10 seconds

      • First transaction will be pending

      • Second transaction will be completed

    • If the first request fails, this endpoint will throw a 400 error

  • Endpoint Changes

    • POST /vault/webhook/test => GET /vault/:wallet_name/webhook/test

v.1.10.0 - 2020-05-22

New Features

  • Can now filter transactions by transaction id

  • Manual/Auto sweeping wallets

    • Users can now configure wallets to sweep funds in sub-address automatically or manually using the endpoint PUT /vault/:wallet_name/sweep

      • Endpoint takes body with the boolean value auto_sweep

      • Wallets with auto_sweep set to true will be swept by vault every ~5 minutes

      • New wallets will have auto_sweep set to false by default

    • Users can now manually sweep their wallets to an address using the endpoint POST /vault/:wallet_name/sweep

      • Endpoint takes body with optional string value address

        • The funds will be swept to the given address

        • Passing an empty body will sweep the sub-address funds to the wallet's master address

  • Wallet restart

    • Users can now restart their wallets using the endpoint GET /vault/:wallet_name/restart

  • New endpoints:

    • PUT /vault/:wallet_name/sweep

    • POST /vault/:wallet_name/sweep

    • GET /vault/:wallet_name/restart

Changes

  • Endpoint changes

    • GET /vault/:wallet_name/transactions

      • Added txid query filter that filters result by transaction id

  • Wallet sweep functionality

    • Wallets were originally automatically swept by Vault

    • Users now have the option to manually sweep wallets

v.1.9.0 - 2020-03-27

New Features

  • XLM (Stellar) Support

  • XAUT (Tether Gold) Support

v.1.8.0 - 2020-01-28

New Features

  • USD Coin (USDC) Support

  • LEOcoin (LEO) Support

  • Delete Wallet

    • DELETE /vault/wallet

    • Users can now delete their own wallets.

    • Must pass the id of the wallet (wallet_id) in the request body

    • Example:

      {
      wallet_id: 1
      }

  • Simple Withdraw

    • POST /vault/{wallet_name}/withdraw/simple

    • Same functionality as POST /vault/{wallet_name}/withdraw but with better body data structure

    • Body includes data which is a single object with address, amount, and meta and an optional fee

    • Example:

      {
      data: {
      address: 'string',
      amount: 0.001,
      meta: {
      tag: 'string'
      }
      },
      fee: 'string'
      }
  • Batch Withdraw

    • POST /vault/{wallet_name}/withdraw/batch

    • Users can now perform multiple withdrawals to different addresses

    • Only works with BTC and BCH

    • Body includes data which is an array of objects with the individual withdrawal addresses and amounts and an optional fee.

    • Example:

      {
      data: [
      {
      address: 'string',
      amount: 0.001
      },
      ...
      ],
      fee: 'string'
      }
  • Endpoints added:

    • POST /vault/{wallet_name}/withdraw/simple

    • POST /vault/{wallet_name}/withdraw/batch

    • DELETE /vault/wallet

v.1.7.0 - 2019-12-16

New Features

  • Dai (DAI) Support

  • Maker (MKR) Support

v.1.6.0 - 2019-12-12

New Features

  • Monero (XMR) support

    • Only available for business wallets

    • Requires a special setup process

v.1.5.0 - 2019-11-25

New Features

  • BCH support now available

  • Single address support

    • Users can now choose between creating a single address wallet and multi address wallet. Single address wallets cannot generate new addresses.

  • Endpoints added

    • GET /vault/{wallet_name}/address/new

      • Same functionality as GET /vault/{wallet_name}/address

Changes

  • Endpoint changes

    • POST /vault/wallet

      • Added type field to body object that specifies the type of wallet being created. Can be one of single or multi. Default value is multi.

    • GET /vault/{wallet_name}/address

      • Changed to GET /vault/{wallet_name}/address/new

v.1.4.0 - 2019-11-13

New Features

  • Check wallet name availability

    • Users can now check to see if a wallet name is available by using GET /vault/{wallet_name}/check.

  • See available Vault coins

    • Users can now see all the available coins on Vault using GET /vault/coins.

  • Filter wallets by name

    • Users can now filter wallet queries by a name.

    • GET /vault/user/wallets now has a name query parameter. Vault will return all wallets with names that include the name value.

  • Endpoints added

    • GET /vault/{wallet_name}/check

    • GET /vault/coins

  • New coins are supported

    • HollaEx (HEX)

    • USD Tether (USDT)

Changes

  • Endpoint changes

    • GET /vault/user/wallets

      • Added a name query parameter

v.1.3.0 - 2019-10-31

New Features

  • Withdrawal fee customization

    • Users can now specify the transaction fee of a withdrawal.

    • In the meta tag of POST /vault/{wallet_name}/withdraw, there is an added field called fee where users can choose to add an optimal, low, or min

      • optimal: Recommended fee required to make the withdrawal

      • low: Low priority fee

      • min: Lowest possible fee

        • Example:

          "meta": {
          "fee": <optiomal, low, min>
          }
    • By default, Vault uses the optimal fee if users don't add a fee field

    • Fees can only be one of these three values and a fully custom fee is not allowed. The lower the fee, the longer it could take for it to be confirmed on the blockchain so we recommend using optimal fee.

  • Maximum withdrawal amount

    • Users can now choose to withdraw the total amount for a wallet

    • The amount field in the body of a POST /vault/{wallet_name}/withdraw request is now optional. To withdraw the total amount in the wallet, either omit the amount field or set it as 0.

  • Address filtering for transactions

    • Users can now filter transactions by their associated addresses.

    • GET /vault/{wallet_name}/transactions now takes an address query parameter. Set this parameter as an address to filter the request.

  • Rejected transactions

    • A is_rejected field has been added to transactions which indicates whether or not the transaction was rejected by the blockchain.

    • A rejected transaction is final and means that it has failed.

Changes

  • Endpoint changes

    • base path /v0 updated to /v1

      • /v0 is still supported but users should use /v1 going forward.

    • POST /vault/{wallet_name}/withdraw

      • Added a fee field in the meta tag where users can choose a withdrawal fee.

      • amount field is now optional and can be omitted or set to 0 to indicate a maximum withdrawal.

    • GET /vault/{wallet_name}/transactions

      • Added address query parameter that filters transactions by address.

v.1.2.0 - 2019-10-08

New Features

  • Vault now listens for both testnet and mainet transactions on the blockchain and sends notification for all coins in both environments

  • Ethereum ERC20 contracts are now connected and fully supported

  • Previously, XRP wallets with lower than 20xrp displayed an error for their balances. This has been fixed and the wallets now show 0 if they have less than 20xrp.

    • 20xrp is required to start an XRP wallet on the blockchain.

Changes

  • Endpoint Changes

    • /vault/transaction/status && /dash/vault/transaction/status

      • Added a new query parameter is_testnet. It is a boolean variable and specifies if the transaction being checked was on the testnet or not. The default value is false.

    • vault/webhook/test

      • Request body now has a is_testnet field that specifies if the transaction being checked was on the testnet or not. The default value is false.

1.1.0 - 2019-09-30

New Features

  • Added a new meta attribute to the body being sent withPOST /vault/:wallet_name/withdraw . It is an optional attribute that is an object where a user can send additional variables with a withdraw request. For example, XRP withdrawals require a tag value. Users can send this tag within the meta attribute.

    • Example:

      [
      {
      "address": "string",
      "amount": 0.1,
      "meta": {
      "tag": 901224830
      }
      }
      ]

1.0.0 - 2019-09-24

New Features

  • Master Wallet Address

    • Every wallet will have a master address that holds all funds deposited to either the master address directly or to any of its child addresses.

    • The lifecycle of a deposit made to a child address is as follows:

      • Deposit is made to the address

      • Deposit is waiting to be confirmed on the blockchain

      • Once confirmed, the funds will wait to be swept to the master wallet

    • All deposits made to child addresses will eventually be transferred to the master address through a process called a sweep. A sweep is when Vault transfers all blockchain-confirmed funds in child addresses to the master address.

    • Every sweep is considered an additional transaction and will have an associated transaction fee. Sweeps are performed every minute.

    • There will be rare cases in which a deposit made to an address is confirmed on the blockchain but not swept to the master address. In this case, the wallet owner should make a GET request to /vault/transaction/status with the currency, transaction_id, and address of the deposit as query parameters. Vault will check the blockchain to confirm the deposit and sweep the funds to the master address.

    • Learn more in the Advance Guide.

  • Endpoints Added

    • GET /vault/{wallet_name}/master

      • Get the master address for wallet_name

    • GET /vault/{wallet_name}/balance

      • Get the balance on the master address for wallet_name

    • GET /vault/transaction/status

      • Have Vault check the status of a transaction. If confirmed on the blockchain, Vault will sweep the funds to the master address. Query parameters currency, transaction_id, address required.

Changes

  • api-key and api-secret are now called key and secret, respectively. They are still required in the header for authorization purposes.

  • Endpoints Changed

    • POST /vault/{wallet_name}/withdraw

      • Originally required a JSON object within the body.

      • Now requires an array of JSON objects.

        • This endpoint will eventually allow multiple withdrawals to be made within a single blockchain transaction. For now, it only performs the first withdrawal JSON object in the array.

      • currency is no longer required in the JSON object.