New multiple deposit address creation capability for Omnibus Model
Zero Hash today launched the ability for platforms using the Omnibus Model configuration to create multiple unique deposit addresses for a given asset.
If you would like to enable this feature, please reach out to [email protected].
This functionality can now be used by a platform to create multiple unique ETH deposit addresses, for example. Previously each platform code would use a single ETH deposit address.
This functionality can also be used by end participants of a platform to create multiple deposit addresses for a given asset.
Multiple deposit addresses per asset can be created via the POST /deposits/digital_asset_address API endpoint, and deposit activity tracked via the balances websocket and GET /deposits API. The websocket allows the Platform to tie back relevant activity to each end-customer and update its internal ledgers.
In order to support the creation of unique deposit addresses for the Omnibus Model, the following updates to the balances websocket GET /deposits endpoint have been made:
- Added a new attribute called received_address to the balances websocket GET /deposits endpoint, which is the blockchain deposit address for the receiving participant.
- Renamed the address attribute to source in the websocket.
An example of how the updated websocket response will look:
{
"messageType": "balance-updated",
"body": {
"account_id": "c983ae9c-ce26-4988-b646-20614e26ffc1",
"participant_code": "YWCZO1",
"account_group": "YWCZO1",
"account_label": "general",
"account_type": "available",
"asset": "BTC",
"balance": "49.4954334",
"run_id": 316696,
"run_type": "deposit",
"movements": [
{
"movement_timestamp": "2022-09-09T18:36:10.950704Z",
"movement_id": "a76e98d8-3e0d-4bb3-9f6f-10b2ea865fb6",
"movement_type": "deposit",
"deposit_reference_id": "84b4b0cfbddd117b4aef66bfb9f11d9f2c295d7dba7c736cb444aebffd243114-0",
"change": "0.00010000",
"source": "tb1qkxssqqqrpwgvuwq0xlvypzjfkszy0z5uzh73j3",
"received_address": "tb1q82je56jyd8yjr8lp3g3smeykmu9x47v549v58t"
}
],
"run_timestamp": "2022-09-09T18:36:10.886Z"
}
An example of how the updated GET /deposits response will look:
{
"message": [
{
"settle_timestamp": 1661914900880,
"account_id": "a47c6a91-aabd-49bf-b00c-c2ba8e70c45d",
"movement_id": "04518694-67d6-4a7f-ac52-83054e32bf21",
"participant_code": "4CO1IV",
"account_group": "4CO1IV",
"account_label": "general",
"asset": "BTC",
"amount": "0.02819541",
"reference_id": "ced518ed42b60720a4aa4d14bd588b3f48f559a4889fb0d34f65a4fd26e9f392-0",
"source": "n3417A3XkhzkVPdM1Mp2cJXY59PWcKhJRC",
"received_address": "tb1q5wpvv3psyc9ammwnaj47cnu2h2kmefszwm45wm",
"run_id": "165049"
},
{
"settle_timestamp": 1661353676845,
"account_id": "944b175b-3c6d-43a8-adf1-7a7c952e89b0",
"movement_id": "ea722837-1410-4f40-aea0-93dd812e0ca9",
"participant_code": "4CO1IV",
"account_group": "4CO1IV",
"account_label": "general",
"asset": "USD",
"amount": "10000.00",
"reference_id": "fake_236fd0b6-6ed2-422c-91e3-2b900ca0593f",
"source": null,
"received_address": null,
"run_id": "164724"
}
],
"page": 1,
"page_size": 200,
"total_pages": 1,
"count": 2
}