Tally API Reference

Welcome to Tally's public API docs. These API endpoints make it easy to pull data about Governor contracts, their proposals, and accounts that participate in on-chain DAOs.

Contact

API Support

support@tally.xyz

License

An Apache 2.0 covers these API docs

https://www.apache.org/licenses/LICENSE-2.0.html

API Endpoints
https://api.tally.xyz/query
Headers
# A Tally API token
Api-key: YOUR_KEY_HERE

Getting started

To get started, you'll need an API key. Create by signing in to Tally and requesting on your user settings page. You'll need to include the API key as an HTTP header with every request.

Graphql Playgound

Once you have an API key, you can test out these endpoints with the Graphql API Playground. Add your API key under the "Request Headers" section, like this {"Api-key":"YOUR_KEY_HERE"} Note that the playground also includes undocumented endpoints. Using them is not recommended for production apps, because they are subject to change without notice.

Quickstart Example

To see an exmaple app that uses the API, clone this quickstart example. This React app uses the Tally API to list Governors and their Proposals.

Rate limits

Because the API is free, we have a fairly low rate limit to keep costs down. If you're interested in increasing your rate limit, reach out to us at support@tally.xyz.

Queries

accounts

Response

Returns [Account!]!

Arguments
Name Description
ids - [AccountID!]
addresses - [Address!]

Example

Query
query Accounts(
  $ids: [AccountID!],
  $addresses: [Address!]
) {
  accounts(
    ids: $ids,
    addresses: $addresses
  ) {
    id
    address
    ens
    twitter
    name
    bio
    participations {
      account {
        ...AccountFragment
      }
      governor {
        ...GovernorFragment
      }
      votes {
        ...VoteFragment
      }
      proposals {
        ...ProposalFragment
      }
      stats {
        ...ParticipationStatsFragment
      }
      delegationsIn {
        ...DelegationFragment
      }
      delegationOut {
        ...DelegationFragment
      }
      weightChanges {
        ...DelegationWeightChangeFragment
      }
      votingPowerChanges {
        ...VotingPowerChangeFragment
      }
    }
    picture
    activity {
      ... on Proposal {
        ...ProposalFragment
      }
      ... on Vote {
        ...VoteFragment
      }
    }
  }
}
Variables
{
  "ids": [
    "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
  ],
  "addresses": [
    "0x1234567800000000000000000000000000000abc"
  ]
}
Response
{
  "data": {
    "accounts": [
      {
        "id": "4",
        "address": "0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
        "ens": "tallyxyz.eth",
        "twitter": "@tallyxyz",
        "name": "Tally",
        "bio": "Now accepting delegations!",
        "participations": [Participation],
        "picture": "https://static.tally.xyz/logo.png",
        "activity": [Proposal]
      }
    ]
  }
}

chains

Response

Returns [Chain]!

Example

Query
query Chains {
  chains {
    id
    layer1Id
    name
    mediumName
    shortName
    blockTime
    isTestnet
    nativeCurrency {
      name
      symbol
      decimals
    }
    chain
    blockExplorerURL
    useLayer1VotingPeriod
  }
}
Response
{
  "data": {
    "chains": [
      {
        "id": "eip155:1",
        "layer1Id": "eip155:1",
        "name": "Ethereum Mainnet",
        "mediumName": "Ethereum",
        "shortName": "eth",
        "blockTime": 12,
        "isTestnet": false,
        "nativeCurrency": "ETH",
        "chain": "ETH",
        "blockExplorerURL": "https://api.etherscan.io/api",
        "useLayer1VotingPeriod": true
      }
    ]
  }
}

governors

Description

Returns a list of governors that match the provided filters. Note: Tally may deactivate governors from time to time. If you wish to include those set includeInactive to true.

Response

Returns [Governor!]!

Arguments
Name Description
chainIds - [ChainID!]
addresses - [Address!] Ethereum 0x governor addresses
ids - [AccountID!] Chain scoped governor addresses
includeInactive - Boolean Tally may deactivate governors from time to time. If you wish to include those set includeInactive to true
pagination - Pagination
sort - GovernorSort

Example

