HollaEx Core

v1.22.0 - 2020-03-27

New Features

  • New endpoints added

    • GET /admin/constant

    • PUT /admin/constant

  • Admin constants can be accessed through the GET /admin/constant endpoint (for authorized users)

    • Example:

      constants: {
      ...,
      secrets: {
      broker: {
      quick_trade_rate: 0.005,
      trade_master_account_id: 5,
      quick_trade_expiration_time: 50
      },
      security: {
      token_time: "24h",
      withdrawal_token_expiry: 300000
      },
      captcha: {
      secret_key: "shhhhhhhhhh"
      },
      smtp: {
      port: 587,
      user: "me",
      server: "my-server.eu-northsouth-1.amazonaws.com",
      password: "shhhhhhhhhh"
      },
      vault: {
      key: "arena",
      name: "kemp",
      secret: "shhhhh",
      connected_coins: [
      "btc",
      "xrp",
      "usdt",
      "bch",
      "eth"
      ]
      },
      plugins: {
      s3: {
      key: {
      read: "glasses",
      write: "pen"
      },
      secret: {
      read: "shhhhh",
      write: "shhhhh"
      }
      },
      sns: {
      key: "razr",
      secret: "shhhhhh"
      },
      zendesk: {
      key: "ohmmmm"
      },
      freshdesk: {
      key: "prince",
      auth: "pshhhhh"
      },
      ...
      }
      }
      }
  • Admin can change constant values through the endpoint PUT /admin/constant

    • Body sent only needs to contain fields being updated

    • If field is passed, must contain all subfields

    • Example:

      data: {
      secrets: {
      smtp: {
      port: 587,
      user: "newUser",
      server: "newServer",
      password: "newPassword"
      }
      }
      }
    • Returned object is the updated constants

  • CSV download functionality

    • Users can now download data as CSV files by passing a query parameter format as csv e.g. GET /user/deposits?format=csv

    • Endpoints:

      • GET /admin/users

      • GET /admin/deposits

      • GET /admin/withdrawals

      • GET /admin/logins

      • GET /admin/audits

      • GET /admin/trades

      • GET /user/trades

      • GET /user/deposits

      • GET /user/withdrawals

Changes

  • Endpoint Changes

    • GET /admin/user, GET /admin/users, GET /admin/users/all => GET /admin/users

      • All three endpoints have been consolidated into one GET /admin/users

      • Passing query parameter id will return one user with that id

      • Passing query parameter search will return all users with the search string within his email or username

      • Passing query parameter pending as true will return all users that need to verify something

      • Not passing any of the above query parameters will return all users in exchange

Deprecated

  • Endpoints Deprecated

    • GET /admin/user

    • GET /admin/users/all

1.21.0 - 2020-02-19

New Features

  • Constants variables are stored in the database and available in /constant endpoint publicly.

    • Example:

      constants: {
      emails: {
      sender: "support@holla.tech",
      timezone: "UTC",
      send_email_to_support: true
      },
      captcha: {
      site_key: "6LeuOKoUAAAAAGVoZcSWXJH60GHt4crvIaNXn1YA"
      },
      plugins: {
      enabled: "freshdesk,zendesk,vault,kyc,chat,sms,bank",
      configuration: {
      s3: {
      id_docs_bucket: "bitholla-sandbox:ap-northeast-2"
      },
      sns: {
      region: "eu-west-1"
      },
      ...
      }
      },
      accounts: {
      kyc: "kyc@bitholla.com",
      admin: "yechan@bitholla.com",
      support: "support@bitholla.com",
      supervisor: "supervisor@bitholla.com"
      },
      api_name: "Demo HollaEx",
      defaults: {
      theme: "white",
      language: "en"
      },
      logo_path: "https://mybucket.amazonaws.com/kit/LOGO_IMAGE_LIGHT",
      admin_whitelist: [ ],
      allowed_domains: [
      "demo.bitholla.com"
      ],
      logo_black_path: "https://mybucket.amazonaws.com/kit/LOGO_IMAGE_DARK",
      valid_languages: "en,ko",
      user_level_number: "6",
      new_user_is_activated: true
      }
  • Endpoints added:

    • PUT /user/settings

      • Allows updates to a user's settings (Client theme, audio preferences, etc)

