AptosAptos Network's breakthrough technology and seamless user experience are now available on QuickNode.

Start building today!     

Web3 developers,
meet Graph API

Fetch powerful market insights, trading data, transactions by wallets and contracts, cached NFT images, and more with our simple Graph API.

# Query all transaction data
query WalletTransactions($filter: TransactionsFilterInput){
  ethereum {
    transactions(
      first: 5
      orderDirection: DESC
      filter: $filter
    ) {
      edges {
        node {
          blockTimestamp
          transactionIndex
          hash
          blockNumber
          contractAddress
          type
          value
        }
      }
    }
  }
}

Response

{
  "data": {
    "ethereum": {
      "transactions": {
        "edges": [
          {
            "node": {
              "blockTimestamp": "2023-05-08T14:10:59.000Z",
              "transactionIndex": 141,
              "hash": "0xa94a1865f81c64c3279006c47637989d05ba0b92b86e169d317981cd06a912ac",
              "blockNumber": 17216281,
              "contractAddress": null,
              "type": "0x2",
              "value": "150000000000000000"
            }
          },
          {
            "node": {
              "blockTimestamp": "2023-05-08T14:10:59.000Z",
              "transactionIndex": 140,
              "hash": "0xf0325030969f1e10a72d3e803232045551b2be5ed1f38b44adb8ff280d3e5dc1",
              "blockNumber": 17216281,
              "contractAddress": null,
              "type": "0x2",
              "value": "30000000000000000"
            }
          },
          {
            "node": {
              "blockTimestamp": "2023-05-08T14:10:59.000Z",
              "transactionIndex": 139,
              "hash": "0xcde179d2ad6a4d71b7f3cf0e754aa8a71b4a060837cced2682513897e754018e",
              "blockNumber": 17216281,
              "contractAddress": null,
              "type": "0x2",
              "value": "182989090000000000"
            }
          },
          {
            "node": {
              "blockTimestamp": "2023-05-08T14:10:59.000Z",
              "transactionIndex": 138,
              "hash": "0xa6de8909166721265666407633c7cc16860d1d1032bd3f6e70ab20a7bc597e44",
              "blockNumber": 17216281,
              "contractAddress": null,
              "type": "0x2",
              "value": 0
            }
          },
          {
            "node": {
              "blockTimestamp": "2023-05-08T14:10:59.000Z",
              "transactionIndex": 137,
              "hash": "0xb88813a615b571793cfeb4cf29dbeb26e9bf5e559cec07182a52f2508bdd63e9",
              "blockNumber": 17216281,
              "contractAddress": null,
              "type": "0x2",
              "value": 0
            }
          }
        ]
      }
    }
  }
}
query MarketplaceData {
  ethereum {
    tokenEvents(filter: { timestamp: {gt: "2023-05-08T10:51:11.000Z"}, type: {eq: SALE}, contractStandard: {in: [ERC1155, ERC721]} }) {
      edges {
        node {
          type
          transferIndex
          transactionHash
          timestamp
          transaction {
            gasPrice
            value
          }
          ... on TokenSaleEvent {
            marketplace
            receivedTokenContractAddress
            receivedTokenId
            receivedTokenQuantity
            sentNft {
              tokenId
              contractAddress
            }
          }
        }
      }
    } 
  }
}

Response

{
  "data": {
    "ethereum": {
      "tokenEvents": {
        "edges": [
          {
            "node": {
              "type": "SALE",
              "transferIndex": 289,
              "transactionHash": "0xe9e6918ccc2222572abde45e2c633faf0e640e55cfb839f577edac8ce2ca1a4f",
              "timestamp": "2023-05-08T14:20:11.000Z",
              "transaction": {
                "gasPrice": 135525751872,
                "value": "115000000000000000"
              },
              "marketplace": "BLUR",
              "receivedTokenContractAddress": "0x0000000000000000000000000000000000000000",
              "receivedTokenId": null,
              "receivedTokenQuantity": "115000000000000000",
              "sentNft": {
                "tokenId": 6198,
                "contractAddress": "0x0fcbd68251819928c8f6d182fc04be733fa94170"
              }
            }
          },
          {
            "node": {
              "type": "SALE",
              "transferIndex": 383,
              "transactionHash": "0x965832ae01cb7c666ad64cf67e3b199fb197da1e0b55e5facb13dc68bca55050",
              "timestamp": "2023-05-08T14:20:11.000Z",
              "transaction": {
                "gasPrice": 135175751872,
                "value": "909000000000000000"
              },
              "marketplace": "OPENSEA",
              "receivedTokenContractAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
              "receivedTokenId": null,
              "receivedTokenQuantity": "909000000000000000",
              "sentNft": {
                "tokenId": 573,
                "contractAddress": "0xa636d716024faf7db5876dd817859984f00e7aef"
              }
            }
          }
        ]
      }
    }
  }
}
# Lookup NFT metadata and collection analytics
query CollectionDetails($contractAddress: String!, $tokenId: String!) {
  ethereum {
    collection(contractAddress: $contractAddress) {
      name
      externalUrl
      ... on ERC721Collection {
        stats {
          volume
          floor
        }
        nft(tokenId: $tokenId) {
          tokenId
          attributes {
            name
            value
          }
          uploads {
            url
          }
        }
      }
    }
  }
}

