Unified Deposit Address
Endpoints to create and manage unified deposit addresses
Base URL
https://api.enclave.moneyAuthorization
Headers: {
...
Authorization: <YOUR_API_KEY>
}Getting Started
Get started by creating a UDA for a user using the API endpoint below. This endpoint can be integrated as part of your onboarding flow.
Create a new unified deposit address for a user within an organization. Requires authentication.
Unique user identifier
user-1234Destination chain ID (EVM chainId)
8453Destination wallet address (EVM address)
0x742d35Cc6634C0532925a3b844Bc454e4438f44eDestination token contract address (EVM address)
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2Unified deposit address created successfully
Missing or invalid required fields
Conflict - user or enclaveId already has an active unified deposit address
Internal server error
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
}
]
}
}
}In case you want to create multiple UDAs for your existing users at once, you can use the batch creation endpoint below.
Create multiple unified deposit addresses for users within an organization in a single request. Requires authentication. Batch size is limited to 50.
Batch unified deposit addresses created successfully
Invalid request or batch size exceeded
Internal server error
POST /unified-deposit-address/create/batch HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 200
{
"requests": [
{
"userId": "user-1234",
"destinationChainId": 8453,
"destinationAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"destinationTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
}
]
}{
"success": true,
"results": [
{
"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
}
]
}
}
},
{
"success": false,
"error": "User already has an active unified deposit address"
}
]
}Retrieve the unified deposit address for a user within an organization. Requires authentication.
Unique user identifier
user-1234Unified deposit address found
Missing required parameter
Unified deposit address not found for this user
Internal server error
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 the destination chain, address, and token for a user's unified deposit address. Requires authentication.
Unique user identifier
user-1234Destination chain ID (EVM chainId)
8453Destination wallet address (EVM address)
0x742d35Cc6634C0532925a3b844Bc454e4438f44eDestination token contract address (EVM address)
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2Destination details updated successfully
Missing or invalid required fields
Unified deposit address not found for this user
Internal server error
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
}
]
}
}
}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).
Filter by deposit address status
ACTIVEPossible values: Number of results to return (pagination)
50Example: 20Offset for pagination
0Example: 0If true, fetch all addresses for the organization (ignores pagination)
trueList of unified deposit addresses
Invalid query parameters
Internal server error
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
}
]
}
}
]
}Retrieve the unified deposit address by its internal enclaveId (UUID v4). Requires authentication. Intended for internal services.
Internal enclaveId (UUID v4)
550e8400-e29b-41d4-a716-446655440000Unified deposit address found
Missing or invalid enclaveId
Unified deposit address not found for this enclaveId
Internal server error
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