Query
query Governors(
  $chainIds: [ChainID!],
  $addresses: [Address!],
  $ids: [AccountID!],
  $includeInactive: Boolean,
  $pagination: Pagination,
  $sort: GovernorSort
) {
  governors(
    chainIds: $chainIds,
    addresses: $addresses,
    ids: $ids,
    includeInactive: $includeInactive,
    pagination: $pagination,
    sort: $sort
  ) {
    id
    type
    parameters {
      ... on GovernorAlphaParameters {
        ...GovernorAlphaParametersFragment
      }
      ... on GovernorBravoParameters {
        ...GovernorBravoParametersFragment
      }
      ... on OpenZeppelinGovernorParameters {
        ...OpenZeppelinGovernorParametersFragment
      }
      ... on GovernorAaveParameters {
        ...GovernorAaveParametersFragment
      }
    }
    lastIndexedBlock {
      id
      number
      timestamp
    }
    proposals {
      id
      title
      description
      start {
        ...BlockFragment
      }
      end {
        ...BlockFragment
      }
      eta
      block {
        ...BlockFragment
      }
      governanceId
      governor {
        ...GovernorFragment
      }
      executable {
        ...ExecutableFragment
      }
      proposer {
        ...AccountFragment
      }
      voteStats {
        ...VoteStatFragment
      }
      statusChanges {
        ...StatusChangeFragment
      }
      createdTransaction {
        ...TransactionFragment
      }
      votes {
        ...VoteFragment
      }
      votingPower
    }
    proposalStats {
      total
      active
      failed
      passed
    }
    delegates {
      account {
        ...AccountFragment
      }
      governor {
        ...GovernorFragment
      }
      votes {
        ...VoteFragment
      }
      proposals {
        ...ProposalFragment
      }
      stats {
        ...ParticipationStatsFragment
      }
      delegationsIn {
        ...DelegationFragment
      }
      delegationOut {
        ...DelegationFragment
      }
      weightChanges {
        ...DelegationWeightChangeFragment
      }
      votingPowerChanges {
        ...VotingPowerChangeFragment
      }
    }
    quorum
    timelockId
    tokens {
      id
      type
      address
      name
      symbol
      supply
      lastBlock
      lastIndexedBlock {
        ...BlockFragment
      }
      decimals
      stats {
        ...GovernorTokenStatsFragment
      }
    }
    name
    delegatedVotingPower
    balance
    slug
  }
}
Variables
{
  "chainIds": ["eip155:1"],
  "addresses": [
    "0x1234567800000000000000000000000000000abc"
  ],
  "ids": [
    "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
  ],
  "includeInactive": true,
  "pagination": Pagination,
  "sort": GovernorSort
}
Response
{
  "data": {
    "governors": [
      {
        "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
        "type": "GOVERNORALPHA",
        "parameters": GovernorAlphaParameters,
        "lastIndexedBlock": Block,
        "proposals": [Proposal],
        "proposalStats": ProposalStats,
        "delegates": [Participation],
        "quorum": 10987654321,
        "timelockId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
        "tokens": [Token],
        "name": "Uniswap",
        "delegatedVotingPower": 10987654321,
        "balance": 10987654321,
        "slug": "uniswap"
      }
    ]
  }
}

proposals

Response

Returns [Proposal!]!

Arguments
Name Description
chainId - ChainID!
proposers - [Address!]
governors - [Address!]
proposalIds - [ID!]
sort - ProposalSort
pagination - Pagination

Example

Query
query Proposals(
  $chainId: ChainID!,
  $proposers: [Address!],
  $governors: [Address!],
  $proposalIds: [ID!],
  $sort: ProposalSort,
  $pagination: Pagination
) {
  proposals(
    chainId: $chainId,
    proposers: $proposers,
    governors: $governors,
    proposalIds: $proposalIds,
    sort: $sort,
    pagination: $pagination
  ) {
    id
    title
    description
    start {
      id
      number
      timestamp
    }
    end {
      id
      number
      timestamp
    }
    eta
    block {
      id
      number
      timestamp
    }
    governanceId
    governor {
      id
      type
      parameters {
        ... on GovernorAlphaParameters {
          ...GovernorAlphaParametersFragment
        }
        ... on GovernorBravoParameters {
          ...GovernorBravoParametersFragment
        }
        ... on OpenZeppelinGovernorParameters {
          ...OpenZeppelinGovernorParametersFragment
        }
        ... on GovernorAaveParameters {
          ...GovernorAaveParametersFragment
        }
      }
      lastIndexedBlock {
        ...BlockFragment
      }
      proposals {
        ...ProposalFragment
      }
      proposalStats {
        ...ProposalStatsFragment
      }
      delegates {
        ...ParticipationFragment
      }
      quorum
      timelockId
      tokens {
        ...TokenFragment
      }
      name
      delegatedVotingPower
      balance
      slug
    }
    executable {
      callDatas
      signatures
      targets
      values
    }
    proposer {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
    }
    voteStats {
      support
      weight
      votes
      percent
    }
    statusChanges {
      type
      blockNumber
      blockTimestamp
      block {
        ...BlockFragment
      }
      txHash
      transaction {
        ...TransactionFragment
      }
    }
    createdTransaction {
      id
      block {
        ...BlockFragment
      }
    }
    votes {
      id
      voter {
        ...AccountFragment
      }
      hash
      support
      weight
      transaction {
        ...TransactionFragment
      }
      block {
        ...BlockFragment
      }
      reason
      proposal {
        ...ProposalFragment
      }
    }
    votingPower
  }
}
Variables
{
  "chainId": "eip155:1",
  "proposers": [
    "0x1234567800000000000000000000000000000abc"
  ],
  "governors": [
    "0x1234567800000000000000000000000000000abc"
  ],
  "proposalIds": [4],
  "sort": ProposalSort,
  "pagination": Pagination
}
Response
{
  "data": {
    "proposals": [
      {
        "id": "4",
        "title": "Fund the Grants Program",
        "description": "Here's why it's a good idea to fund the Grants Program",
        "start": Block,
        "end": Block,
        "eta": 1675437793,
        "block": Block,
        "governanceId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
        "governor": Governor,
        "executable": Executable,
        "proposer": Account,
        "voteStats": [VoteStat],
        "statusChanges": [StatusChange],
        "createdTransaction": Transaction,
        "votes": [Vote],
        "votingPower": 10987654321
      }
    ]
  }
}