Response

{
  "data": {
    "ethereum": {
      "collection": {
        "name": "Bored Ape Yacht Club",
        "externalUrl": "http://www.boredapeyachtclub.com/",
        "stats": {
          "volume": 912.9067,
          "floor": 46.6
        },
        "nft": {
          "tokenId": 1,
          "attributes": [
            {
              "name": "Background",
              "value": "Orange"
            },
            {
              "name": "Clothes",
              "value": "Vietnam Jacket"
            },
            {
              "name": "Eyes",
              "value": "Blue Beams"
            },
            {
              "name": "Fur",
              "value": "Robot"
            },
            {
              "name": "Mouth",
              "value": "Grin"
            }
          ],
          "uploads": [
            {
              "url": "https://images.quicknode.workers.dev/xs/data/homestead/index/unprocessed/token-images/e0d9a1d4f1c3a8906cddc186e2570b6b48724669"
            },
            {
              "url": "https://images.quicknode.workers.dev/sm/data/homestead/index/unprocessed/token-images/e0d9a1d4f1c3a8906cddc186e2570b6b48724669"
            },
            {
              "url": "https://images.quicknode.workers.dev/md/data/homestead/index/unprocessed/token-images/e0d9a1d4f1c3a8906cddc186e2570b6b48724669"
            },
            {
              "url": "https://images.quicknode.workers.dev/lg/data/homestead/index/unprocessed/token-images/e0d9a1d4f1c3a8906cddc186e2570b6b48724669"
            },
            {
              "url": "https://images.quicknode.workers.dev/xl/data/homestead/index/unprocessed/token-images/e0d9a1d4f1c3a8906cddc186e2570b6b48724669"
            }
          ]
        }
      }
    }
  }
}
# Lookup ERC20 token balances by wallet
query ERC20Tokens($address: String!) {
  ethereum {
    walletByAddress(address: $address) {
      tokenBalances {
        edges {
          node {
            contract {
              address
              name
              decimals
              symbol
            }
            totalBalance
          }
        }
      }
    }
  }
}

Response

{
  "data": {
    "ethereum": {
      "walletByAddress": {
        "tokenBalances": {
          "edges": [
            {
              "node": {
                "contract": {
                  "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933",
                  "name": "Pepe",
                  "decimals": 18,
                  "symbol": "PEPE"
                },
                "totalBalance": "69420000000000000000000000"
              }
            },
            {
              "node": {
                "contract": {
                  "address": "0x7d8146cf21e8d7cbe46054e01588207b51198729",
                  "name": "BOB",
                  "decimals": 18,
                  "symbol": "BOB"
                },
                "totalBalance": "866543197971325171123408"
              }
            },
            {
              "node": {
                "contract": {
                  "address": "0x6361f338ab8def2af3f2a1be7bd8a7db3156f7e7",
                  "name": "Probably Nothing",
                  "decimals": 18,
                  "symbol": "PRBLY"
                },
                "totalBalance": "253759199800754053042064"
              }
            },
            
            {
              "node": {
                "contract": {
                  "address": "0xc18360217d8f7ab5e7c516566761ea12ce7f9d72",
                  "name": "Ethereum Name Service",
                  "decimals": 18,
                  "symbol": "ENS"
                },
                "totalBalance": 14336
              }
            }
          ]
        }
      }
    }
  }
}

Launch your next project
10x faster

Access blockchain data

Easily fetch NFT, ERC20, all transactions by wallet/contract data, and more.

Seamless integration

Graph API is designed to work seamlessly with your existing tech stack.

Improved performance

Retrieve only what you need, reducing the amount of data transferred over the network.

Reliability and uptime

Our data is depended upon by developers who need to make in-the-moment decisions.

Advanced security features for robust protection

Graph API has built-in security features like input validation and query complexity analysis.

Intuitive GraphQL API building tools

Get more control over API structure, making it easier to maintain and iterate.

Stream everything

Stay updated with the latest on-chain data through real-time Live Graph subscriptions.

Explore our docs

Get started using your
favorite language

The possibilities are endless with the Graph API.
Focus on what matters and launch faster.

Graph API Screens

Multi-chain data

Query enriched data, analytics, and more about NFTs, ERC20 Tokens, and transactions across multiple blockchain networks

Ethereum

Mainnet, Sepolia

Polygon

Mainnet

BNB Smart Chain

Coming soon

Arbitrum

Coming soon

Coming soon

Coming soon

Coming soon

Coming soon

Coming soon

Coming soon

Coming soon

Coming soon

Get started on your web3 journey

docs.svg

Documentation

Browse our robust documentation for all of our supported chains and learn how to call RPC methods using up-to-date libraries and code examples across Python, Ruby, JavaScript, and cURL.

Read the docs

guides.svg

Guides

Find the right guide to help you deploy smart contracts, create NFTs, build decentralized applications, and more across all of our supported blockchains.

Explore our guides

blog.svg

Blog

Stay up-to-date on the latest announcements for our key launches, new features, chains, and more.

Explore our blog