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 settlements@zerohash.com.
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 }