Skip to main content
The Programmable Addresses API provides REST endpoints for generating deposit addresses and retrieving their details. Base URL: https://deposit-addresses-preproduction.eco.com

Endpoints

Generate Solana Deposit Address

Generate or retrieve a deposit address for a Solana destination.
POST /api/v1/depositAddresses
Returns HTTP 201 Created on success.

Request Body

{
  "chainId": 8453,
  "solanaAddress": "2ECrxAiyVBszAjok5isDdTJu4kwwhq9d7kgJqDvEStMq",
  "depositor": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
}
FieldTypeDescription
chainIdnumberSource chain ID. Currently only Base (8453) is supported
solanaAddressstringDestination Solana wallet (base58 encoded, 32-44 characters)
depositorstringEVM address authorized to claim refunds if the intent expires unfulfilled

Response

{
  "data": {
    "chainId": 8453,
    "evmDepositAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "solanaAddress": "0x2ecr...",
    "depositor": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "factoryAddress": "0x3614A42e1C2C0A172f2B136d5A07c18e14Ca71aF",
    "isDeployed": false,
    "lastCheckedBalance": "0",
    "deploymentTxHash": null,
    "createdAt": "2026-01-29T12:00:00.000Z"
  }
}
FieldTypeDescription
chainIdnumberSource chain ID
evmDepositAddressstringDeposit address to send tokens to
solanaAddressstringSolana destination (hex format)
depositorstringAuthorized refund address
factoryAddressstringFactory that manages this address
isDeployedbooleanWhether contract is deployed
lastCheckedBalancestringLast known balance
deploymentTxHashstring | nullDeployment transaction hash
createdAtstringCreation timestamp (ISO 8601)

Error Response

{
  "error": "Factory address not configured for chain 8453"
}

Generate Gateway Deposit Address

Generate or retrieve a deposit address for Gateway deposits through Arc.
POST /api/v1/depositAddresses/gateway
Returns HTTP 201 Created on success.

Request Body

{
  "chainId": 8453,
  "depositor": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "evmDestinationAddress": "0x1234567890abcdef1234567890abcdef12345678"
}
FieldTypeDescription
chainIdnumberSource chain ID
depositorstringEVM address authorized to claim refunds if the intent expires unfulfilled
evmDestinationAddressstringEVM address that will receive funds on Gateway

Response

{
  "data": {
    "evmDepositAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "isDeployed": false,
    "createdAt": "2026-01-29T12:00:00.000Z"
  }
}
FieldTypeDescription
evmDepositAddressstringDeposit address to send tokens to
isDeployedbooleanWhether contract is deployed
createdAtstringCreation timestamp (ISO 8601)

Get Programmable Address

Retrieve details for an existing programmable address.
GET /api/v1/depositAddresses/evmAddress/:evmAddress

Path Parameters

ParameterTypeDescription
evmAddressstringEVM programmable address

Response

{
  "data": {
    "chainId": 8453,
    "evmDepositAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "solanaAddress": "0x2ecr...",
    "depositor": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "factoryAddress": "0x3614A42e1C2C0A172f2B136d5A07c18e14Ca71aF",
    "isDeployed": true,
    "lastCheckedBalance": "1000000",
    "deploymentTxHash": "0x...",
    "deploymentBlockNumber": "12345678",
    "lastBalanceCheckAt": "2026-01-29T12:00:00.000Z",
    "createdAt": "2026-01-29T12:00:00.000Z",
    "updatedAt": "2026-01-29T12:30:00.000Z"
  }
}

Error Response

{
  "error": "Deposit address not found"
}

Query Programmable Addresses

Query programmable addresses with optional filters.
GET /api/v1/depositAddresses/query

Query Parameters

ParameterTypeDescription
chainIdnumberFilter by chain ID
factoryAddressstringFilter by factory address
solanaAddressstringFilter by Solana address (hex format)
depositorstringFilter by depositor address
evmDepositAddressstringFilter by EVM deposit address
isDeployedbooleanFilter by deployment status
All parameters are optional.

Response

{
  "data": [
    {
      "chainId": 8453,
      "evmDepositAddress": "0x...",
      "solanaAddress": "0x...",
      "depositor": "0x...",
      "factoryAddress": "0x...",
      "isDeployed": true,
      "lastCheckedBalance": "1000000",
      "createdAt": "2026-01-29T12:00:00.000Z",
      "updatedAt": "2026-01-29T12:30:00.000Z"
    }
  ]
}

Validation

solanaAddress

  • Must be a valid base58 Solana address
  • Length: 32-44 characters
  • Pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$

depositor

  • Must be a valid Ethereum address

chainId

  • Must be a number >= 1