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

# 获取钱包历史记录

> 通过分页检索Solana钱包的完整交易历史。

每个请求消耗**100个积分**。

## 请求参数

<ParamField body="wallet" type="string" required default="GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz">
  Solana 钱包地址（base58 编码）
</ParamField>

<ParamField body="limit" type="number" default="100">
  每次请求的最大交易数
</ParamField>

<ParamField body="before" type="string">
  获取指定签名之前的交易（使用之前响应中的`pagination.nextCursor`）
</ParamField>

<ParamField body="after" type="string">
  获取指定签名之后的交易（用于升序分页）
</ParamField>

<ParamField body="type" type="string">
  按交易类型筛选。可用类型：SWAP，TRANSFER，NFT\_SALE，NFT\_BID，NFT\_LISTING，
  NFT\_MINT，NFT\_CANCEL\_LISTING，TOKEN\_MINT，BURN，COMPRESSED\_NFT\_MINT，COMPRESSED\_NFT\_TRANSFER，
  COMPRESSED\_NFT\_BURN，CREATE\_STORE，WHITELIST\_CREATOR，ADD\_TO\_WHITELIST，REMOVE\_FROM\_WHITELIST，
  AUCTION\_MANAGER\_CLAIM\_BID，EMPTY\_PAYMENT\_ACCOUNT，UPDATE\_PRIMARY\_SALE\_METADATA，ADD\_TOKEN\_TO\_VAULT，
  ACTIVATE\_VAULT，INIT\_VAULT，INIT\_BANK，INIT\_STAKE，MERGE\_STAKE，SPLIT\_STAKE，CREATE\_AUCTION\_MANAGER，
  START\_AUCTION，CREATE\_AUCTION\_MANAGER\_V2，UPDATE\_EXTERNAL\_PRICE\_ACCOUNT，EXECUTE\_TRANSACTION

  * `SWAP`
  * `TRANSFER`
  * `NFT_SALE`
  * `NFT_BID`
  * `NFT_LISTING`
  * `NFT_MINT`
  * `NFT_CANCEL_LISTING`
  * `TOKEN_MINT`
  * `BURN`
  * `COMPRESSED_NFT_MINT`
  * `COMPRESSED_NFT_TRANSFER`
  * `COMPRESSED_NFT_BURN`
  * `CREATE_STORE`
  * `WHITELIST_CREATOR`
  * `ADD_TO_WHITELIST`
  * `REMOVE_FROM_WHITELIST`
  * `AUCTION_MANAGER_CLAIM_BID`
  * `EMPTY_PAYMENT_ACCOUNT`
  * `UPDATE_PRIMARY_SALE_METADATA`
  * `ADD_TOKEN_TO_VAULT`
  * `ACTIVATE_VAULT`
  * `INIT_VAULT`
  * `INIT_BANK`
  * `INIT_STAKE`
  * `MERGE_STAKE`
  * `SPLIT_STAKE`
  * `CREATE_AUCTION_MANAGER`
  * `START_AUCTION`
  * `CREATE_AUCTION_MANAGER_V2`
  * `UPDATE_EXTERNAL_PRICE_ACCOUNT`
  * `EXECUTE_TRANSACTION`
</ParamField>

<ParamField body="tokenAccounts" type="string" default="balanceChanged">
  过滤涉及钱包拥有的代币账户的交易。

  * `balanceChanged`（推荐）：包括更改代币余额的交易，过滤垃圾
  * `none`：仅直接引用钱包的交易
  * `all`：包括代币账户的所有交易（可能包括垃圾）
    * `none`
    * `balanceChanged`
    * `all`
</ParamField>


## OpenAPI

````yaml zh/openapi/wallet-api/openapi.yaml GET /v1/wallet/{wallet}/history
openapi: 3.0.3
info:
  title: Wallet API
  description: |
    一个高性能的REST API，用于查询Solana钱包数据，包括余额、交易记录、转账和身份信息。

    ## 认证

    所有请求都需要通过以下方式传递API密钥：
    - 查询参数：`?api-key=YOUR_API_KEY`
    - 头：`X-Api-Key: YOUR_API_KEY`
  version: 1.0.0
  contact:
    name: API支持
    url: https://helius.dev
servers:
  - url: https://api.helius.xyz
    description: 生产服务器
security:
  - ApiKeyQuery: []
  - ApiKeyHeader: []
tags:
  - name: Identity
    description: 查找钱包身份和已知地址
  - name: Balances
    description: 查询代币和NFT余额
  - name: History
    description: 交易历史和余额变动
  - name: Transfers
    description: 代币转账活动
  - name: Funding
    description: 钱包资金信息
