> ## 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.

# List Cryptocurrency Transfers

> Get previously submitted cryptocurrency transfers, sorted by recency in descending order.



## OpenAPI

````yaml /v2/openapi.yaml get /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:
    get:
      tags:
        - Cryptocurrency Transfers
      summary: List Cryptocurrency Transfers
      description: >-
        Get previously submitted cryptocurrency transfers, sorted by recency in
        descending order.
      operationId: bastion.api.v2.API.ListCryptocurrencyTransfers
      parameters:
        - name: limit
          in: query
          description: >-
            (OPTIONAL) The maximum number of cryptocurrency transfers to return
            in a single page. The maximum value that can be specified is 25.
          required: false
          schema:
            type: integer
            title: limit
            maximum: 25
            minimum: 1
            format: int32
            default: '10'
        - name: cursor
          in: query
          description: >-
            (OPTIONAL) Pagination cursor to be used in subsequent queries to
            retrieve next page of results
          required: false
          schema:
            type: string
            title: cursor
        - name: account_id
          in: query
          description: Unique identifier of the account to filter transfers by
          required: true
          schema:
            type: string
            title: account_id
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/bastion.api.v2.cryptocurrency.ListTransfersV2Response
        '400':
          description: Bad request
        '500':
          description: Internal Server Error
