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

# Submit Cryptocurrency Transfer

> Submit a cryptocurrency transfer on behalf of an account.
 Refer to the [supported assets](/v2/api-reference/assets/list-supported-assets) endpoint for a list of supported assets



## OpenAPI

````yaml /v2/openapi.yaml post /v2/crypto/transfers
openapi: 3.1.0
info:
  title: Bastion APIs
  version: '2.0'
servers:
  - url: https://api.prod.bastion.com
    description: Production environment
  - url: https://api.sandbox.bastion.io
    description: Sandbox environment
security:
  - auth: []
tags:
  - name: Bastion APIs
paths:
  /v2/crypto/transfers:
    post:
      tags:
        - Cryptocurrency Transfers
      summary: Submit Cryptocurrency Transfer
      description: |-
        Submit a cryptocurrency transfer on behalf of an account.
         Refer to the [supported assets](/v2/api-reference/assets/list-supported-assets) endpoint for a list of supported assets
      operationId: bastion.api.v2.API.SubmitCryptocurrencyTransfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/bastion.api.v2.cryptocurrency.SubmitCryptocurrencyTransferV2Request
        required: true
      responses:
        '202':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/bastion.api.v2.cryptocurrency.SubmitCryptocurrencyTransferV2Response
        '400':
          description: Bad request
        '422':
          description: >-
            Unprocessable Entity - identity or account state does not permit
            this operation
        '500':
          description: Internal Server Error
components:
  schemas:
    bastion.api.v2.cryptocurrency.SubmitCryptocurrencyTransferV2Request:
      type: object
      allOf:
        - properties:
            request_id:
              type: string
              title: request_id
              pattern: >-
                [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}
              format: uuid
              description: >-
                Request identifier in a UUID format. Serves as an idempotency
                key.
            account_id:
              type: string
              title: account_id
              description: Unique identifier of the account transferring the cryptocurrency
            currency_symbol:
              type: string
              title: currency_symbol
              description: Symbol or ticker of the cryptocurrency to send
            amount:
              type: string
              title: amount
              description: >-
                Amount to send in the asset currency's default unit (ex: Ether
                for ETH)
            destination_address:
              type: string
              title: destination_address
              description: >-
                (OPTIONAL) Soon to be deprecated: you should use
                address_destination instead. Address of the recipient to receive
                the cryptocurrency.
            destination_chain:
              $ref: '#/components/schemas/bastion.common.Chain'
              title: destination_chain
              description: >-
                (OPTIONAL) Soon to be deprecated: you should use
                address_destination instead. Chain identifier for the
                cryptocurrency transaction.
            priority:
              $ref: '#/components/schemas/bastion.common.Priority'
              title: priority
              description: >-
                (OPTIONAL) Optional inclusion priority for the cryptocurrency
                transfer transaction. Higher priority results in faster
                confirmation times but higher gas fee spend.


                <Warning>

                **Transaction Priority**


                Setting a higher priority expedites your transaction by
                increasing the gas price used to submit the transaction.


                Please note, however, that high-priority transfers may be
                delayed if the account has pending lower-priority transactions
                that must be processed first in sequence.

                </Warning>
            validate_only:
              type: boolean
              title: validate_only
              description: >-
                (OPTIONAL) If true, only validates the request without executing
                the transfer.
                 When set, all validations are run but no transfer is submitted.
            device_signals:
              oneOf:
                - $ref: '#/components/schemas/bastion.common.DeviceSignals'
                - type: 'null'
              title: device_signals
              description: (OPTIONAL) Signals about the device initiating the transfer
        - oneOf:
            - type: object
              properties:
                account_destination:
                  $ref: '#/components/schemas/bastion.common.AccountDestination'
                  title: account_destination
                  description: Internal Bastion account destination for P2P transfers
              title: account_destination
              required:
                - account_destination
            - type: object
              properties:
                address_destination:
                  $ref: '#/components/schemas/bastion.common.AddressDestination'
                  title: address_destination
                  description: External blockchain address destination
              title: address_destination
              required:
                - address_destination
      required:
        - request_id
        - account_id
        - currency_symbol
        - amount
      additionalProperties: false
    bastion.api.v2.cryptocurrency.SubmitCryptocurrencyTransferV2Response:
      type: object
      properties:
        id:
          type: string
          title: id
        request_id:
          type: string
          title: request_id
      title: SubmitCryptocurrencyTransferV2Response
      additionalProperties: false
    bastion.common.Chain:
      type: string
      title: Chain
      enum:
        - CHAIN_UNSPECIFIED
        - ETHEREUM_MAINNET
        - POLYGON_MAINNET
        - ETHEREUM_TESTNET
        - OPTIMISM_SEPOLIA
        - BASE_MAINNET
        - BASE_SEPOLIA
        - OPTIMISM_MAINNET
        - POLYGON_AMOY
        - SOLANA_MAINNET
        - SOLANA_DEVNET
      description: Chain identifier
      example: ETHEREUM_MAINNET
    bastion.common.Priority:
      type: string
      title: Priority
      enum:
        - PRIORITY_UNSPECIFIED
        - PRIORITY_NORMAL
        - PRIORITY_HIGH
        - PRIORITY_URGENT
      description: >-
        Optional inclusion priority for the cryptocurrency transfer transaction.
        Higher priority results in faster confirmation times but higher gas fee
        spend.


        <Warning>

        **Transaction Priority**


        Setting a higher priority expedites your transaction by increasing the
        gas price used to submit the transaction.


        Please note, however, that high-priority transfers may be delayed if the
        account has pending lower-priority transactions that must be processed
        first in sequence.

        </Warning>
      example: PRIORITY_NORMAL
    bastion.common.DeviceSignals:
      type: object
      properties:
        ip_address:
          type: string
          title: ip_address
          description: Accepts either IPv4 or IPv6 addresses
        device_id:
          type: string
          title: device_id
          description: >-
            Opaque string; format varies by platform
            (Apple/Google/Samsung-Android).
      title: DeviceSignals
      additionalProperties: false
      description: |-
        DeviceSignals carries client device/network identifiers captured at
         request time for value-moving, user-initiated endpoints.
    bastion.common.AccountDestination:
      type: object
      properties:
        account_id:
          type: string
          title: account_id
          description: Unique identifier of the destination account
      title: AccountDestination
      additionalProperties: false
      description: Internal Bastion account destination for a P2P transfer.
    bastion.common.AddressDestination:
      type: object
      properties:
        address:
          type: string
          title: address
          description: Blockchain address of the recipient
        chain:
          $ref: '#/components/schemas/bastion.common.Chain'
          title: chain
          description: Chain for the transfer
      title: AddressDestination
      additionalProperties: false
      description: External blockchain address destination for a cryptocurrency transfer.
  securitySchemes:
    auth:
      type: http
      description: Bearer authentication with an API token
      scheme: bearer

````

## Related topics

- [Get Cryptocurrency Transfer](/v2/api-reference/cryptocurrency-transfers/get-cryptocurrency-transfer.md)
- [Cryptocurrency transfer notifications](/v2/api-reference/webhooks/notifications/transfer-notifications.md)
- [Crypto transfers and deposits](/guides/concepts/crypto-transfers.md)
- [Product updates](/changelog.md)
- [Transaction limits API overview](/v2/api-reference/transaction-limits/overview.md)
