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

> Get comprehensive Bitcoin address activity with mempool awareness for real-time wallet management and transaction tracking.

# Wallet Satoshi Activity by Address (Mempool-aware)



## OpenAPI

````yaml bitcoin/wallet-api/openapi.json get /wallet/addresses/{address}/activity
openapi: 3.0.3
info:
  title: Bitcoin - Wallet API
  description: >-
    Maestro's Bitcoin Wallet API delivers detailed transaction activity data at
    the address level, spanning native Bitcoin (satoshis) and metaprotocol
    layers like inscriptions and runes. This API enables deep visibility into
    balance changes, token movements, and asset-specific behaviors. Useful for
    powering explorers, wallets, or dashboards with granular insight into
    address-level history and asset interactions.


    #### Key Features:

    - **Satoshi Activity Tracking:** Track and analyze satoshi-level balance
    changes—including increases, decreases, and self-transfers—with timestamped
    precision. Historical balances are itemized by either block height or
    timestamp, enabling accurate auditing, time-based analysis, and
    USD-denominated valuation over time.

    - **Inscription Insight:** Monitor Ordinals transactions, filtered by
    inscription ID, activity type (send/receive), or self-transfer logic to
    reduce noise from spam or internal moves.

    - **Rune Transaction Logging:** Track rune minting, transfers, etchings, and
    balance changes for a given address, including support for filtering by
    specific rune.

    - **Unified Metaprotocol View:** Fetch combined activity across satoshis,
    inscriptions, and runes in a single request to power holistic user or
    address histories.

    - **Mempool Awareness:** Provides insight into the latest activity from the
    mempool by _default_. The system monitors for block reorganizations and
    automatically rolls back unconfirmed or invalidated trades, ensuring the
    data reflects the confirmed state of the chain.


    #### Key Benefits for Developers: 

    Developers gain the ability to surface address-level insights without having
    to manually parse raw blockchain data. The Wallet API simplifies historical
    activity analysis, enables protocol-specific filtering, and lets developers
    build UX-enhancing features like transaction history views, asset trackers,
    and real-time alerts for wallet activity without managing indexing
    infrastructure.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.txt
  version: v0.2.0
servers:
  - url: https://xbt-mainnet.gomaestro-api.org/v0
    description: Bitcoin Mainnet
  - url: https://xbt-testnet.gomaestro-api.org/v0
    description: Bitcoin Testnet
security:
  - api-key: []
paths:
  /wallet/addresses/{address}/activity:
    get:
      tags:
        - Addresses
      summary: Wallet Satoshi Activity by Address (Mempool-aware)
      description: >-
        Returns all transactions for a given address or script pubkey, allowing
        insight into when the balance increased, decreased, or remained the
        same. Mempool data is included by default. This endpoint supports
        customization to narrow results by time, transaction type, or ordering,
        enabling tailored historical views.
      operationId: wallet_satoshi_activity_by_address
      parameters:
        - name: address
          in: path
          description: Bitcoin address or hex encoded script pubkey
          required: true
          schema:
            type: string
          example: bc1qcx7ys0ahvtfqcc63sfn6axls0qrhkadnslpd94
        - name: order
          in: query
          description: >-
            The order in which the results are sorted. Supported values: asc,
            desc
          required: false
          schema:
            allOf:
              - type: string
                default: asc
                enum:
                  - asc
                  - desc
            nullable: true
        - name: count
          in: query
          description: The max number of results per page
          required: false
          schema:
            allOf:
              - type: integer
                default: 100
                minimum: 0
            nullable: true
        - name: from
          in: query
          description: Return only transactions included on or after a specific height
          required: false
          schema:
            type: integer
            format: int64
            nullable: true
            minimum: 0
        - name: to
          in: query
          description: Return only transactions included on or before a specific height
          required: false
          schema:
            type: integer
            format: int64
            nullable: true
            minimum: 0
        - name: cursor
          in: query
          description: >-
            Pagination cursor string, use the cursor included in a page of
            results to fetch the next page
          required: false
          schema:
            type: string
            nullable: true
        - name: activity_kind
          in: query
          description: >-
            Only return transactions of a specific activity kind. Supported
            values: "increase" for transactions where satoshi balance increases,
            "decrease" for decrease, and "self_transfer" for transactions where
            satoshi balance remained the same.
          required: false
          schema:
            allOf:
              - $ref: '#/components/schemas/ActivityKindByAddress'
            nullable: true
        - name: exclude_self_transfers
          in: query
          description: >-
            Do not return self-transfer transactions - transactions in which
            satoshi balance did not increase or decrease.
          required: false
          schema:
            type: boolean
            nullable: true
        - name: mempool
          in: query
          description: 'Include mempool data. Default: true.'
          required: false
          schema:
            type: boolean
            nullable: true
      responses:
        '200':
          description: Requested data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MempoolWalletPaginatedActivityByAddress'
              example:
                data:
                  - confirmations: 1
                    height: 901937
                    mempool: false
                    sat_activity:
                      amount: '603733'
                      kind: increase
                      usd_amount: '629.17'
                    tx_hash: >-
                      7032180634bc691471b92099250b9370e07a0c8c8ca1420e518806404c7b6cf3
                indexer_info:
                  chain_tip:
                    block_hash: >-
                      00000000000000000001ae26ce7b25ef2bd13f4c0069b634a233b1472f0c0a17
                    block_height: 901937
                  estimated_blocks:
                    - block_height: 901938
                      sats_per_vb:
                        max: 99
                        median: 4
                        min: 1
                  mempool_timestamp: '2025-06-19 19:57:37'
                next_cursor: null
        '400':
          description: Malformed query parameters
        '404':
          description: Requested entity not found on-chain
        '500':
          description: Internal server error