components:
  schemas:
    bastion.api.v2.cryptocurrency.ListTransfersV2Response:
      type: object
      properties:
        transfers:
          type: array
          items:
            $ref: '#/components/schemas/bastion.api.v2.cryptocurrency.Transfer'
          title: transfers
        cursor:
          type: string
          title: cursor
          description: >-
            Pagination cursor to be used in subsequent queries to retrieve next
            page of results. If this field is omitted, there are no subsequent
            pages.
      title: ListTransfersV2Response
      additionalProperties: false
    bastion.api.v2.cryptocurrency.Transfer:
      type: object
      properties:
        id:
          type: string
          title: id
          description: Unique identifier of the cryptocurrency transfer
        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
        account_address:
          type: string
          title: account_address
          description: Address 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: Address of the recipient to receive the cryptocurrency
        destination_chain:
          $ref: '#/components/schemas/bastion.common.Chain'
          title: destination_chain
          description: Chain identifier for the cryptocurrency transaction
        status:
          $ref: '#/components/schemas/bastion.api.v2.cryptocurrency.TransferStatus'
          title: status
          description: >-
            Status of a cryptocurrency transfer as it moves through the
            processing pipeline.

             - `TRANSFER_STATUS_UNSPECIFIED`: Default value, should not be used.
             - `ACCEPTED`: The transfer request has been received and validated, but has not yet been batched or submitted to the blockchain.
             - `SUBMITTED`: The transfer has been submitted to the blockchain and is awaiting confirmation.
             - `CONFIRMED`: The transfer has been confirmed on the blockchain. This is a terminal status.
             - `FAILED`: The transfer has failed. Check the failureDetails field for more information. This is a terminal status.
             - `DROPPED`: The transfer has been dropped. This is a terminal status.
        created_at:
          type: string
          title: created_at
          description: Timestamp when the cryptocurrency transfer was created
        updated_at:
          type: string
          title: updated_at
          description: Timestamp when the cryptocurrency transfer was last updated
        transaction_hash:
          type: string
          title: transaction_hash
          description: Hash of the cryptocurrency transaction
        completed_at:
          type: string
          title: completed_at
          description: Timestamp when the cryptocurrency transfer was completed
        failure_details:
          $ref: '#/components/schemas/bastion.common.FailureDetails'
          title: failure_details
          description: (OPTIONAL) Details of the failure if the transfer is not successful.
        events:
          type: array
          items:
            $ref: '#/components/schemas/bastion.common.ContractEvent'
          title: events
          description: Contract events emitted by the transaction.
        destination_type:
          $ref: '#/components/schemas/bastion.common.DestinationType'
          title: destination_type
          description: >-
            (OPTIONAL) Type of destination for this transfer (ON_CHAIN for
            external, ACCOUNT for internal P2P).
        destination_account_id:
          type: string
          title: destination_account_id
          description: >-
            (OPTIONAL) Unique identifier of the destination account, populated
            when destination_type is ACCOUNT.
      title: Transfer
      required:
        - id
        - request_id
        - account_id
        - account_address
        - currency_symbol
        - amount
        - destination_address
        - destination_chain
        - status
        - created_at
        - updated_at
        - transaction_hash
        - completed_at
      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.api.v2.cryptocurrency.TransferStatus:
      type: string
      title: TransferStatus
      enum:
        - TRANSFER_STATUS_UNSPECIFIED
        - ACCEPTED
        - SUBMITTED
        - CONFIRMED
        - FAILED
        - DROPPED
        - CANCELED
      description: >-
        Status of a cryptocurrency transfer as it moves through the processing
        pipeline.

         - `TRANSFER_STATUS_UNSPECIFIED`: Default value, should not be used.
         - `ACCEPTED`: The transfer request has been received and validated, but has not yet been batched or submitted to the blockchain.
         - `SUBMITTED`: The transfer has been submitted to the blockchain and is awaiting confirmation.
         - `CONFIRMED`: The transfer has been confirmed on the blockchain. This is a terminal status.
         - `FAILED`: The transfer has failed. Check the failureDetails field for more information. This is a terminal status.
         - `DROPPED`: The transfer has been dropped. This is a terminal status.
         - `CANCELED`: The transfer has been explicitly canceled by submitting a 0-value self-transfer. This is a terminal status.
      example: ACCEPTED
    bastion.common.FailureDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/bastion.common.FailureType.Enum'
          title: type
        description:
          type: string
          title: description
      title: FailureDetails
      additionalProperties: false
    bastion.common.ContractEvent:
      type: object
      properties:
        event_name:
          type: string
          title: event_name
        event_info:
          type: object
          title: event_info
          additionalProperties:
            $ref: '#/components/schemas/google.protobuf.ListValue'
            title: value
        contract_address:
          type: string
          title: contract_address
      title: ContractEvent
      additionalProperties: false
    bastion.common.DestinationType:
      type: string
      title: DestinationType
      enum:
        - DESTINATION_TYPE_UNSPECIFIED
        - ON_CHAIN
        - ACCOUNT
      description: |-
        Destination type for a cryptocurrency transfer.

         - `ON_CHAIN`: External transfer to a blockchain address.
         - `ACCOUNT`: Internal P2P transfer to another Bastion account.
      example: ON_CHAIN
    bastion.common.FailureType.Enum:
      type: string
      title: Enum
      enum:
        - UNSPECIFIED
        - EXECUTION_ERROR
        - INVALID_NUM_OF_TOKENS
        - INVALID_CONTRACT_ACTION_INFO
        - INVALID_CONTRACT_ADDRESS
        - INVALID_CONTRACT_ACTIONS
        - INVALID_BLOCKCHAIN
        - INVALID_CONTRACT_JSON_ABI
        - INVALID_REQUEST_ID
        - TRANSACTION_NOT_FOUND
        - DUPLICATE_TRANSACTION
        - NO_USER_WALLET_FOUND
        - KEY_EXPORTED
        - INVALID_RECIPIENT_ADDRESS
        - INVALID_OFFCHAIN_SIGNABLE_MESSAGE
        - INSUFFICIENT_GAS
        - INVALID_PAYMENT_AMOUNT
        - TRANSACTION_LIMIT_POLICY_BREACHED
        - COMPLIANCE_CHECK_FAILED
      example: EXECUTION_ERROR
    google.protobuf.ListValue:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/google.protobuf.Value'
          title: values
          description: Repeated field of dynamically typed values.
      title: ListValue
      additionalProperties: false
      description: Represents a JSON array.
    google.protobuf.Value:
      oneOf:
        - type: 'null'
        - type: number
        - type: string
        - type: boolean
        - type: array
        - type: object
          additionalProperties: true
      description: |-
        Represents a JSON value.

         `Value` represents a dynamically typed value which can be either
         null, a number, a string, a boolean, a recursive struct value, or a
         list of values. A producer of value is expected to set one of these
         variants. Absence of any variant is an invalid state.
  securitySchemes:
    auth:
      type: http
      description: Bearer authentication with an API token
      scheme: bearer

````

## Related topics

- [Product updates](/changelog.md)
- [Submit Cryptocurrency Transfer](/v2/api-reference/cryptocurrency-transfers/submit-cryptocurrency-transfer.md)
- [List Cryptocurrency Deposits](/v2/api-reference/cryptocurrency-deposits/list-cryptocurrency-deposits.md)
- [Get Cryptocurrency Transfer](/v2/api-reference/cryptocurrency-transfers/get-cryptocurrency-transfer.md)
- [Cryptocurrency transfer notifications](/v2/api-reference/webhooks/notifications/transfer-notifications.md)
