Unified Deposit Address

Endpoints to create and manage unified deposit addresses

Create a new unified deposit address for a user

post

Create a new unified deposit address for a user within an organization. Requires authentication.

Body
userIdstringRequired

Unique user identifier

Example: user-1234
destinationChainIdintegerRequired

Destination chain ID (EVM chainId)

Example: 8453
destinationAddressstringRequired

Destination wallet address (EVM address)

Example: 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
destinationTokenAddressstringRequired

Destination token contract address (EVM address)

Example: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Responses
201
Unified deposit address created successfully
application/json
post
POST /unified-deposit-address/create HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 185

{
  "userId": "user-1234",
  "destinationChainId": 8453,
  "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
  "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
}
{
  "success": true,
  "data": {
    "userId": "user-1234",
    "orgId": "org-5678",
    "destinationChainId": 8453,
    "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
    "enclaveId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "ACTIVE",
    "createdAt": "2024-06-01T12:00:00.000Z",
    "updatedAt": "2024-06-01T12:00:00.000Z",
    "depositAddresses": {
      "evm_deposit_address": [
        {
          "chainId": 1,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xethmainnet...",
          "deploymentBlock": 100000
        },
        {
          "chainId": 8453,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xbase...",
          "deploymentBlock": 200000
        },
        {
          "chainId": 42161,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xarbitrum...",
          "deploymentBlock": 300000
        }
      ]
    }
  }
}

Fetch unified deposit address details for a specific user

get

Retrieve the unified deposit address for a user within an organization. Requires authentication.

Path parameters
userIdstringRequired

Unique user identifier

Example: user-1234
Responses
200
Unified deposit address found
application/json
get
GET /unified-deposit-address/user/{userId} HTTP/1.1
Host: 
Accept: */*
{
  "success": true,
  "data": {
    "userId": "user-1234",
    "orgId": "org-5678",
    "destinationChainId": 8453,
    "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
    "enclaveId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "ACTIVE",
    "createdAt": "2024-06-01T12:00:00.000Z",
    "updatedAt": "2024-06-01T12:00:00.000Z",
    "depositAddresses": {
      "evm_deposit_address": [
        {
          "chainId": 1,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xethmainnet...",
          "deploymentBlock": 100000
        },
        {
          "chainId": 8453,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xbase...",
          "deploymentBlock": 200000
        },
        {
          "chainId": 42161,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xarbitrum...",
          "deploymentBlock": 300000
        }
      ]
    }
  }
}

Update destination details for a unified deposit address

put

Update the destination chain, address, and token for a user's unified deposit address. Requires authentication.

Path parameters
userIdstringRequired

Unique user identifier

Example: user-1234
Body
destinationChainIdintegerRequired

Destination chain ID (EVM chainId)

Example: 8453
destinationAddressstringRequired

Destination wallet address (EVM address)

Example: 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
destinationTokenAddressstringRequired

Destination token contract address (EVM address)

Example: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Responses
200
Destination details updated successfully
application/json
put
PUT /unified-deposit-address/user/{userId}/destination HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 164

{
  "destinationChainId": 8453,
  "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
  "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
}
{
  "success": true,
  "message": "Destination details updated successfully",
  "data": {
    "userId": "user-1234",
    "orgId": "org-5678",
    "destinationChainId": 8453,
    "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
    "enclaveId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "ACTIVE",
    "createdAt": "2024-06-01T12:00:00.000Z",
    "updatedAt": "2024-06-01T12:00:00.000Z",
    "depositAddresses": {
      "evm_deposit_address": [
        {
          "chainId": 1,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xethmainnet...",
          "deploymentBlock": 100000
        },
        {
          "chainId": 8453,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xbase...",
          "deploymentBlock": 200000
        },
        {
          "chainId": 42161,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xarbitrum...",
          "deploymentBlock": 300000
        }
      ]
    }
  }
}

Fetch all unified deposit addresses for an organization

get

Retrieve all unified deposit addresses for the authenticated organization. Supports optional status filter and pagination. If all=true is provided, returns all addresses for the organization (ignores pagination).

Query parameters
statusstring · enumOptional

Filter by deposit address status

Example: ACTIVEPossible values:
limitinteger · min: 1 · max: 100Optional

Number of results to return (pagination)

Default: 50Example: 20
offsetintegerOptional

Offset for pagination

Default: 0Example: 0
allbooleanOptional

If true, fetch all addresses for the organization (ignores pagination)

Example: true
Responses
200
List of unified deposit addresses
application/json
get
GET /unified-deposit-address/organization HTTP/1.1
Host: 
Accept: */*
{
  "success": true,
  "data": [
    {
      "userId": "user-1234",
      "orgId": "org-5678",
      "destinationChainId": 8453,
      "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
      "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
      "enclaveId": "550e8400-e29b-41d4-a716-446655440000",
      "status": "ACTIVE",
      "createdAt": "2024-06-01T12:00:00.000Z",
      "updatedAt": "2024-06-01T12:00:00.000Z",
      "depositAddresses": {
        "evm_deposit_address": [
          {
            "chainId": 1,
            "contractAddress": "0x1111111111111111111111111111111111111111",
            "deployed": true,
            "deploymentTxHash": "0xethmainnet...",
            "deploymentBlock": 100000
          },
          {
            "chainId": 8453,
            "contractAddress": "0x1111111111111111111111111111111111111111",
            "deployed": true,
            "deploymentTxHash": "0xbase...",
            "deploymentBlock": 200000
          },
          {
            "chainId": 42161,
            "contractAddress": "0x1111111111111111111111111111111111111111",
            "deployed": true,
            "deploymentTxHash": "0xarbitrum...",
            "deploymentBlock": 300000
          }
        ]
      }
    }
  ]
}

Fetch unified deposit address details by internal enclaveId

get

Retrieve the unified deposit address by its internal enclaveId (UUID v4). Requires authentication. Intended for internal services.

Path parameters
enclaveIdstring · uuidRequired

Internal enclaveId (UUID v4)

Example: 550e8400-e29b-41d4-a716-446655440000
Responses
200
Unified deposit address found
application/json
get
GET /unified-deposit-address/enclave/{enclaveId} HTTP/1.1
Host: 
Accept: */*
{
  "success": true,
  "data": {
    "userId": "user-1234",
    "orgId": "org-5678",
    "destinationChainId": 8453,
    "destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
    "enclaveId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "ACTIVE",
    "createdAt": "2024-06-01T12:00:00.000Z",
    "updatedAt": "2024-06-01T12:00:00.000Z",
    "depositAddresses": {
      "evm_deposit_address": [
        {
          "chainId": 1,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xethmainnet...",
          "deploymentBlock": 100000
        },
        {
          "chainId": 8453,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xbase...",
          "deploymentBlock": 200000
        },
        {
          "chainId": 42161,
          "contractAddress": "0x1111111111111111111111111111111111111111",
          "deployed": true,
          "deploymentTxHash": "0xarbitrum...",
          "deploymentBlock": 300000
        }
      ]
    }
  }
}

Last updated