Types

Account

Description

A Blockchain Account with its associated metadata, participations and activity.

Fields
Field Name Description
id - ID!
address - Address! EVM Address for this Account
ens - String Ethereum Name Service Name
twitter - String Twitter handle
name - String! Account name set on Tally
bio - String! Account bio set on Tally
participations - [Participation!]! Governances where an Account has a token balance or delegations along with Account Participation: votes, proposals, stats, delegations, etc.
Arguments
governanceIds - [AccountID!]
includeInactive - Boolean
pagination - Pagination
picture - String Picture URL
activity - [ActivityItem!] AccountActivity (votes, proposals created, etc). Currently only supports on chain governance.
Arguments
governanceIds - [AccountID!]
pagination - Pagination
Example
{
  "id": 4,
  "address": "0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "ens": "tallyxyz.eth",
  "twitter": "@tallyxyz",
  "name": "Tally",
  "bio": "Now accepting delegations!",
  "participations": [Participation],
  "picture": "https://static.tally.xyz/logo.png",
  "activity": [Proposal]
}

AccountActivitySort

Fields
Input Field Description
field - AccountActivitySortField
order - SortOrder
Example
{"field": "BLOCK_TIMESTAMP", "order": "ASC"}

AccountActivitySortField

Values
Enum Value Description

BLOCK_TIMESTAMP

Example
"BLOCK_TIMESTAMP"

AccountID

Description

AccountID is a CAIP-10 compliant account id.

Example
"eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"

ActivityItem

Types
Union Types

Proposal

Vote

Example
Proposal

Address

Description

Address is a 20 byte Ethereum address, represented as 0x-prefixed hexadecimal.

Example
"0x1234567800000000000000000000000000000abc"

AssetID

Description

AssetID is a CAIP-19 compliant asset id.

Example
"eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f"

BigInt

Description

BigInt is a large integer represented as a string.

Example
10987654321

Block

Fields
Field Name Description
id - BlockID!
number - Long!
timestamp - Timestamp!
Example
{
  "id": BlockID,
  "number": 1553735115537351,
  "timestamp": 1663224162
}

BlockID

Description

BlockID is a ChainID scoped identifier for identifying blocks across chains. Ex: eip155:1:15672.

Example
BlockID

Boolean

Description

The Boolean scalar type represents true or false.

Bytes

Description

Bytes is an arbitrary length binary string, represented as 0x-prefixed hexadecimal.

Example
"0x4321abcd"

Bytes32

Description

Bytes32 is a 32 byte binary string, represented as 0x-prefixed hexadecimal.

Example
"0x0987abcd00000000000000000000000000000000000000000000000000004321"

Chain

Description

Chain data in the models are only loaded on server startup. If changed please restart the api servers.

Fields
Field Name Description
id - ChainID! The id in eip155:chain_id
layer1Id - ChainID If chain is an L2, the L1 id in format eip155:chain_id
name - String! Chain name as found in eip lists. e.g.: Ethereum Testnet Rinkeby
mediumName - String! Chain name with removed redundancy and unnecessary words. e.g.: Ethereum Rinkeby
shortName - String! Chain short name as found in eip lists. The Acronym of it. e.g.: rin
blockTime - Float! Average block time in seconds.
isTestnet - Boolean! Boolean true if it is a testnet, false if it's not.
nativeCurrency - NativeCurrency! Data from chain native currency.
chain - String! Chain as parameter found in the eip.
blockExplorerURL - String! API url of the block explorer
useLayer1VotingPeriod - Boolean! Boolean true if L2 depends on L1 for voting period, false if it doesn't.
Example
{
  "id": "eip155:1",
  "layer1Id": "eip155:1",
  "name": "Ethereum Mainnet",
  "mediumName": "Ethereum",
  "shortName": "eth",
  "blockTime": 12,
  "isTestnet": false,
  "nativeCurrency": "ETH",
  "chain": "ETH",
  "blockExplorerURL": "https://api.etherscan.io/api",
  "useLayer1VotingPeriod": false
}