Changed

  • Endpoint Changes

    • GET /v1/constant

      • Response previously had a field called config that contained a nested field tiers. The config field has been renamed to constants and the tiers nested field is now called user_level_number.

      • The constants field returns all setup values that can be altered

    • PUT /admin/deposits/dismiss => PUT /admin/deposit/dismiss

      • Minor change to make deposit singular for clarity and consistency

    • Endpoint changes below are related to the new plugins functionality. All these endpoints are accessible via the plugins. The plugin endpoints do not need the /v1 base path. These plugins need to be enabled to be accessible.

      • PUT /user

        • This endpoint previously handled updates for user information (kyc) and settings. This has been split into two:

          • PUT /user/settings for settings

          • PUT /plugins/kyc/user for kyc

      • PUT /admin/user/{id}

        • This endpoint previously handled admin updates for user information and bank information. This has been split into two:

          • PUT /plugins/kyc/admin for kyc

          • POST /plugins/bank/admin for bank

        • The id path variable is now a query parameter and called user_id

      • POST /user/bank => POST /plugins/bank/user

      • POST /admin/user/bank/verify => POST /plugins/bank/verify

      • POST /admin/user/bank/revoke => POST /plugins/bank/revoke

      • POST /user/verification => POST /plugins/kyc/user/upload

      • POST /admin/user/{user_id}/upload => POST /plugins/kyc/admin/upload

        • user_id path variable is not a query parameter with the same name

      • GET /admin/verification => GET /plugins/kyc/id

      • POST /admin/user/id/verify => POST /plugins/kyc/id/verify

      • POST /admin/user/id/revoke => POST /plugins/kyc/id/revoke

      • GET /user/verify/sms => GET /plugins/sms/verify

      • POST /user/verify/sms => POST /plugins/sms/verify

Deprecated

  • Endpoints Deprecated (all these can now be accessed through plugins. Corresponding plugin endpoints are listed above)

    • PUT /user

    • PUT /admin/user/{id}

    • POST /user/bank

    • POST /admin/user/bank/verify

    • POST /admin/user/bank/revoke

    • POST /user/verification

    • POST /admin/user/{user_id}/upload

    • GET /admin/verification

    • POST /admin/user/id/verfiy

    • POST /admin/user/id/revoke

    • GET /user/verify/sms

    • POST /user/verify/sms

1.20.5 - 2019-12-27

New Features

  • Maximum number of concurrent orders in the queue is introduced using MAX_ORDER_QUEUE and if the number of orders in the matching engine is more than that the client receives System overloaded error message.

Deprecated

  • Stream no longer sends order_queued web socket notification starting from this version.

1.20.0 - 2019-12-16

New Features

  • Admin can now update a user's role to admin, support, supervisor, kyc, or user using PUT /admin/user/role.

  • Admin can now cancel an order.

  • Admin can now query all orders by the side e.g. buy or sell.

  • Orders returned from using GET /admin/orders now include a User value containing the associated user's id, email, and username.

  • HMAC-SHA256 authentication added

  • Endpoints added

    • DELETE /admin/order

      • Takes order_id of the order and user_id of the order's owner as query parameters.

    • PUT /admin/user/role

      • Takes user_id as a query parameter

      • Body of the request should have a role key with the value being the user's new role

        • role can be one of admin, support, supervisor, kyc, or user.

      • Example:

        {
        "role": "admin"
        }

