Unified Deposit Address
Endpoints to create and manage unified deposit addresses
Base URL
https://api.enclave.money
Authorization
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-1234
Destination chain ID (EVM chainId)
8453
Destination wallet address (EVM address)
0x742d35Cc6634C0532925a3b844Bc454e4438f44e
Destination token contract address (EVM address)
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Unified 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-1234
Unified 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-1234
Destination chain ID (EVM chainId)
8453
Destination wallet address (EVM address)
0x742d35Cc6634C0532925a3b844Bc454e4438f44e
Destination token contract address (EVM address)
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Destination 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
ACTIVE
Possible values: Number of results to return (pagination)
50
Example: 20
Offset for pagination
0
Example: 0
If true, fetch all addresses for the organization (ignores pagination)
true
List 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-446655440000
Unified 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