Legacy Queries & Mutations
The following queries have been deprecated and may become inaccessible in the future. For guidance on which alternative queries to use instead, please refer to each deprecated query's deprecation description in the API Schema or Sandbox.
Trending Tokens
Personalized token discovery based on the Farcaster social graph.
tokenTrends
The tokenTrends endpoint produces an algorithmically ranked token feed based on swap activity and velocity of adoption across a user's network - updating in real-time as onchain activity happens. Similar to how a traditional content feed refreshes when friends post, this delivers a fresh stream of relevant tokens as their social graph interacts onchain.
Variables
{
"fid": 177,
"first": 5,
}
Each feed is tailored to a given account using the fid parameter.
Example Query
query TokenTrends($fid: Int!, $first: Int) {
tokenTrends(fid: $fid, first: $first) {
edges {
node {
# Token Metadata
tokenAddress
chainId
token {
name
symbol
imageUrlV2
decimals
# Price & Market Data
priceData {
price
priceChange24h
volume24h
marketCap
# Swaps by followed accounts (if any)
latestRelevantFarcasterSwaps(fid: $fid, first: 1) {
edges {
node {
timestamp
volumeUsd
amount
isBuy
profile {
username
fid
metadata {
displayName
imageUrl
}
}
}
}
}
}
}
}
}
}
}
Increase feed engagement by surfacing the swaps made by accounts that a user follows by returning latestRelevantFarcasterSwaps.
Example Response
{
"data": {
"tokenTrends": {
"edges": [
{
"node": {
"tokenAddress": "0x5ba8d32579a4497c12d327289a103c3ad5b64eb1",
"chainId": 8453,
"token": {
"name": "Tipn",
"symbol": "TIPN",
"imageUrlV2": "https://storage.googleapis.com/zapper-fi-assets/tokens/base/0x5ba8d32579a4497c12d327289a103c3ad5b64eb1.png",
"decimals": 18,
"priceData": {
"price": 0.0005557188721959456,
"priceChange24h": 15.991171767436763,
"volume24h": 227291.734375,
"marketCap": 555718.8721959456,
"latestRelevantFarcasterSwaps": {
"edges": [
{
"node": {
"timestamp": 1750866271000,
"volumeUsd": 4.6370152602404335,
"amount": 9775.532455295443,
"isBuy": true,
"profile": {
"username": "squirtle0x.eth",
"fid": 4022,
"metadata": {
"displayName": "Squirtle0x",
"imageUrl": "https://i.imgur.com/O7W7iUL.jpg"
}
}
}
}
]
}
}
}
}
},
{
"node": {
"tokenAddress": "0x9cb41fd9dc6891bae8187029461bfaadf6cc0c69",
"chainId": 8453,
"token": {
"name": "noice",
"symbol": "noice",
"imageUrlV2": "https://storage.googleapis.com/zapper-fi-assets/tokens/base/0x9cb41fd9dc6891bae8187029461bfaadf6cc0c69.png",
"decimals": 18,
"priceData": {
"price": 0.000059008100327634114,
"priceChange24h": 0.8789355375560026,
"volume24h": 232034.8125,
"marketCap": 5900810.032763411,
"latestRelevantFarcasterSwaps": {
"edges": [
{
"node": {
"timestamp": 1750960005000,
"volumeUsd": 24.017783639665403,
"amount": 379541.4507747071,
"isBuy": true,
"profile": {
"username": "baseddesigner.eth",
"fid": 196957,
"metadata": {
"displayName": "max ↑",
"imageUrl": "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/5df27ed5-a866-4a1d-765e-c756f11aae00/rectcrop3"
}
}
}
}
]
}
}
}
}
},
{
"node": {
"tokenAddress": "0x2da56acb9ea78330f947bd57c54119debda7af71",
"chainId": 8453,
"token": {
"name": "Mog Coin",
"symbol": "Mog",
"imageUrlV2": "https://storage.googleapis.com/zapper-fi-assets/tokens/base/0x2da56acb9ea78330f947bd57c54119debda7af71.png",
"decimals": 18,
"priceData": {
"price": 9.069044510568329e-7,
"priceChange24h": -3.8561894476643377,
"volume24h": 171638.59375,
"marketCap": 0,
"latestRelevantFarcasterSwaps": {
"edges": [
{
"node": {
"timestamp": 1750837045000,
"volumeUsd": 0.9902968287564057,
"amount": 1019834.8820828298,
"isBuy": true,
"profile": {
"username": "terricola.eth",
"fid": 21024,
"metadata": {
"displayName": "terricola",
"imageUrl": "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/2d5e2463-6a1b-4973-c808-3ec0b0eb8300/original"
}
}
}
}
]
}
}
}
}
}
]
}
}
}
Balance Computation
Token and app balances no longer require prior computation on the new portfolioV2 query. This updated endpoint eliminates the need for separate balance computation jobs and provides enhanced functionality. The original portfolio query will continue to require computation jobs but we recommend migrating to portfolioV2.
computeTokenBalances
Initiates a job to compute token balances for a wallet.
The input type for both mutations is PortfolioInput:
input PortfolioInput {
"""
The wallet addresses for which to fetch balances
"""
addresses: [Address!]!
"""
The networks for which to fetch balances
"""
networks: [Network!]
"""
The app slugs for which to fetch balances
"""
appIds: [String!]
flagAsStale: Boolean
}
Example Variables
{
"input": {
"addresses": ["Habp5bncMSsBC3vkChyebepym5dcTNRYeg2LVG464E96"],
"networks": ["BITCOIN_MAINNET", "SOLANA_MAINNET"]
}
}
Example Mutation
mutation ComputeTokenBalances($input: PortfolioInput!) {
computeTokenBalances(input: $input) {
jobId
}
}
Example Response
{
"data": {
"computeTokenBalances": {
"jobId": "38b53084-9e84-46fd-a5fc-e7463baba936"
}
}
}
computeAppBalances
Initiates a job to compute app balances for a wallet.