Ask us anything. We're here to help.

2022-09-09 - 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. 

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
}