Before this release, platform operators could only query deposits made by themselves via GET /deposits. Going forward, they will be able to retrieve those plus any made by their customers
When using, be sure to specify the query param include_customer_deposits = true if you want customer deposits included. If you omit, customer deposits will be omitted. This is so that vanilla GET /deposits calls are not affected performance-wise.
Several platforms recently requested we add the transaction timestamp to the JSON response for easy record keeping. Zero Hash is proud to announce the development team has added the time of execution to the /liquidity/execute endpoint. This information has always been available, but is now included within the trade confirmation directly after execution.
Use Cases
This information can be used to directly populate the customer trade confirmation and any subsequent trade reporting for customer records. This would include email correspondence, in-app trade notifications, trade information reported on statements, and order history.
Example JSON Response
Below is an example of the new transaction_timestamp in action:
Clients can now subscribe to a Websocket feed in order to receive an initial balance list for all of their accounts. While still connected, they can then receive messages that contain balance-update details.
Use Cases:
Platforms that enable on-chain deposits for their customers can be notified of new deposits (including important data points, such as transaction hash).
Platforms can stay up to date on withdrawal updates (both on-chain and fiat).
Session tags are now available via the /trade API endpoint. These tags help identify the session a trade was executed within and provide for a discrete start and finish based on the selected settlement schedule.
More information on how to use session tags is available here.
When generating API keys on the portal, you now have the ability to set a required number of approvals amount.
By default, each participant's has been set to zero. If you would like this changed, please get in touch with a Zero Hash representative so that they can make the configuration change.
Until an API Key is officially approved, no calls can be made by that newly created key.
You can view the API Key status via the "status" column:
"CREATED" indicates that the API key has been created but is pending additional portal user approval (based on the approval configuration of your platform).
"APPROVED" indicates that the API key's approval configuration has been satisfied, and the key is ready to be used to make calls to our API.
You can also view the audit history via the "details" button, including who on your team has already created or approved a key:
API Key Expirations
When creating new keys (after clicking "Add API Key"), you can set an expiration date. After the expiry, the key will no longer be functional.
If you would not like the key to expire, simply leave the field blank.
This mechanism can help force your organization to implement frequent key change-outs.
We have deployed all changes needed in order to support Elrond, SHIBA INU, and Aave for settlement and liquidity services in both the certification and production environment. These assets are now fully accessible and do not require any additional adjustments to begin using for purposes of settlement, liquidity, or withdrawal.
Elrond is a highly scalable, fast, and secure blockchain platform for distributed apps, enterprise use cases, and the new internet economy.
Aave is an open-source and non-custodial liquidity protocol for earning interest on deposits and borrowing assets.
SHIBA INU is an ERC-20 based digital asset with unlimited supply and closely rivals DOGE.
We have launched a duo of new Awards endpoints that are closely related and are designed to be used sequentially. The primary use case is to facilitate crypto awards payments as part of a promotional program, prize pool, bonus pool, giveaway, etc. This endpoint has built-in liquidity- the purchasing and then the distribution/settlement both take place within the Zero Hash ecosystem.
New Endpoints
POST /awards/fund
Purpose: This endpoint allows the client to specify the amount, quoted currency, and asset that will ultimately be distributed to their customers. The resulting purchase will reside in a float account instantly. Other Notes:
Similar to Liquidity and Rewards endpoints, clients can specify a quantity (amount of BTC, for example) or a total (US Dollar amount of BTC).
This endpoint is functional for all assets supported by ZHLS, described here.
Purpose: After the initial fund, this endpoint is used to evenly distribute the purchased crypto among the participants that you specify in the payload. The exact amount will be specified by the client in this call as well. Payload example: In this example, let's say you want to distribute the 1 BTC among 4 of your customers.
There is a new API Key Permission for "Awards". You will need to enable this when you create new API keys in order to interact with the above endpoints:
Confirmation
To validate that the fund or distribute transactions have fully settled, you can take the trade_id's from the response and then poll GET /trades:trade_id endpoint. If trade_state = "terminated", then you can be confident that your customer has received the funds in their account. Response examples:
It is quite possible that your platform's promotional campaign has a large number of entrants, say 100,000. The internet has its limits, and 100,000 participant_codes do not fit within a single POST /awards/distribute request. We recommend breaking these into chunks to ensure that all distributions can be made successfully.
There are 2 new filter options on the GET /withdrawals/requests endpoint:
status
requested_timestamp
Status
You can filter for the following statuses:
PENDING
SETTLED
REJECTED
APPROVED
Requested Timestamp
requested_timestamp filters withdrawal requests based on a given timestamp in milliseconds (1593798130060) or nanoseconds (1593798130060000000) using the following params for the following filter types:
[gt] greater than a given timestamp, e.g. requested_timestamp[gt]=1593798130060
[gte] greater than or equal to a given timestamp, e.g. requested_timestamp[gte]=1593798130060
[e] equal to a given timestamp, e.g. requested_timestamp[e]=1593798130060
[lt] less than a given timestamp e.g. requested_timestamp[lt]=1593798130060
[lte] lower than or equal to a given timestamp, e.g. requested_timestamp[lte]=1593798130060
Combinations are also possible, e.g. to find withdrawal requests between 1593798130555 and 1593798130777 you can use the next combination requested_timestamp[gt]=1593798130555&requested_timestamp[lt]=1593798130777.