paths:
  /v1/wallet/{wallet}/history:
    get:
      tags:
        - History
      summary: 获取交易历史
      description: |
        使用增强交易API检索钱包的交易历史。
        返回可读的、已解析的交易，并显示每笔交易的余额变动。
        **分页是手动的** - API每次请求最多返回100笔交易。

        按时间逆序返回交易（最新的在前）。

        **关联代币账户 (ATAs):** `tokenAccounts`参数控制是否包含涉及钱包拥有的代币账户的交易：
        - `balanceChanged`（推荐）：包含更改了代币账户余额的交易，过滤垃圾信息
        - `none`: 仅直接钱包交互
        - `all`: 包括垃圾信息在内的所有代币账户交易

        **分页：** 使用`before`参数和`pagination.nextCursor`获取下一页。
        响应包含`pagination.hasMore`，指示是否有更多结果可用。
        每次请求进行一次API调用，花费100个积分。
      operationId: getWalletHistory
      parameters:
        - $ref: '#/components/parameters/WalletAddress'
        - name: limit
          in: query
          description: 每个请求的最大交易数量
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
          example: 100
        - name: before
          in: query
          description: 获取此签名之前的交易（使用之前响应的`pagination.nextCursor`）
          schema:
            type: string
          example: 5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE
        - name: after
          in: query
          description: 获取此签名之后的交易（用于升序分页）
          schema:
            type: string
          example: 5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE
        - name: type
          in: query
          description: >
            按交易类型过滤。可用类型：SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING,
            NFT_MINT, NFT_CANCEL_LISTING, TOKEN_MINT, BURN, COMPRESSED_NFT_MINT,
            COMPRESSED_NFT_TRANSFER, COMPRESSED_NFT_BURN, CREATE_STORE,
            WHITELIST_CREATOR, ADD_TO_WHITELIST, REMOVE_FROM_WHITELIST,
            AUCTION_MANAGER_CLAIM_BID, EMPTY_PAYMENT_ACCOUNT,
            UPDATE_PRIMARY_SALE_METADATA, ADD_TOKEN_TO_VAULT, ACTIVATE_VAULT,
            INIT_VAULT, INIT_BANK, INIT_STAKE, MERGE_STAKE, SPLIT_STAKE,
            CREATE_AUCTION_MANAGER, START_AUCTION, CREATE_AUCTION_MANAGER_V2,
            UPDATE_EXTERNAL_PRICE_ACCOUNT, EXECUTE_TRANSACTION
          schema:
            type: string
            enum:
              - SWAP
              - TRANSFER
              - NFT_SALE
              - NFT_BID
              - NFT_LISTING
              - NFT_MINT
              - 取消NFT列表
              - 代币发行
              - 销毁
              - 压缩NFT铸造
              - 压缩NFT转移
              - 压缩NFT销毁
              - 创建商店
              - 白名单创建者
              - 添加至白名单
              - 从白名单移除
              - 拍卖经理认领出价
              - 清空付款账户
              - 更新主要销售元数据
              - 添加代币到保险库
              - 激活保险库
              - 初始化保险库
              - 初始化银行
              - 初始化抵押
              - 合并抵押
              - 拆分抵押
              - 创建拍卖经理
              - 开始拍卖
              - 创建拍卖经理V2
              - 更新外部价格账户
              - 执行交易
          example: SWAP
        - name: tokenAccounts
          in: query
          description: |
            过滤涉及钱包拥有的代币账户的交易。
            - `balanceChanged`（推荐）：包含更改代币余额的交易，过滤垃圾信息
            - `none`：仅直接引用钱包的交易
            - `all`：包括代币账户的所有交易（可能包含垃圾信息）
          schema:
            type: string
            enum:
              - none
              - balanceChanged
              - all
            default: balanceChanged
          example: balanceChanged
      responses:
        '200':
          description: 交易历史检索成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    WalletAddress:
      name: wallet
      in: path
      required: true
      description: Solana 钱包地址（base58 编码）
      schema:
        type: string
        pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
        default: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
      example: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
  schemas:
    HistoryResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/HistoryTransaction'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    HistoryTransaction:
      type: object
      properties:
        signature:
          type: string
          description: 交易签名
          example: 5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE
        timestamp:
          type: integer
          nullable: true
          description: Unix时间戳（秒）
          example: 1704067200
        slot:
          type: integer
          description: 槽号
          example: 250000000
        fee:
          type: number
          description: 交易费用（以SOL计）
          example: 0.000005
        feePayer:
          type: string
          description: 支付交易费用的地址
          example: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
        error:
          type: string
          nullable: true
          description: 如果交易失败，则显示错误消息
          example: null
        balanceChanges:
          type: array
          items:
            $ref: '#/components/schemas/BalanceChange'
          description: 此交易中的所有余额变动
      required:
        - signature
        - slot
        - fee
        - feePayer
        - balanceChanges
    Pagination:
      type: object
      properties:
        hasMore:
          type: boolean
          description: 是否有更多结果可用
          example: true
        nextCursor:
          type: string
          nullable: true
          description: 用于获取下一页结果的游标
          example: 5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE
      required:
        - hasMore
    Error:
      type: object
      properties:
        error:
          type: string
          description: 错误信息
          example: 无效的钱包地址
        code:
          type: integer
          description: HTTP状态代码
          example: 400
        details:
          type: string
          description: 附加错误详情
          example: '''invalid-address'' 不是有效的 Solana 地址'
      required:
        - error
        - code
    BalanceChange:
      type: object
      properties:
        mint:
          type: string
          description: 代币铸造地址（或原生代币为“SOL”）
          example: So11111111111111111111111111111111111111112
        amount:
          type: number
          description: 变动金额（增加为正，减少为负）
          example: -0.05
        decimals:
          type: integer
          description: 代币小数位数
          example: 9
      required:
        - mint
        - amount
        - decimals
  responses:
    BadRequest:
      description: 无效的请求参数
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 无效的钱包地址
            code: 400
            details: '''invalid-address''不是有效的Solana地址'
    Unauthorized:
      description: 缺少或无效的API密钥
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 需要API密钥。通过?api-key=xxx或X-Api-Key头传递
            code: 401
    RateLimited:
      description: 超出速率限制。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: RATE_LIMIT_EXCEEDED
            code: 429
            details: 请求过多。请在 2 秒后重试。
    InternalError:
      description: 临时服务器错误。可以使用指数退避重试。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: INTERNAL_ERROR
            code: 500
            details: 发生意外错误。请重试。
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: 作为查询参数传递的API密钥
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key
      description: 在请求头中传递的API密钥

````