ChainID

Description

ChainID is a CAIP-2 compliant chain id.

Example
"eip155:1"

DecodedParameter

Description

A single parameter used in a method.

Fields
Field Name Description
name - String!
type - String!
value - Bytes!
calls - [ExecutableCall!] Decoded calls in the case of a transactions parameter on multisend contract or similar.
Example
{
  "name": "targets",
  "type": "address[]",
  "value": "0x4321abcd",
  "calls": [ExecutableCall]
}

DelegateSort

Fields
Input Field Description
field - DelegateSortField
order - SortOrder
Example
{"field": "CREATED", "order": "ASC"}

DelegateSortField

Values
Enum Value Description

CREATED

UPDATED

TOKENS_OWNED

VOTING_WEIGHT

DELEGATIONS

HAS_ENS

HAS_DELEGATE_STATEMENT

PROPOSALS_CREATED

VOTES_CAST

Example
"CREATED"

Delegation

Fields
Field Name Description
token - Token! Token contract where this Delegation was created
votingPower - BigInt! Voting Power delegated at time of delegation
delegator - Account! Actor who is delegating their voting power
from - Account! The Account this voting power was delegated to before this Delegation event
to - Account! The Account to whom the voting power is not delegated
block - Block! The Block when the Delegation took place
Example
{
  "token": Token,
  "votingPower": 1000,
  "delegator": Account,
  "from": Account,
  "to": Account,
  "block": Block
}

DelegationWeightChange

Fields
Field Name Description
token - Token!
delegate - Account!
prevBalance - BigInt!
newBalance - BigInt!
netChange - BigInt!
hash - Bytes32
block - Block
timestamp - Timestamp!
Example
{
  "token": Token,
  "delegate": Account,
  "prevBalance": 1000,
  "newBalance": 900,
  "netChange": -100,
  "hash": "0x0987abcd00000000000000000000000000000000000000000000000000004321",
  "block": Block,
  "timestamp": 1663224162
}

DelegationWeightChangeSort

Fields
Input Field Description
field - DelegationWeightChangeSortField
order - SortOrder
Example
{"field": "CREATED", "order": "ASC"}

DelegationWeightChangeSortField

Values
Enum Value Description

CREATED

NEW_BALANCE

OLD_BALANCE

NET_CHANGE

Example
"CREATED"

DelegationWeightStats

Fields
Field Name Description
in - BigInt!
out - BigInt!
Example
{"in": 10987654321, "out": 10987654321}

Executable

Description

Executable payload of a proposal. This is contains four arrays each of which contain an element for each action included.

Fields
Field Name Description
callDatas - [Bytes!]! Call data sent
signatures - [Bytes!]! Method signatures for the target. Only set in Alpha and Bravo style Governors.
targets - [Address!]! Contract targets
values - [BigInt!]! Amount of native asset to be transferred
Example
{
  "callDatas": ["0x4321abcd"],
  "signatures": ["0x4321abcd"],
  "targets": [
    "0x1234567800000000000000000000000000000abc"
  ],
  "values": [10987654321]
}

ExecutableCall

Description

Describes what happens if a given Proposal or GnosisSafeTransaction is executed. A call can have an unlimited amount of nested parameters which can have their own calls in the case of a common initial call to a multisend contract.