components:
  schemas:
    ActivityKindByAddress:
      type: string
      enum:
        - self_transfer
        - increase
        - decrease
    MempoolWalletPaginatedActivityByAddress:
      type: object
      required:
        - data
        - indexer_info
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WalletActivityByAddress'
        indexer_info:
          $ref: '#/components/schemas/MempoolLastUpdated'
        next_cursor:
          type: string
          nullable: true
    WalletActivityByAddress:
      type: object
      required:
        - height
        - confirmations
        - mempool
        - tx_hash
        - sat_activity
      properties:
        confirmations:
          type: integer
          format: int64
          description: Number of confirmation blocks.
          minimum: 0
        height:
          type: integer
          format: int64
          description: Height of block containing the satoshi activity.
          minimum: 0
        mempool:
          type: boolean
          description: Whether the data is pending (true) or confirmed (false).
        sat_activity:
          $ref: '#/components/schemas/WalletSatActivity'
        tx_hash:
          type: string
          description: Hash of transaction containing the satoshi activity.
    MempoolLastUpdated:
      type: object
      required:
        - chain_tip
        - estimated_blocks
      properties:
        chain_tip:
          $ref: '#/components/schemas/ChainTip'
        estimated_blocks:
          type: array
          items:
            $ref: '#/components/schemas/EstimatedBlock'
          description: >-
            Information about any estimated blocks from the mempool that were
            indexed in addition to the mainchain
        mempool_timestamp:
          type: string
          description: >-
            Timestamp of the indexed mempool snapshot, if any estimated blocks
            from the mempool have been indexed
          nullable: true
    WalletSatActivity:
      type: object
      required:
        - kind
        - amount
        - usd_amount
      properties:
        amount:
          type: string
          description: Amount of satoshis involved in the activity.
        kind:
          $ref: '#/components/schemas/ActivityKindByAddress'
        usd_amount:
          type: string
          description: >-
            USD amount if sat amount was exchanged to USD. If the block is
            confirmed, the exchange rate is that between USD and BTC at the time
            the block was mined. If the block is pending (mempool transaction),
            then the exchange rate is that between USD and BTC at the time the
            block at the tip of the chain was mined.
    ChainTip:
      type: object
      required:
        - block_hash
        - block_height
      properties:
        block_hash:
          type: string
          description: The hash of the block
          example: 0000000000000000000a7f3b7b6b6e1d9a18db65a3b4a3f4f3bcb2e1f1b2d3e7
        block_height:
          type: integer
          format: int64
          description: The height of the block in the blockchain
          example: 707000
          minimum: 0
    EstimatedBlock:
      type: object
      required:
        - block_height
        - sats_per_vb
      properties:
        block_height:
          type: integer
          format: int64
          description: Height of the estimated block
          example: '707001'
          minimum: 0
        sats_per_vb:
          $ref: '#/components/schemas/BlockSatsPerVb'
    BlockSatsPerVb:
      type: object
      description: >-
        For transactions within a block, these are the lowest, median and
        highest

        satoshis per virtual-byte values.
      required:
        - min
        - median
        - max
      properties:
        max:
          type: integer
          format: int64
          description: Highest sat/vB value of the transactions within the block
          example: 255
          minimum: 0
        median:
          type: integer
          format: int64
          description: Median sat/vB value of the transactions within the block
          example: 15
          minimum: 0
        min:
          type: integer
          format: int64
          description: Lowest sat/vB value of the transactions within the block
          example: 11
          minimum: 0
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: Project API Key

````