> ## 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 Bitcoin Ordinals inscription activity for an address including transfers and ownership changes with mempool awareness.

# Inscription Activity by Address (Mempool-aware)



## OpenAPI

````yaml bitcoin/wallet-api/openapi.json get /wallet/addresses/{address}/inscriptions/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}/inscriptions/activity:
    get:
      tags:
        - Addresses
      summary: Inscription Activity by Address (Mempool-aware)
      description: >-
        Returns all inscription-related transactions involving a specific
        address. Can be filtered by activity type (send, receive,
        self-transfer), narrowed to a specific inscription, and sorted
        chronologically. Mempool data is included by default. Useful for
        building dashboards, tracking user behavior, or filtering unwanted spam
        activity.
      operationId: wallet_inscription_activity_by_address
      parameters:
        - name: address
          in: path
          description: Bitcoin address or hex encoded script pubkey
          required: true
          schema:
            type: string
          example: bc1p27j3fa2mr3d50m3uaavr0ntyzr0v2a27n48lc9gxpkzd4xye6dgs2tzx6p
        - 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 created 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 created 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: inscription_id
          in: query
          description: >-
            Return only transactions containing a specific inscription,
            specified by an inscription ID. In presence of activity_kind, it
            relates to this specific inscription. In presence of
            exclude_self_transfers, it is this specific inscription that should
            be sent or received but not self-transferred.
          required: false
          schema:
            type: string
            nullable: true
          example: 6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0
        - name: activity_kind
          in: query
          description: >-
            Filter txs by presence of specific activity kind. Supported values:
            send, receive, self_transfer. In presence of inscription filter, the
            activity kind relates to that specific inscription. In presence of
            exclude_self_transfers, this activity kind cannot be self_transfer.
          required: false
          schema:
            allOf:
              - $ref: '#/components/schemas/InscriptionActivityKindByAddress'
            nullable: true
        - name: exclude_self_transfers
          in: query
          description: >-
            Exclude txs only containing inscriptions self-transfers. In presence
            of activity_kind, it cannot be self_transfer. In presence of
            inscription filter, that specific inscription should be sent or
            received, not self-transferred.
          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/MempoolWalletPaginatedInscriptionActivityByAddress
              example:
                data:
                  - confirmations: 0
                    height: 901787
                    inscription_activity:
                      received:
                        - from:
                            address: bc1q8jtuypcd0p9v7eu8zq9uhd42tvy6gwh89zuchh
                            input_index: 0
                            sat_offset: 0
                            script_pubkey: 00143c97c2070d784acf6787100bcbb6aa5b09a43ae7
                          inscription_id: >-
                            1e6f91f13fe9a4359e1b9d6e7723cacb815d250337dab921f7b90fca62913e73i577
                          to:
                            address: >-
                              bc1pck742mdgmrd473upp553jj5x2w62q6mzd3enxjdegrxx2sc7rcmqnndp86
                            output_txid: >-
                              cf5caab63c40314fdd2f421b19541f9b25926d2a6318845ad8bc3266b4b8a8be
                            output_vout: 0
                            sat_offset: 0
                            script_pubkey: >-
                              5120c5bd556da8d8db5f47810d29194a8653b4a06b626c733349b940cc65431e1e36
                      self_transferred: []
                      sent: []
                    mempool: true
                    tx_hash: >-
                      cf5caab63c40314fdd2f421b19541f9b25926d2a6318845ad8bc3266b4b8a8be
                  - confirmations: 7
                    height: 901780
                    inscription_activity:
                      received:
                        - from:
                            address: >-
                              bc1p7jwyezderr5qxepw57fepw9dmdetn9pqkj2e3m7ufffthspdj5aqdxsdw5
                            input_index: 0
                            sat_offset: 0
                            script_pubkey: >-
                              5120f49c4c89b918e803642ea79390b8addb72b99420b49598efdc4a52bbc02d953a
                          inscription_id: >-
                            a8a3f114d24e0e270a4d66457ff1ca1d11eb21d4daa02ffcd1b643a1c6731a2ci1388
                          to:
                            address: >-
                              bc1pck742mdgmrd473upp553jj5x2w62q6mzd3enxjdegrxx2sc7rcmqnndp86
                            output_txid: >-
                              09b6730e0f11f87c31f8d4977785292e9c741b16834d59a0b2f352ee01a43e91
                            output_vout: 0
                            sat_offset: 0
                            script_pubkey: >-
                              5120c5bd556da8d8db5f47810d29194a8653b4a06b626c733349b940cc65431e1e36
                      self_transferred: []
                      sent: []
                    mempool: false
                    tx_hash: >-
                      09b6730e0f11f87c31f8d4977785292e9c741b16834d59a0b2f352ee01a43e91
                indexer_info:
                  chain_tip:
                    block_hash: >-
                      00000000000000000000d7398966d32c809e5acad484574547150c97d39eea91
                    block_height: 901786
                  estimated_blocks:
                    - block_height: 901787
                      sats_per_vb:
                        max: 991
                        median: 5
                        min: 1
                  mempool_timestamp: '2025-06-18 16:28:43'
                next_cursor: Aw3ClAEBkT6kAe5S87KgWU2DFht0nC4phXeX1PgxfPgRDw5ztgk
        '400':
          description: Malformed query parameters
        '404':
          description: Requested entity not found on-chain
        '500':
          description: Internal server error
