OpenZeppelin ContractsSubgraphs
Query examples
ERC20
Total supply and biggest token holders
{
erc20Contract(id: "<token-address-in-lowercase>") {
totalSupply {
value
}
balances(orderBy: valueExact, orderDirection: desc, where: { account_not: null }) {
account {
id
}
value
}
}
}
Most recent transfers with transaction id
{
erc20Contract(id: "<token-address-in-lowercase>") {
transfers(orderBy: timestamp, orderDirection: desc) {
from { id }
to { id }
value
transaction { id }
}
}
}
All indexed ERC20 balances for a user
{
account(id: "<user-address-in-lowercase>") {
ERC20balances {
contract{ name, symbol, decimals }
value
}
}
}
ERC721
All ERC721 tokens for a user, with metadata
{
account(id: "<user-address-in-lowercase>") {
ERC721tokens {
contract { id }
identifier
uri
}
}
}
All ERC721 tokens on a contract, with current owner
{
erc721Contract(id: "<registry-address-in-lowercase>") {
tokens {
identifier
owner { id }
}
}
}
History of all transfers for a given token
{
erc721Tokens(where: {
contract: "<registry-address-in-lowercase>",
identifier: "<token-identifier-in-decimal>",
}) {
transfers {
timestamp
from { id }
to { id }
}
}
}
ERC1155
All tokens for a registry with corresponding totalSupply and balances
{
erc1155Contract(id: "<registry-address-in-lowercase>") {
tokens {
identifier
totalSupply { value }
balances(where: { account_not: null }) {
account { id }
value
}
}
}
}
Ownable
History of transfers for an ownable contract
{
ownable(id : "<ownable-address-in-lowercase>") {
ownershipTransferred(orderBy: timestamp, orderDirection: asc) {
timestamp
owner { id }
}
}
}
All ownable contract help by an account
{
account(id: "<user-address-in-lowercase>") {
ownerOf {
id
}
}
}
AccessControl
All roles, with details and current members for an AccessControl powered contract
{
accessControl(id: "<accesscontrol-contract-in-lowercase>") {
roles {
role { id }
admin { role { id } }
adminOf { role { id } }
members { account { id } }
}
}
}
All AccessControl roles held by an account
{
account(id: "<user-address-in-lowercase>") {
membership {
accesscontrolrole {
contract { id }
role { id }
}
}
}
}
Timelock
Pending operations on a timelock, with details of subcalls and deadline
{
timelock(id: "<timelock-address-in-lowercase>") {
id
operations(where: { status: "SCHEDULED"}) {
calls {
target { id }
value
data
}
timestamp
}
}
}
All timelocked operations to an address, with status and details of the call
{
account(id: "<address-of-the-target-in-lowercase>") {
timelockedCalls {
operation {
contract { id }
timestamp
status
}
value
data
}
}
}