Skip to main content
GET
/
v1
/
wallets
/
{walletAddressOrPublicKey}
/
history
Get Bitcoin wallet transaction history
curl --request GET \
  --url https://api.moralis.com/v1/wallets/{walletAddressOrPublicKey}/history \
  --header 'X-Api-Key: <api-key>'
{
  "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
  "addressType": "evm",
  "cursor": "<string>",
  "page": 1,
  "pageSize": 123,
  "result": [
    {
      "chainId": "bitcoin",
      "block": {
        "number": 123,
        "timestamp": "<string>",
        "hash": "<string>"
      },
      "transaction": {
        "hash": "<string>",
        "index": 123,
        "status": "<string>",
        "category": "<string>",
        "summary": "<string>",
        "methodLabel": "<string>",
        "possibleSpam": true,
        "initiatedBy": {
          "address": "<string>",
          "addressLabel": "<string>",
          "entity": {
            "id": "<string>",
            "name": "<string>",
            "logo": "<string>"
          }
        },
        "from": {
          "address": "<string>",
          "addressLabel": "<string>",
          "entity": {
            "id": "<string>",
            "name": "<string>",
            "logo": "<string>"
          }
        },
        "to": {
          "address": "<string>",
          "addressLabel": "<string>",
          "entity": {
            "id": "<string>",
            "name": "<string>",
            "logo": "<string>"
          }
        },
        "fee": {
          "amount": "<string>",
          "amountRaw": "<string>"
        },
        "confirmations": 123,
        "nativeTransfers": {
          "items": [
            {
              "fromAddress": "<string>",
              "toAddress": "<string>",
              "amount": "<string>",
              "isInternal": true
            }
          ],
          "hasMore": true
        },
        "tokenTransfers": {
          "items": [
            {
              "fromAddress": "<string>",
              "toAddress": "<string>",
              "value": "<string>",
              "tokenAddress": "<string>",
              "tokenSymbol": "<string>",
              "tokenName": "<string>",
              "tokenDecimals": 123,
              "tokenLogo": "<string>"
            }
          ],
          "hasMore": true
        },
        "nftTransfers": {
          "items": [
            {
              "fromAddress": "<string>",
              "toAddress": "<string>",
              "tokenAddress": "<string>",
              "tokenId": "<string>",
              "amount": "<string>",
              "tokenType": "<string>"
            }
          ],
          "hasMore": true
        }
      },
      "raw": {
        "bitcoin": {
          "version": 123,
          "size": 123,
          "vsize": 123,
          "coinbase": true,
          "rbf": true,
          "inputCount": 123,
          "outputCount": 123,
          "vin": [
            {
              "txid": "<string>",
              "vout": 123,
              "sequence": 123,
              "addresses": [
                "<string>"
              ],
              "value": "<string>",
              "isOwn": true
            }
          ],
          "vout": [
            {
              "n": 123,
              "addresses": [
                "<string>"
              ],
              "value": "<string>",
              "hex": "<string>",
              "spent": true,
              "isOwn": true
            }
          ]
        }
      },
      "meta": {}
    }
  ],
  "meta": {
    "syncedAt": {
      "bitcoin": "latest"
    },
    "unsupportedChains": [
      "<string>"
    ],
    "failedChains": [
      "<string>"
    ],
    "missingTransactions": null
  }
}
The walletAddressOrPublicKey path parameter accepts either a Bitcoin address or an xpub — when an xpub is supplied, history is aggregated across all derived addresses server-side.
Address auto-detection: for a Bitcoin address or xpub, the chains parameter is optional — Moralis detects the chain family from the address format. Passing chains=bitcoin explicitly still works.

Authorizations

X-Api-Key
string
header
required

Path Parameters

walletAddressOrPublicKey
string
required

A Bitcoin address or an xpub. When an xpub is supplied, the API derives all addresses server-side.

Query Parameters

chains
enum<string>[]

Chains to query. For the Bitcoin API, pass bitcoin.

Available options:
bitcoin
limit
number
default:100

The limit per page

Required range: 1 <= x <= 100
cursor
string

The cursor to the next page

order
enum<string>
default:DESC

The order of items

Available options:
ASC,
DESC
fromDate
string

The start date from which to get the wallet history (format in seconds or string accepted by momentjs)

  • Provide the param 'fromBlock' or 'fromDate'
  • If 'fromDate' and 'fromBlock' are provided, 'fromBlock' will be used.
toDate
string

The end date from which to get the wallet history (format in seconds or string accepted by momentjs)

  • Provide the param 'toBlock' or 'toDate'
  • If 'toDate' and 'toBlock' are provided, 'toBlock' will be used.
fromBlock
number

The minimum block number from which to get the wallet history

  • Provide the param 'fromBlock' or 'fromDate'
  • If 'fromDate' and 'fromBlock' are provided, 'fromBlock' will be used.
toBlock
number

The block number to get the wallet history until

verbose
boolean
default:false

When true, returns full raw chain-specific data including logs, input data, and vin/vout arrays. Array fields are capped at 100 items with a hasMore flag.

Response

200 - application/json
address
string
required

The queried wallet address

Example:

"0xd8da6bf26964af9d7eed9e03e53415d37aa96045"

addressType
enum<string>
required

The wallet address type

Available options:
bitcoin
Example:

"evm"

cursor
string | null
required

Opaque cursor token for pagination (null when no more pages)

page
number
required

Current page number (1-indexed)

Example:

1

pageSize
number
required

Number of items in this page

result
object[]
required

Array of wallet history items

meta
object
required

Response metadata with sync status and diagnostics