components:
  schemas:
    InscriptionActivityKindByAddress:
      type: string
      enum:
        - self_transfer
        - send
        - receive
    MempoolWalletPaginatedInscriptionActivityByAddress:
      type: object
      required:
        - data
        - indexer_info
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WalletInscriptionActivityByAddress'
        indexer_info:
          $ref: '#/components/schemas/MempoolLastUpdated'
        next_cursor:
          type: string
          nullable: true
    WalletInscriptionActivityByAddress:
      type: object
      required:
        - height
        - confirmations
        - mempool
        - tx_hash
        - inscription_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 inscription activity.
          minimum: 0
        inscription_activity:
          $ref: '#/components/schemas/InscriptionActivity'
        mempool:
          type: boolean
          description: Whether the data is pending (true) or confirmed (false).
        tx_hash:
          type: string
          description: Hash of transaction containing the inscription 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
    InscriptionActivity:
      type: object
      required:
        - self_transferred
        - sent
        - received
      properties:
        received:
          type: array
          items:
            $ref: '#/components/schemas/InscriptionActivityByTx'
          description: List of inscriptions which the script gained control over.
        self_transferred:
          type: array
          items:
            $ref: '#/components/schemas/InscriptionActivityByTx'
          description: List of inscriptions that were self-transferred in the transaction.
        sent:
          type: array
          items:
            $ref: '#/components/schemas/InscriptionActivityByTx'
          description: List of inscriptions which the script lost control of.
    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'
    InscriptionActivityByTx:
      type: object
      required:
        - inscription_id
        - to
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/FromInscriptionLocation'
          nullable: true
        inscription_id:
          type: string
          description: >-
            String representation of the inscription ID, whose first coordinate
            is the reveal transaction hash, and the second coordinate is the
            index of inscription in the reveal transaction.
        to:
          $ref: '#/components/schemas/ToInscriptionLocation'
    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
    FromInscriptionLocation:
      type: object
      required:
        - script_pubkey
        - input_index
        - sat_offset
      properties:
        address:
          type: string
          description: >-
            Address-encoding of the script pubkey at which the input containing
            the inscription resides.
          nullable: true
        input_index:
          type: integer
          format: int32
          description: Index of the input containing the inscription.
          minimum: 0
        sat_offset:
          type: integer
          format: int64
          description: Offset of the inscribed satoshi within the input.
          minimum: 0
        script_pubkey:
          type: string
          description: Script pubkey at which the input containing the inscription resides.
    ToInscriptionLocation:
      type: object
      required:
        - script_pubkey
        - output_vout
        - sat_offset
        - output_txid
      properties:
        address:
          type: string
          description: >-
            Address-encoding of the script pubkey at which the output containing
            the inscription resides.
          nullable: true
        output_txid:
          type: string
          description: >-
            Hash of tx producing the output containing the inscription. If this
            is the hash of the coinbase tx of the block, then the inscription
            was spent as fee in a tx in the block and therefore sent to the
            output of the coinbase tx controlled by the block miner.
        output_vout:
          type: integer
          format: int32
          description: Index of the output containing the inscription.
          minimum: 0
        sat_offset:
          type: integer
          format: int64
          description: Offset of the inscribed satoshi within the output.
          minimum: 0
        script_pubkey:
          type: string
          description: >-
            Script pubkey at which the output containing the inscription
            resides.
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: Project API Key

````