Changed

  • Endpoints Changed

    • GET /admin/orders

      • Now takes side as a query parameter. Must be one of buy or sell.

        • buy orders are returned in price descending order.

        • sell orders are returned in price ascending order.

    • PUT /admin/deposit/verify

      • Now only takes transaction_id of deposit to verify as query parameter.

    • PUT /admin/deposits/{deposit_id}/dismiss

      • Changed to /admin/deposits/dismiss

      • Now only takes transaction_id of deposit to dismiss as query parameter.

1.19.6 - 2019-10-14

Changed

  • Endpoint changes:

    • /admin/checkTransaction/{currency}/{transaction_id} => /admin/checkTransaction

      • currency and transaction_id are now query parameters

      • Added is_testnet query parameter that takes a boolean value

1.19.5 - 2019-10-03

New Features

  • Added a config field with a tiers value in the endpoint /constant showing the number of user tiers for the exchange.

    • Example:

      {
      "coins": {},
      "pairs": {},
      "config": {
      "tiers": "4"
      }
      }
  • Added a status value in the endpoint /health showing whether or not the exchange is running and set up properly.

    • Example:

      {
      "name": "",
      "version": "",
      "host": "",
      "basePath": "",
      "status": true
      }

1.19.0 - 2019-09-27

New Features

  • Endpoints added:

    • GET /admin/withdrawals

    • GET /admin/orders

    • GET /admin/pairs

Changed

  • Base path changed from /v0 to /v1

  • Default maximum user verification level changed from 6 to 4.

  • Endpoint changes:

    • GET /admin/pairs accepts an optional pair parameter.

    • PUT /admin/pairs now allows admin to change more than maker_fees and taker_fees.

      • min_size

      • max_size

      • min_price

      • max_price

      • increment_size

      • increment_price

      • active

    • /admin/coins now accepts GET requests for getting information for coins. Pass a currency query parameter for getting one specific coin.

    • GET /admin/deposits no longer requires at least one query parameter for access.

    • Added limit and page query parameters that allow users and admins to paginate their queries for the following endpoints:

      • GET /admin/deposits

    • Added order_by and order query parameters that allow users and admins to order their queried data by order_by value in asc or desc form

      • GET /user/trades

      • GET /admin/trades

      • GET /admin/deposits

      • GET /admin/withdrawals

      • GET /admin/orders

    • Added start_date and end_date query parameters that allows users and admins to narrow down their data queries to a certain timeframes for the following endpoints:

      • GET /user/trades

      • GET /user/deposits

      • GET /user/withdrawals

      • GET /user/logins

      • GET /admin/trades

      • GET /admin/deposits

      • GET /admin/logins

      • GET /admin/audits

    • Name changes:

      • GET /admin/user/{user_id}/tradesGET /admin/trades

      • GET /admin/user/{user_id}/loginsGET /admin/logins

      • GET /admin/user/{user_id}/auditsGET /admin/audits

        • user_id path variable is now a query parameter and is not required.

      • GET /admin/coins/{currency}GET /admin/coins

        • currency path variable is now required in the body of the PUT request.

      • GET /admin/pairs/fees/{pair} && PUT /admin/pairs/fees/admin/pairs

        • pair path variable is now required in the body of the PUT request.

    • Variable name changes:

      • proofOfResidencyproof_of_residency

        • POST /user/verification

        • POST admin/user/{user_id}/upload

      • tokenIdtoken_id

        • DELETE /user/tokens/{tokenId}

      • orderIdorder_id

        • GET, DELETE /user/orders/{orderId}

      • orderByorder_by

        • GET /user/deposits

        • GET /user/withdrawals

      • transactionIdtransaction_id

        • DELETE /user/withdrawals

        • GET /admin/checkTransaction/{currency}/{transactionId}

      • isConfirmedis_confirmed

        • POST /deposit/{currency}

      • confirmationsconfirmation

        • POST /deposit/{currency}

      • depositIddeposit_id

        • PUT /admin/deposits/{depositId}/dismiss

Fixed

  • Fixed a bug where GET /admin/stats was returning an empty object for balance attribute