> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate Solana deposit address



## OpenAPI

````yaml /solana_deposit_addresses_openapi.json post /api/v1/depositAddresses/solana
openapi: 3.0.0
info:
  title: Solana Deposit Addresses API
  version: 1.0.0
  description: >-
    REST API for generating Solana deposit addresses (a deterministic EVM
    address on Base that auto-bridges USDC to a Solana wallet) and querying
    their records.
servers:
  - url: https://deposit-addresses.eco.com
    description: Mainnet
security: []
tags:
  - name: Deposit Addresses
paths:
  /api/v1/depositAddresses/solana:
    post:
      tags:
        - Deposit Addresses
      summary: Generate Solana deposit address
      operationId: generateSolanaDepositAddress
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSolanaDepositAddressDTO'
      responses:
        '201':
          description: >-
            Deposit address (deterministic: same inputs always return the same
            address)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositAddressResponse'
        '400':
          description: Validation failure or unconfigured chain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateSolanaDepositAddressDTO:
      type: object
      required:
        - chainId
        - solanaAddress
        - depositor
      properties:
        chainId:
          type: integer
          minimum: 1
          description: Source chain. Currently Base (8453).
        solanaAddress:
          $ref: '#/components/schemas/SolanaAddress'
        depositor:
          $ref: '#/components/schemas/EvmAddress'
          description: Authorized for refunds if the intent expires
    DepositAddressResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/DepositAddress'
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        createdBy:
          type: string
          description: >-
            ValidationFilter for input validation failures, HttpExceptionFilter
            for business errors
        validationErrors:
          type: object
          additionalProperties:
            type: string
          description: Field-to-message map. Present on validation failures.
        details:
          type: object
          description: Present on business errors
          properties:
            errorCode:
              type: integer
              example: 1014
            errorDesc:
              type: string
              example: NoSuchDepositAddress
            cause:
              type: string
              example: NoSuchDepositAddress
    SolanaAddress:
      type: string
      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
      description: base58, 32-44 chars
      example: 2ECrxAiyVBszAjok5isDdTJu4kwwhq9d7kgJqDvEStMq
    EvmAddress:
      type: string
      pattern: ^0x[a-fA-F0-9]{40}$
      description: EIP-55 / lowercase hex 20-byte address
      example: '0x000000000000000000000000000000000000dEaD'
    DepositAddress:
      type: object
      properties:
        addressID:
          type: string
          format: uuid
          description: Internal record ID
        depositAddressType:
          type: string
          enum:
            - SOLANA
          description: Deposit address product type
        chainId:
          type: integer
        evmDepositAddress:
          $ref: '#/components/schemas/EvmAddress'
        solanaAddress:
          type: string
          description: >-
            Hex-encoded 32-byte Solana public key (the base58 address you
            submitted, decoded)
        depositor:
          $ref: '#/components/schemas/EvmAddress'
        factoryAddress:
          $ref: '#/components/schemas/EvmAddress'
        isDeployed:
          type: boolean
        lastCheckedBalance:
          type: string
          description: Raw token units
        lastBalanceCheckAt:
          type: string
          format: date-time
          description: Unix epoch until the first balance check runs
        lastBlockNumber:
          type: string
          description: Last block scanned by balance monitoring
        deploymentTxHash:
          type: string
          nullable: true
        deploymentBlockNumber:
          type: string
          nullable: true
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time

````