Skip to main content

Account Timelines

Presents the onchain activity of provided addresses in a simple descriptive summary with references to dynamic elements of the transaction such as tokens, NFTs, and accounts.

accountsTimeline

Takes an array of addresses as input, with optional parameters for network, and spamFilter. It returns chronological on-chain activity.

Example Use Case: Transaction History

Let's say you want to show users their onchain transactions in a human-readable format with network, app information, and detailed token transfer data. Start by passing addresses for the user. The query returns:

  • Human-readable transaction descriptions (processedDescription)
  • Network information
  • App details
  • Comprehensive data about tokens or NFTs involved in the transaction (inboundAttachments and outboundAttachments)

This allows you to build rich transaction history views with:

  • Formatted descriptions (e.g., "Swapped 400 USDC for 0.2 ETH")
  • Complete token details including decimals, addresses, and symbols
  • Current market prices for tokens
  • NFT collection and token information when relevant

Example Variables

{
"addresses": ["0x52c8ff44260056f896e20d8a43610dd88f05701b"],
"isSigner": true,
"realtimeInterpretation": true
}
tip

When isSigner is set to true it only returns transactions initiated from the specified address. When this is set to false, it returns every transaction that this address was a part of.

Example Query

query ($addresses: [Address!], $realtimeInterpretation: Boolean, $isSigner: Boolean) {
accountsTimeline(addresses: $addresses, realtimeInterpretation: $realtimeInterpretation, isSigner: $isSigner) {
edges {
node {
transaction {
fromUser {
address
displayName {
value
}
}
toUser {
displayName {
value
}
}
}
app {
slug
name
imgUrl
}
interpretation {
processedDescription
inboundAttachments {
... on TokenDisplayItem {
type
network
tokenAddress
amountRaw
tokenV2 {
address
symbol
decimals
name
imageUrl
marketData {
price(currency: USD)
}
}
}
... on NFTDisplayItem {
type
network
collectionAddress
tokenId
quantity
}
}
outboundAttachments {
... on TokenDisplayItem {
type
network
tokenAddress
amountRaw
tokenV2 {
address
symbol
decimals
name
imageUrl
marketData {
price(currency: USD)
}
}
}
... on NFTDisplayItem {
type
network
collectionAddress
tokenId
quantity
nftToken {
collection {
name
}
}
}
}
}
}
}
}
}

Example Response

{
"data": {
"accountsTimeline": {
"edges": [
{
"node": {
"transaction": {
"fromUser": {
"address": "0x52c8ff44260056f896e20d8a43610dd88f05701b",
"displayName": {
"value": "0xjasper.eth"
}
},
"toUser": {
"displayName": {
"value": "0x0000...3e70"
}
}
},
"app": {
"slug": "sound-xyz",
"name": "Sound.xyz",
"imgUrl": "https://storage.googleapis.com/zapper-fi-assets/apps%2Fsound-xyz.png"
},
"interpretation": {
"processedDescription": "Minted 1 Sweet Memories",
"inboundAttachments": [
{
"type": "nft",
"network": "BASE_MAINNET",
"collectionAddress": "0xab4d845880bfca8016fea84a6f645d2369292514",
"tokenId": "8255",
"quantity": 1
}
],
"outboundAttachments": [
{
"type": "token",
"network": "BASE_MAINNET",
"tokenAddress": "0x0000000000000000000000000000000000000000",
"amountRaw": "1554000000000000",
"tokenV2": {
"address": "0x0000000000000000000000000000000000000000",
"symbol": "ETH",
"decimals": 18,
"name": "Ethereum",
"imageUrl": "https://storage.googleapis.com/zapper-fi-assets/tokens/base/0x0000000000000000000000000000000000000000.png",
"marketData": {
"price": 3230.01
}
}
}
]
}
}
},
]
}
}
}
Try in sandbox
tip

If you want to surface tokens, NFTs, accounts, or other onchain items embedded within the human-readable description of a transaction, you should return description and descriptionDisplayItems in addition to processedDescription. This can be useful for adding links to tokens, NFTs, or accounts (e.g., vitalik.eth swapped 10 USDC...). To learn more about how to use these check out the example for Single Transactions.

note

Textual description of each transaction is presented from the perspective of the signer. Events with descriptions such as "Did something with …" indicate that an interpreter for that type of onchain interaction has not yet been curated through interpretation.

Arguments

ArgumentDescriptionType
networkThe network(s) to retreive, input as an array.Network!
realtimeInterpretationHuman-readable transactions, default is on.Boolean = true
addressesThe address(s) that is being queried, input as an array.Address!
tokenAddressesFilter by token address(s), input as an array. Maximum 20 token addresses per query.Address!
isSignerFilter by signer.Boolean
spamFilterFilter for spam, default is on.Boolean = true
firstUsed for pagination.Int!
afterUsed for pagination.String!

Fields

Main Fields

FieldDescriptionType
keyA unique identifierString!
networkNetwork on which the transaction happenedNetwork!
timestampUnix timestamp in millisecondsTimestamp!
transactionContains detailed onchain transaction informationOnChainTransaction!
appThe associated application detailsActivityFeedApp!
interpretationContains human-readable descriptions and asset transfersActivityInterpretation!

Transaction Fields

FieldDescriptionType
fromUserThe initiating address with its detailsAccount!
toUserThe receiving address with its detailsAccount!
hashTransaction hashString!
nonceTransaction nonceInt!
gasPriceGas price in weiString!
gasGas limitInt!

Account Fields

FieldDescriptionType
addressThe wallet addressAddress!
displayNameThe account's display name (ENS, Lens, etc.)DisplayName!

Interpretation Fields

FieldDescriptionType
processedDescriptionHuman-readable description of the transactionString!
inboundAttachmentsAssets received in the transaction[ActivityFeedDisplayItem!]!
outboundAttachmentsAssets sent in the transaction[ActivityFeedDisplayItem!]!

TokenDisplayItem Fields (in attachments)

FieldDescriptionType
typeType identifier for the display itemString!
networkNetwork of the tokenNetwork!
tokenAddressContract address of the tokenAddress!
amountRawRaw token amount (requires decimal adjustment)String!
tokenV2Detailed token informationFungibleToken!

TokenV2 Fields

FieldDescriptionType
addressToken contract addressAddress!
symbolToken symbol (e.g., "USDC")String!
decimalsNumber of decimal placesInt!
nameFull token nameString!
imageUrlToken icon URLString!
marketDataCurrent market informationMarketData

NFTDisplayItem Fields (in attachments)

FieldDescriptionType
typeType identifier for the display itemString!
networkNetwork of the NFTNetwork!
collectionAddressContract address of the NFT collectionAddress!
tokenIdUnique identifier of the NFTString!
quantityNumber of NFTs transferredFloat

MarketData Fields

FieldDescriptionType
priceCurrent price in specified currencyFloat
tip

When working with token amounts, remember to divide amountRaw by 10^decimals to get the human-readable amount. For example, an amountRaw of "21211050963" with 6 decimals represents 21,211.051 tokens.

note

All fields marked with ! are required fields in the response.