Fields
Field Name Description
target - AccountID! AccountID of contract that will be called.
method - String Method to be called on the target smart contract.
data - Bytes Input data that will be sent to the target method. Individual parameters derived from this data are available on the parameters field if decoding succeeds.
value - BigInt Amount of native asset that will be sent to the target contract & method.
parameters - [DecodedParameter!] DecodedParameters sent to the method on the target contract.
Example
{
  "target": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "method": "transfer(address,uint256)",
  "data": "0xa9059cbb00000000000000000000000091c32893216de3ea0a55abb9851f581d4503d39b0000000000000000000000000000000000000000000000bdbc41e0348b3000000",
  "value": 0,
  "parameters": [DecodedParameter]
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

Governor

Description

Core type that describes an onchain Governor contract

Fields
Field Name Description
id - AccountID!
type - GovernorType! Governor contract type
parameters - GovernorParameters!
lastIndexedBlock - Block! Last block that Tally has indexed. Sometimes our indexer needs to catch up. Our indexer is usually ~1min behind depending on chain so we don't serve data that might later be reorged.
proposals - [Proposal!]! Proposals created using this Governor contract
Arguments
proposers - [Address!]
proposalIds - [ID!]
sort - ProposalSort
pagination - Pagination
proposalStats - ProposalStats! Counts of total, active, failed, and passed proosals.
delegates - [Participation!]! List of users that can currently create proposals and vote.
Arguments
sort - DelegateSort
pagination - Pagination
quorum - BigInt! The minumum amount of votes (total or for depending on type) that are currently required to pass a proposal.
timelockId - AccountID Chain scoped address of the timelock contract for this governor if it exists.
tokens - [Token!]! List of related tokens used to operate this contract. Most governors only have one.
name - String! Tally name of the governor contract
delegatedVotingPower - BigInt! Current voting power of a particular address
Arguments
id - AccountID!
balance - BigInt! Current tokens owned by a particular address
Arguments
id - AccountID!
slug - String! Tally slug used for this goverance: tally.xyz/gov/[slug]
Example
{
  "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "type": "GOVERNORALPHA",
  "parameters": GovernorAlphaParameters,
  "lastIndexedBlock": Block,
  "proposals": [Proposal],
  "proposalStats": ProposalStats,
  "delegates": [Participation],
  "quorum": 10987654321,
  "timelockId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "tokens": [Token],
  "name": "Uniswap",
  "delegatedVotingPower": 10987654321,
  "balance": 10987654321,
  "slug": "uniswap"
}

GovernorAaveParameters

Fields
Field Name Description
quorumVotes - BigInt Amount of votes needed for a proposal to qualify for passing
proposalThreshold - BigInt! Amount of votes needed to create a proposal
votingDelay - BigInt! Amount of blocks before a proposal can be voted on
votingPeriod - BigInt! Amount of blocks a proposal remains active
quorumNumerator - BigInt If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - BigInt If the governor supports fractional quorum the denominatior of the quorum fraction
Example
{
  "quorumVotes": 10000,
  "proposalThreshold": 500,
  "votingDelay": 0,
  "votingPeriod": 14400,
  "quorumNumerator": 5,
  "quorumDenominator": 100
}

GovernorAlphaParameters

Fields
Field Name Description
quorumVotes - BigInt Amount of votes needed for a proposal to qualify for passing
proposalThreshold - BigInt! Amount of votes needed to create a proposal
votingDelay - BigInt! Amount of blocks before a proposal can be voted on
votingPeriod - BigInt! Amount of blocks a proposal remains active
quorumNumerator - BigInt If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - BigInt If the governor supports fractional quorum the denominatior of the quorum fraction
Example
{
  "quorumVotes": 10000,
  "proposalThreshold": 500,
  "votingDelay": 0,
  "votingPeriod": 14400,
  "quorumNumerator": 5,
  "quorumDenominator": 100
}

GovernorBravoParameters

Fields
Field Name Description
quorumVotes - BigInt Amount of votes needed for a proposal to qualify for passing
proposalThreshold - BigInt! Amount of votes needed to create a proposal
votingDelay - BigInt! Amount of blocks before a proposal can be voted on
votingPeriod - BigInt! Amount of blocks a proposal remains active
quorumNumerator - BigInt If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - BigInt If the governor supports fractional quorum the denominatior of the quorum fraction
Example
{
  "quorumVotes": 10000,
  "proposalThreshold": 500,
  "votingDelay": 0,
  "votingPeriod": 14400,
  "quorumNumerator": 5,
  "quorumDenominator": 100
}

GovernorParameters

GovernorSort

Fields
Input Field Description
field - GovernorSortField
order - SortOrder
Example
{"field": "TOTAL_PROPOSALS", "order": "ASC"}

GovernorSortField

Values
Enum Value Description

TOTAL_PROPOSALS

ACTIVE_PROPOSALS

Example
"TOTAL_PROPOSALS"

GovernorTokenStats

Description

Current token stats

Fields
Field Name Description
owners - Int! Number of addresses with non-zero balances of this token derived from Transfer events
voters - Int! Number of addresses with non-zero voting power of this token derived from DelegateVotesChanged events
supply - BigInt! Supply derived from Transfer events
delegatedVotingPower - BigInt! Total delegated voting power from DelegateVotesChanged events
Example
{
  "owners": 987,
  "voters": 987,
  "supply": 10987654321,
  "delegatedVotingPower": 10987654321
}

GovernorType

Description

Governor contract type

Values
Enum Value Description

GOVERNORALPHA

GOVERNORBRAVO

OPENZEPPELINGOVERNOR

AAVE

Example
"GOVERNORALPHA"

HashID

Description

HashID is a ChainID scoped identifier for identifying transactions across chains. Ex: eip155:1:0xDEAD.

Example
"eip155:1:0xcd31cf5dbd3281442d80ceaa529eba678d55be86b7a342f5ed9cc8e49dadc855"

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

Long

Description

Long is a 64 bit unsigned integer.

Example
123456789

NativeCurrency

Fields
Field Name Description
name - String! Name of the Currency. e.g.: Ether
symbol - String! Symbol of the Currency. e.g.: ETH
decimals - Long! Decimals of the Currency. e.g.: 18
Example
{
  "name": "abc123",
  "symbol": "abc123",
  "decimals": 123456789
}

OpenZeppelinGovernorParameters

Fields
Field Name Description
quorumVotes - BigInt Amount of votes needed for a proposal to qualify for passing
proposalThreshold - BigInt! Amount of votes needed to create a proposal
votingDelay - BigInt! Amount of blocks before a proposal can be voted on
votingPeriod - BigInt! Amount of blocks a proposal remains active
quorumNumerator - BigInt If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - BigInt If the governor supports fractional quorum the denominatior of the quorum fraction
Example
{
  "quorumVotes": 10000,
  "proposalThreshold": 500,
  "votingDelay": 0,
  "votingPeriod": 14400,
  "quorumNumerator": 5,
  "quorumDenominator": 100
}

Pagination

Fields
Input Field Description
limit - Int
offset - Int
Example
{"limit": 20, "offset": 0}

Participation

Description

Convenience type representing the activity a particular Account has in a Governor contract or it's related Token contract.

Fields
Field Name Description
account - Account!
governor - Governor!
votes - [Vote!]! Votes made by the account on the governor
Arguments
sort - VoteSort
pagination - Pagination
proposals - [Proposal!]! Proposals created by this account
Arguments
sort - ProposalSort
pagination - Pagination
stats - ParticipationStats! Aggregations of account activity in this governor
delegationsIn - [Delegation!]! Delegations of voting power made to this account
Arguments
pagination - Pagination
delegationOut - Delegation Delegation of voting power of this account to another account. An account can delegate to itself and often that is required in order for voting power to be counted.
weightChanges - [DelegationWeightChange!]! votingPowerChanges is a better name
Arguments
pagination - Pagination
interval - TimeInterval
earliest - Timestamp
votingPowerChanges - [VotingPowerChange!]! Query voting power changes for this account on this governor. You can request all changes or aggregate over an interval using the interval parameter.
Arguments
pagination - Pagination
interval - TimeInterval
earliest - Timestamp
Example
{
  "account": Account,
  "governor": Governor,
  "votes": [Vote],
  "proposals": [Proposal],
  "stats": ParticipationStats,
  "delegationsIn": [Delegation],
  "delegationOut": Delegation,
  "weightChanges": [DelegationWeightChange],
  "votingPowerChanges": [VotingPowerChange]
}

ParticipationDelegationStats

Fields
Field Name Description
total - Int! Total count of delegations to this Account including self-delegation if present
Example
{"total": 123}

ParticipationProposalStats

Fields
Field Name Description
total - Int! Number of proposals created by this `Account
Example
{"total": 123}

ParticipationRate

Description

Number of votes on the last 10 proposals if there are at least ten made on this contract. If there are not 10 proposals the amount of proposals is provided as recentProposalCount.

Fields
Field Name Description
recentVoteCount - Int! Number of votes on the last 10 proposals on this Governor
recentProposalCount - Int! 10 or the number of proposals on this Governor if less than 10
Example
{"recentVoteCount": 123, "recentProposalCount": 123}

ParticipationStats

Description

Statistics about an Account's participation in a Governor

Fields
Field Name Description
votingPower - ParticipationVotingPowerStats! Current voting power information including total in & out
delegationCount - Int! Current overall number of delegations include those that delegate zero voting power
activeDelegationCount - Int! Current overall number of delegations that delegate non-zero voting power
createdProposalsCount - Int! Number of proposals created by this `Account
voteCount - Int! Number of votes made by this Account
recentParticipationRate - ParticipationRate! Number of votes on the last 10 proposals if there are at least ten made on this contract. If there are not at least 10 proposals the amount of proposals is provided as recentProposalCount.
tokenBalance - BigInt! Current number of tokens owned by this Account
delegations - ParticipationDelegationStats! use delegationCount or activeDelegationCount instead.
Arguments
excludeZeroWeight - Boolean
weight - ParticipationWeightStats! use votingPower instead.
proposals - ParticipationProposalStats! use createdProposalsCount instead.
participationRate - ParticipationRate! use recentParticipationRate instead.
votes - ParticipationVoteStats! use voteCount instead.
Example
{
  "votingPower": ParticipationVotingPowerStats,
  "delegationCount": 123,
  "activeDelegationCount": 123,
  "createdProposalsCount": 123,
  "voteCount": 987,
  "recentParticipationRate": ParticipationRate,
  "tokenBalance": 10987654321,
  "delegations": ParticipationDelegationStats,
  "weight": ParticipationWeightStats,
  "proposals": ParticipationProposalStats,
  "participationRate": ParticipationRate,
  "votes": ParticipationVoteStats
}

ParticipationVoteStats

Fields
Field Name Description
total - Int! Number of votes made by this Account
Example
{"total": 123}

ParticipationVotingPowerStats

Fields
Field Name Description
net - BigInt! Total current voting power for this Account
in - BigInt! Total current voting power delegated to this Account including self-delegation if present
out - BigInt! Total voting power delegated to another Account
Example
{"net": 10987654321, "in": 10987654321, "out": 10987654321}

ParticipationWeightStats

Fields
Field Name Description
total - BigInt! Total current voting power for this Account
owned - BigInt! Current number of tokens owned by this Account
delegations - DelegationWeightStats! Total current voting power delegated in/out of this Account
Example
{
  "total": 10987654321,
  "owned": 10987654321,
  "delegations": DelegationWeightStats
}

Proposal

Description

Core type that describes a proposal created by an onchain Governor contract

Fields
Field Name Description
id - ID! Chain Scoped onchain Proposal ID
title - String! Proposal title: usually first line of description
description - String! Proposal description onchain
start - Block! First block when you can cast a vote, also the time when quorum is established
end - Block! Last block when you can cast a vote
eta - BigInt Time at which a proposal can be executed
block - Block! Block at proposal creation selector createdTransaction contains the creation block
governanceId - AccountID! Governor contract AccountID selector Governor contains governor contract id
governor - Governor! Governor contract details
executable - Executable! Payload that can be executed after the proposal passes
proposer - Account! Account that created this proposal
voteStats - [VoteStat!] Summary of voting by vote choice
statusChanges - [StatusChange!] List of state transitions for this proposal. The last StatusChange is the current state.
createdTransaction - Transaction! Transaction that created this proposal
votes - [Vote!] List of votes on this proposal
Arguments
voters - [Address!]
sort - VoteSort
pagination - Pagination
votingPower - BigInt! Voting power of a given address on this proposal
Arguments
id - AccountID!
Example
{
  "id": "4",
  "title": "Fund the Grants Program",
  "description": "Here's why it's a good idea to fund the Grants Program",
  "start": Block,
  "end": Block,
  "eta": 1675437793,
  "block": Block,
  "governanceId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "governor": Governor,
  "executable": Executable,
  "proposer": Account,
  "voteStats": [VoteStat],
  "statusChanges": [StatusChange],
  "createdTransaction": Transaction,
  "votes": [Vote],
  "votingPower": 10987654321
}

ProposalSort

Fields
Input Field Description
field - ProposalSortField
order - SortOrder
Example
{"field": "START_BLOCK", "order": "ASC"}

ProposalSortField

Values
Enum Value Description

START_BLOCK

END_BLOCK

EXECUTION_ETA

CREATED_AT

Example
"START_BLOCK"

ProposalStats

Fields
Field Name Description
total - Int! Total count of proposals
active - Int! Total count of active proposals
failed - Int! Total count of failed proposals including quorum not reached
passed - Int! Total count of passed proposals
Example
{"total": 123, "active": 123, "failed": 123, "passed": 987}

ProposalStatusType

Values
Enum Value Description

PENDING

Proposal has been created, but voting has not started. An address can still accumulate voting power.

ACTIVE

Voting is in progress.

SUCCEEDED

Proposal has succeeded, it can now be queued or executed.

DEFEATED

Proposal has been defeated. This proposal cannot be queued or excuted. This is a final status.

QUEUED

Proposal has queued into a timelock. This proposal can be excuted.

EXECUTED

Proposal has been executed. This is a final status.

CANCELED

Proposal has been canceled. This is a final status.

EXPIRED

Proposal has expired. This is a final status.
Example
"PENDING"

Role

Values
Enum Value Description

ADMIN

USER

Example
"ADMIN"

SortOrder

Values
Enum Value Description

ASC

DESC

Example
"ASC"

StatusChange

Fields
Field Name Description
type - ProposalStatusType! Proposal State
blockNumber - Long! Block Number of this state transition selector block contains the block number
blockTimestamp - Timestamp! Timestamp of this state transition selector block contains the block timestamp
block - Block! Transaction hash of this state transition if applicable. Computed states do not have an associated transaction.
txHash - String
transaction - Transaction
Example
{
  "type": "PENDING",
  "blockNumber": 123456789,
  "blockTimestamp": 1663224162,
  "block": Block,
  "txHash": "xyz789",
  "transaction": Transaction
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

SupportType

Description

Vote Choice

Values
Enum Value Description

ABSTAIN

AGAINST

FOR

Example
"ABSTAIN"

TimeInterval

Values
Enum Value Description

ALL

HOUR

DAY

WEEK

MONTH

QUARTER

YEAR

Example
"ALL"

Timestamp

Description

Timestamp is a RFC3339 string.

Example
1663224162

Token

Description

Core type that describes an onchain Token contract

Fields
Field Name Description
id - AssetID!
type - TokenType! Token contract type
address - Address! EVM Address on chain. See id for chain id selector id has more context
name - String! Onchain name
symbol - String! Onchain symbol
supply - BigInt! supply derived from Transfer events
lastBlock - Long! Last block that Tally has indexed. Sometimes our indexer needs to catch up. Our indexer is usually ~1min behind depending on chain so we don't serve data that might later be reorged. new selector lastIndexedBlock has more context
lastIndexedBlock - Block! Last block that Tally has indexed. Sometimes our indexer needs to catch up. Our indexer is usually ~1min behind depending on chain so we don't serve data that might later be reorged.
decimals - Int! Number of decimal places included in BigInt values
stats - GovernorTokenStats! Counts of owners, voters as well as total supply and delegated voting power.
Example
{
  "id": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
  "type": "ERC20",
  "address": "0x1234567800000000000000000000000000000abc",
  "name": "abc123",
  "symbol": "xyz789",
  "supply": 10987654321,
  "lastBlock": 123456789,
  "lastIndexedBlock": Block,
  "decimals": 987,
  "stats": GovernorTokenStats
}

TokenType

Values
Enum Value Description

ERC20

ERC721

ERC20AAVE

Example
"ERC20"

Transaction

Fields
Field Name Description
id - HashID!
block - Block!
Example
{
  "id": "eip155:1:0xcd31cf5dbd3281442d80ceaa529eba678d55be86b7a342f5ed9cc8e49dadc855",
  "block": Block
}

Vote

Description

Votes cast in a Governor proposal

Fields
Field Name Description
id - ID! Proposal and voter concatenated id.
voter - Account! Voter that cast the vote.
hash - Bytes32! Hash of Transaction in which the vote cast. selector transaction contains the creation transaction hash
support - SupportType! Vote choice made by voter.
weight - BigInt! Weight of the vote. Typically total delegated voting power of voter at proposal voting start block.
transaction - Transaction! Transaction vote was cast in.
block - Block! Block vote was cast in. selector transaction contains the creation block
reason - String Optional reason for vote choice provided by the voter.
proposal - Proposal! Proposal on which vote was cast.
Example
{
  "id": "4",
  "voter": Account,
  "hash": "0x0987abcd00000000000000000000000000000000000000000000000000004321",
  "support": "ABSTAIN",
  "weight": 10987654321,
  "transaction": Transaction,
  "block": Block,
  "reason": "abc123",
  "proposal": Proposal
}

VoteSort

Fields
Input Field Description
field - VoteSortField
order - SortOrder
Example
{"field": "CREATED", "order": "ASC"}

VoteSortField

Values
Enum Value Description

CREATED

WEIGHT

BLOCK

Example
"CREATED"

VoteStat

Description

Voting Summary per Choice

Fields
Field Name Description
support - SupportType! Vote Choice
weight - BigInt! Total weight (voting power) for this Choice/SupportType
votes - BigInt! Number of distinct votes cast for this Choice/SupportType
percent - Float! Percent of total weight cast in this Proposal
Example
{
  "support": "ABSTAIN",
  "weight": 10987654321,
  "votes": 10987654321,
  "percent": 123.45
}

VotingPowerChange

Description

Represents a voting power change over an interval or triggered by an event.

Fields
Field Name Description
token - Token!
delegate - Account! The delegate address whose voting power is changing
prevBalance - BigInt! Voting power prior to this event or interval
newBalance - BigInt! Voting power after this event or interval
netChange - BigInt! Net change in voting power caused by this event
timestamp - Timestamp! Timestamp of event or beginging of the interval this voting power change represents
transaction - Transaction Transaction that triggered this voting change, unset if this is an interval
Example
{
  "token": Token,
  "delegate": Account,
  "prevBalance": 10987654321,
  "newBalance": 10987654321,
  "netChange": 10987654321,
  "timestamp": 1663224162,
  "transaction": Transaction
}

VotingPowerChangeSort

Fields
Input Field Description
field - VotingPowerChangeSortField
order - SortOrder
Example
{"field": "CREATED", "order": "ASC"}

VotingPowerChangeSortField

Values
Enum Value Description

CREATED

NEW_BALANCE

OLD_BALANCE

NET_CHANGE

Example
"CREATED"