Get Deposit Address
Retrieves the deposit address for a portfolio's vault on a specific blockchain. This endpoint is useful for getting the vault address where users should send their deposits.
Endpoint
Portfolio API: GET https://ddp.definitive.fi/v2/portfolio/address/{chain}
Organization API: Replace
/v2/portfolio/with/v2/organization/portfolios/{portfolioId}/. See Portfolio vs. Organization API.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Blockchain network (see Supported Networks for full list) |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| walletAddress | string | Yes | User wallet address for the chain |
Examples
const ethAddress = await AuthHelpers.signAndSend({
path: "/v2/portfolio/address/ethereum",
method: "GET",
queryParams: {
walletAddress: "0x742d35Cc6634C0532925a3b8D400eE6a0b8CBd6",
},
apiKey: process.env.API_KEY,
apiSecret: process.env.API_SECRET,
});For Solana, use the solana chain and a Solana wallet address:
const solanaAddress = await AuthHelpers.signAndSend({
path: "/v2/portfolio/address/solana",
method: "GET",
queryParams: {
walletAddress: "GszaaaaaaaaaaaaaaaaaaaaaaaaVcx",
},
apiKey: process.env.API_KEY,
apiSecret: process.env.API_SECRET,
});Response
{
vaultId: "00000000-0000-0000-0000-000000000002",
address: "0x1234567890abcdef1234567890abcdef12345678"
}Response Fields
| Field | Type | Description |
|---|---|---|
| vaultId | string | UUID of the vault associated with the address |
| address | string | The deposit address where funds should be sent |
Notes
- Vault Creation: If a vault doesn't exist for the specified chain, it will be created automatically
- Address Format: The returned address is the actual blockchain address where deposits should be sent
- Chain Compatibility: The
walletAddressparameter must be a valid address format for the specified chain - Authentication: Requests must be signed and include the correct headers. See Request Authorization for details
Integration with Deposit Flow
- Get Deposit Address: Call this endpoint to retrieve the vault address
- Send Funds: Users send their assets to the returned address
- Process Deposit: For depositing native EVM assets (e.g. ETH/BNB/MATIC/AVAX), Organization API users should call the Refresh Balance endpoint after depositing. All other assets will be automatically detected and credited to the portfolio.
Example Integration
// Step 1: Get the deposit address
const addressResponse = await AuthHelpers.signAndSend({
path: "/v2/portfolio/address/ethereum",
method: "GET",
queryParams: {
walletAddress: "0x742d35Cc6634C0532925a3b8D400eE6a0b8CBd6",
},
apiKey: process.env.API_KEY,
apiSecret: process.env.API_SECRET,
});
const vaultAddress = addressResponse.address;
// Step 2: User sends funds to vaultAddress
// (This happens outside the API - user sends ETH/tokens to the address)
// Step 3: Assets will be automatically detected and credited to the portfolio.
// For native EVM assets (e.g. ETH/BNB/MATIC/AVAX), call "Refresh Balance"
// and wait 1-2 seconds for portfolio to update.Common Pitfalls & Tips
- walletAddress format: Ensure the wallet address matches the expected format for the specified chain
- Vaults are auto-created: If a vault doesn't exist, it will be created automatically
- Address reuse: The same address can be used for multiple deposits to the same vault
- Chain-specific addresses: Each chain has different address formats (EVM vs Solana)