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
      }
    }
    safes
    type
    votes
    proposalsCreatedCount
  }
}
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],
        "safes": [
          "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
        ],
        "type": "EOA",
        "votes": 10987654321,
        "proposalsCreatedCount": 987
      }
    ]
  }
}

chains

Response

Returns [Chain]!

Example

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

delegate

Description

Returns delegate information by an address for an organization or governor.

Response

Returns a Delegate

Arguments
Name Description
input - DelegateInput!

Example

Query
query Delegate($input: DelegateInput!) {
  delegate(input: $input) {
    id
    account {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
      safes
      type
      votes
      proposalsCreatedCount
    }
    chainId
    delegatorsCount
    governor {
      id
      chainId
      contracts {
        ...ContractsFragment
      }
      isIndexing
      isBehind
      kind
      lastIndexedBlock {
        ...BlockFragment
      }
      name
      organization {
        ...OrganizationFragment
      }
      proposalStats {
        ...ProposalStatsFragment
      }
      parameters {
        ...GovernorV2ParametersFragment
      }
      quorum
      slug
      timelockId
      tokenId
      token {
        ...TokenFragment
      }
      type
      delegatesCount
      delegatesVotesCount
      tokenOwnersCount
    }
    organization {
      id
      slug
      name
      chainIds
      governorIds
      metadata {
        ...OrganizationMetadataFragment
      }
      creator {
        ...AccountFragment
      }
      hasActiveProposals
      proposalsCount
      votersCount
      delegatesCount
      delegatesVotesCount
      tokenHoldersCount
      tokenOwnersCount
    }
    statement {
      id
      delegateAddress
      address
      organizationID
      delegateStatement
      statement
      delegateStatementSummary
      statementSummary
      dataSource
      dataSourceURL
      discourseUserName
      discourseUsername
      discourseProfileLink
      seekingDelegations
      isSeekingDelegation
      issues {
        ...OrganizationIssueFragment
      }
    }
    token {
      id
      type
      address
      name
      symbol
      supply
      lastBlock
      lastIndexedBlock {
        ...BlockFragment
      }
      decimals
      eligibility {
        ...EligibilityFragment
      }
      stats {
        ...TokenStatsFragment
      }
      isIndexing
      isBehind
    }
    votesCount
    voteChanges {
      token {
        ...TokenFragment
      }
      delegate {
        ...AccountFragment
      }
      prevBalance
      newBalance
      netChange
      timestamp
      transaction {
        ...TransactionFragment
      }
    }
    statementV2 {
      id
      delegateAddress
      address
      organizationID
      delegateStatement
      statement
      delegateStatementSummary
      statementSummary
      dataSource
      dataSourceURL
      discourseUserName
      discourseUsername
      discourseProfileLink
      seekingDelegations
      isSeekingDelegation
      issues {
        ...OrganizationIssueFragment
      }
    }
  }
}
Variables
{"input": DelegateInput}
Response
{
  "data": {
    "delegate": {
      "id": 2207450143689540900,
      "account": Account,
      "chainId": "eip155:1",
      "delegatorsCount": 123,
      "governor": GovernorV2,
      "organization": Organization,
      "statement": DelegateStatement,
      "token": Token,
      "votesCount": 10987654321,
      "voteChanges": [VotingPowerChange],
      "statementV2": DelegateStatement
    }
  }
}

delegatee

Description

Returns a delegatee of a user, to whom this user has delegated, for a governor

Response

Returns a DelegationV2

Arguments
Name Description
input - DelegationInput!

Example

Query
query Delegatee($input: DelegationInput!) {
  delegatee(input: $input) {
    id
    blockNumber
    blockTimestamp
    chainId
    delegator {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
      safes
      type
      votes
      proposalsCreatedCount
    }
    delegate {
      id
      account {
        ...AccountFragment
      }
      chainId
      delegatorsCount
      governor {
        ...GovernorV2Fragment
      }
      organization {
        ...OrganizationFragment
      }
      statement {
        ...DelegateStatementFragment
      }
      token {
        ...TokenFragment
      }
      votesCount
      voteChanges {
        ...VotingPowerChangeFragment
      }
      statementV2 {
        ...DelegateStatementFragment
      }
    }
    governor {
      id
      type
      parameters {
        ... on GovernorAlphaParameters {
          ...GovernorAlphaParametersFragment
        }
        ... on GovernorBravoParameters {
          ...GovernorBravoParametersFragment
        }
        ... on OpenZeppelinGovernorParameters {
          ...OpenZeppelinGovernorParametersFragment
        }
        ... on GovernorAaveParameters {
          ...GovernorAaveParametersFragment
        }
        ... on NounsForkGovernorParameters {
          ...NounsForkGovernorParametersFragment
        }
      }
      lastIndexedBlock {
        ...BlockFragment
      }
      proposals {
        ...ProposalFragment
      }
      proposalStats {
        ...ProposalStatsFragment
      }
      tokenStats {
        ...GovernanceTokenStatsFragment
      }
      organization {
        ...OrganizationFragment
      }
      contracts {
        ...ContractsFragment
      }
      quorum
      timelockId
      tokens {
        ...TokenFragment
      }
      name
      slug
      kind
      proposalThreshold
      isIndexing
      isBehind
    }
    token {
      id
      type
      address
      name
      symbol
      supply
      lastBlock
      lastIndexedBlock {
        ...BlockFragment
      }
      decimals
      eligibility {
        ...EligibilityFragment
      }
      stats {
        ...TokenStatsFragment
      }
      isIndexing
      isBehind
    }
    votes
  }
}
Variables
{"input": DelegationInput}
Response
{
  "data": {
    "delegatee": {
      "id": 2207450143689540900,
      "blockNumber": 123,
      "blockTimestamp": 1663224162,
      "chainId": "eip155:1",
      "delegator": Account,
      "delegate": Delegate,
      "governor": Governor,
      "token": Token,
      "votes": 10987654321
    }
  }
}

delegatees

Description

Returns a paginated list of delegatees of a user, to whom this user has delegated, that match the provided filters.

Response

Returns a PaginatedOutput!

Arguments
Name Description
input - DelegationsInput!

Example

Query
query Delegatees($input: DelegationsInput!) {
  delegatees(input: $input) {
    nodes {
      ... on Delegate {
        ...DelegateFragment
      }
      ... on Organization {
        ...OrganizationFragment
      }
      ... on Member {
        ...MemberFragment
      }
      ... on DelegationV2 {
        ...DelegationV2Fragment
      }
      ... on GovernorV2 {
        ...GovernorV2Fragment
      }
    }
    pageInfo {
      firstCursor
      lastCursor
      count
    }
  }
}
Variables
{"input": DelegationsInput}
Response
{
  "data": {
    "delegatees": {
      "nodes": [Delegate],
      "pageInfo": PageInfo
    }
  }
}

delegates

Description

Returns a paginated list of delegates that match the provided filters.

Response

Returns a PaginatedOutput!

Arguments
Name Description
input - DelegatesInput!

Example

Query
query Delegates($input: DelegatesInput!) {
  delegates(input: $input) {
    nodes {
      ... on Delegate {
        ...DelegateFragment
      }
      ... on Organization {
        ...OrganizationFragment
      }
      ... on Member {
        ...MemberFragment
      }
      ... on DelegationV2 {
        ...DelegationV2Fragment
      }
      ... on GovernorV2 {
        ...GovernorV2Fragment
      }
    }
    pageInfo {
      firstCursor
      lastCursor
      count
    }
  }
}
Variables
{"input": DelegatesInput}
Response
{
  "data": {
    "delegates": {
      "nodes": [Delegate],
      "pageInfo": PageInfo
    }
  }
}

delegators

Description

Returns a paginated list of delegators of a delegate that match the provided filters.

Response

Returns a PaginatedOutput!

Arguments
Name Description
input - DelegationsInput!

Example

Query
query Delegators($input: DelegationsInput!) {
  delegators(input: $input) {
    nodes {
      ... on Delegate {
        ...DelegateFragment
      }
      ... on Organization {
        ...OrganizationFragment
      }
      ... on Member {
        ...MemberFragment
      }
      ... on DelegationV2 {
        ...DelegationV2Fragment
      }
      ... on GovernorV2 {
        ...GovernorV2Fragment
      }
    }
    pageInfo {
      firstCursor
      lastCursor
      count
    }
  }
}
Variables
{"input": DelegationsInput}
Response
{
  "data": {
    "delegators": {
      "nodes": [Delegate],
      "pageInfo": PageInfo
    }
  }
}

governor

Response

Returns a GovernorV2!

Arguments
Name Description
input - GovernorInput!

Example

Query
query Governor($input: GovernorInput!) {
  governor(input: $input) {
    id
    chainId
    contracts {
      governor {
        ...GovernorContractFragment
      }
      tokens {
        ...TokenContractFragment
      }
    }
    isIndexing
    isBehind
    kind
    lastIndexedBlock {
      id
      number
      timestamp
      ts
    }
    name
    organization {
      id
      slug
      name
      chainIds
      governorIds
      metadata {
        ...OrganizationMetadataFragment
      }
      creator {
        ...AccountFragment
      }
      hasActiveProposals
      proposalsCount
      votersCount
      delegatesCount
      delegatesVotesCount
      tokenHoldersCount
      tokenOwnersCount
    }
    proposalStats {
      total
      active
      failed
      passed
    }
    parameters {
      quorumVotes
      proposalThreshold
      votingDelay
      votingPeriod
      gracePeriod
      quorumNumerator
      quorumDenominator
      clockMode
      nomineeVettingDuration
      fullWeightDuration
    }
    quorum
    slug
    timelockId
    tokenId
    token {
      id
      type
      address
      name
      symbol
      supply
      lastBlock
      lastIndexedBlock {
        ...BlockFragment
      }
      decimals
      eligibility {
        ...EligibilityFragment
      }
      stats {
        ...TokenStatsFragment
      }
      isIndexing
      isBehind
    }
    type
    delegatesCount
    delegatesVotesCount
    tokenOwnersCount
  }
}
Variables
{"input": GovernorInput}
Response
{
  "data": {
    "governor": {
      "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
      "chainId": "eip155:1",
      "contracts": Contracts,
      "isIndexing": false,
      "isBehind": true,
      "kind": "single",
      "lastIndexedBlock": Block,
      "name": "Uniswap",
      "organization": Organization,
      "proposalStats": ProposalStats,
      "parameters": GovernorV2Parameters,
      "quorum": 10987654321,
      "slug": "uniswap",
      "timelockId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
      "tokenId": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
      "token": Token,
      "type": "governoralpha",
      "delegatesCount": 123,
      "delegatesVotesCount": 10987654321,
      "tokenOwnersCount": 987
    }
  }
}

governors

Use governorsV2 instead.
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
includeUnlinked - Boolean

Example

Query
query Governors(
  $chainIds: [ChainID!],
  $addresses: [Address!],
  $ids: [AccountID!],
  $includeInactive: Boolean,
  $pagination: Pagination,
  $sort: GovernorSort,
  $includeUnlinked: Boolean
) {
  governors(
    chainIds: $chainIds,
    addresses: $addresses,
    ids: $ids,
    includeInactive: $includeInactive,
    pagination: $pagination,
    sort: $sort,
    includeUnlinked: $includeUnlinked
  ) {
    id
    type
    parameters {
      ... on GovernorAlphaParameters {
        ...GovernorAlphaParametersFragment
      }
      ... on GovernorBravoParameters {
        ...GovernorBravoParametersFragment
      }
      ... on OpenZeppelinGovernorParameters {
        ...OpenZeppelinGovernorParametersFragment
      }
      ... on GovernorAaveParameters {
        ...GovernorAaveParametersFragment
      }
      ... on NounsForkGovernorParameters {
        ...NounsForkGovernorParametersFragment
      }
    }
    lastIndexedBlock {
      id
      number
      timestamp
      ts
    }
    proposals {
      id
      title
      description
      start {
        ... on Block {
          ...BlockFragment
        }
        ... on BlocklessTimestamp {
          ...BlocklessTimestampFragment
        }
      }
      end {
        ... on Block {
          ...BlockFragment
        }
        ... on BlocklessTimestamp {
          ...BlocklessTimestampFragment
        }
      }
      eta
      block {
        ...BlockFragment
      }
      governanceId
      governor {
        ...GovernorFragment
      }
      executable {
        ...ExecutableFragment
      }
      proposer {
        ...AccountFragment
      }
      voteStats {
        ...VoteStatFragment
      }
      statusChanges {
        ...StatusChangeFragment
      }
      createdTransaction {
        ...TransactionFragment
      }
      votes {
        ...VoteFragment
      }
      votingPower
      participationType
    }
    proposalStats {
      total
      active
      failed
      passed
    }
    tokenStats {
      owners
      voters
      supply
      delegatedVotingPower
      delegates {
        ...TokenDelegateStatsFragment
      }
    }
    organization {
      id
      slug
      name
      chainIds
      governorIds
      metadata {
        ...OrganizationMetadataFragment
      }
      creator {
        ...AccountFragment
      }
      hasActiveProposals
      proposalsCount
      votersCount
      delegatesCount
      delegatesVotesCount
      tokenHoldersCount
      tokenOwnersCount
    }
    contracts {
      governor {
        ...GovernorContractFragment
      }
      tokens {
        ...TokenContractFragment
      }
    }
    quorum
    timelockId
    tokens {
      id
      type
      address
      name
      symbol
      supply
      lastBlock
      lastIndexedBlock {
        ...BlockFragment
      }
      decimals
      eligibility {
        ...EligibilityFragment
      }
      stats {
        ...TokenStatsFragment
      }
      isIndexing
      isBehind
    }
    name
    slug
    kind
    proposalThreshold
    isIndexing
    isBehind
  }
}
Variables
{
  "chainIds": ["eip155:1"],
  "addresses": [
    "0x1234567800000000000000000000000000000abc"
  ],
  "ids": [
    "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
  ],
  "includeInactive": false,
  "pagination": Pagination,
  "sort": GovernorSort,
  "includeUnlinked": false
}
Response
{
  "data": {
    "governors": [
      {
        "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
        "type": "governoralpha",
        "parameters": GovernorAlphaParameters,
        "lastIndexedBlock": Block,
        "proposals": [Proposal],
        "proposalStats": ProposalStats,
        "tokenStats": GovernanceTokenStats,
        "organization": Organization,
        "contracts": Contracts,
        "quorum": 10987654321,
        "timelockId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
        "tokens": [Token],
        "name": "Uniswap",
        "slug": "uniswap",
        "kind": "single",
        "proposalThreshold": 10987654321,
        "isIndexing": true,
        "isBehind": false
      }
    ]
  }
}

governorsV2

Description

Returns a paginated 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 a PaginatedOutput!

Arguments
Name Description
input - GovernorsInput!

Example

Query
query GovernorsV2($input: GovernorsInput!) {
  governorsV2(input: $input) {
    nodes {
      ... on Delegate {
        ...DelegateFragment
      }
      ... on Organization {
        ...OrganizationFragment
      }
      ... on Member {
        ...MemberFragment
      }
      ... on DelegationV2 {
        ...DelegationV2Fragment
      }
      ... on GovernorV2 {
        ...GovernorV2Fragment
      }
    }
    pageInfo {
      firstCursor
      lastCursor
      count
    }
  }
}
Variables
{"input": GovernorsInput}
Response
{
  "data": {
    "governorsV2": {
      "nodes": [Delegate],
      "pageInfo": PageInfo
    }
  }
}

organization

Description

Get organization by ID or slug.

Response

Returns an Organization!

Arguments
Name Description
input - OrganizationInput!

Example

Query
query Organization($input: OrganizationInput!) {
  organization(input: $input) {
    id
    slug
    name
    chainIds
    governorIds
    metadata {
      color
      contact {
        ...ContactFragment
      }
      description
      icon
      socials {
        ...SocialsFragment
      }
    }
    creator {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
      safes
      type
      votes
      proposalsCreatedCount
    }
    hasActiveProposals
    proposalsCount
    votersCount
    delegatesCount
    delegatesVotesCount
    tokenHoldersCount
    tokenOwnersCount
  }
}
Variables
{"input": OrganizationInput}
Response
{
  "data": {
    "organization": {
      "id": 2207450143689540900,
      "slug": "abc123",
      "name": "abc123",
      "chainIds": ["eip155:1"],
      "governorIds": [
        "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
      ],
      "metadata": OrganizationMetadata,
      "creator": Account,
      "hasActiveProposals": true,
      "proposalsCount": 123,
      "votersCount": 987,
      "delegatesCount": 987,
      "delegatesVotesCount": 10987654321,
      "tokenHoldersCount": 123,
      "tokenOwnersCount": 123
    }
  }
}

organizations

Description

Returns paginated list of organizations.

Response

Returns a PaginatedOutput!

Arguments
Name Description
input - OrganizationsInput

Example

Query
query Organizations($input: OrganizationsInput) {
  organizations(input: $input) {
    nodes {
      ... on Delegate {
        ...DelegateFragment
      }
      ... on Organization {
        ...OrganizationFragment
      }
      ... on Member {
        ...MemberFragment
      }
      ... on DelegationV2 {
        ...DelegationV2Fragment
      }
      ... on GovernorV2 {
        ...GovernorV2Fragment
      }
    }
    pageInfo {
      firstCursor
      lastCursor
      count
    }
  }
}
Variables
{"input": OrganizationsInput}
Response
{
  "data": {
    "organizations": {
      "nodes": [Delegate],
      "pageInfo": PageInfo
    }
  }
}

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 {
      ... on Block {
        ...BlockFragment
      }
      ... on BlocklessTimestamp {
        ...BlocklessTimestampFragment
      }
    }
    end {
      ... on Block {
        ...BlockFragment
      }
      ... on BlocklessTimestamp {
        ...BlocklessTimestampFragment
      }
    }
    eta
    block {
      id
      number
      timestamp
      ts
    }
    governanceId
    governor {
      id
      type
      parameters {
        ... on GovernorAlphaParameters {
          ...GovernorAlphaParametersFragment
        }
        ... on GovernorBravoParameters {
          ...GovernorBravoParametersFragment
        }
        ... on OpenZeppelinGovernorParameters {
          ...OpenZeppelinGovernorParametersFragment
        }
        ... on GovernorAaveParameters {
          ...GovernorAaveParametersFragment
        }
        ... on NounsForkGovernorParameters {
          ...NounsForkGovernorParametersFragment
        }
      }
      lastIndexedBlock {
        ...BlockFragment
      }
      proposals {
        ...ProposalFragment
      }
      proposalStats {
        ...ProposalStatsFragment
      }
      tokenStats {
        ...GovernanceTokenStatsFragment
      }
      organization {
        ...OrganizationFragment
      }
      contracts {
        ...ContractsFragment
      }
      quorum
      timelockId
      tokens {
        ...TokenFragment
      }
      name
      slug
      kind
      proposalThreshold
      isIndexing
      isBehind
    }
    executable {
      callDatas
      signatures
      targets
      values
    }
    proposer {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
      safes
      type
      votes
      proposalsCreatedCount
    }
    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
    participationType
  }
}
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,
        "participationType": "votedfor"
      }
    ]
  }
}

tokenBalances

Description

Returns all token balances of an address for a governor or organization

Response

Returns [TokenBalance!]!

Arguments
Name Description
input - TokenBalancesInput!

Example

Query
query TokenBalances($input: TokenBalancesInput!) {
  tokenBalances(input: $input) {
    token {
      id
      type
      address
      name
      symbol
      supply
      lastBlock
      lastIndexedBlock {
        ...BlockFragment
      }
      decimals
      eligibility {
        ...EligibilityFragment
      }
      stats {
        ...TokenStatsFragment
      }
      isIndexing
      isBehind
    }
    balance
  }
}
Variables
{"input": TokenBalancesInput}
Response
{
  "data": {
    "tokenBalances": [
      {"token": Token, "balance": 10987654321}
    ]
  }
}

Mutations

createGovernors

Response

Returns an Organization!

Arguments
Name Description
input - CreateGovernorsInput!

Example

Query
mutation CreateGovernors($input: CreateGovernorsInput!) {
  createGovernors(input: $input) {
    id
    slug
    name
    chainIds
    governorIds
    metadata {
      color
      contact {
        ...ContactFragment
      }
      description
      icon
      socials {
        ...SocialsFragment
      }
    }
    creator {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
      safes
      type
      votes
      proposalsCreatedCount
    }
    hasActiveProposals
    proposalsCount
    votersCount
    delegatesCount
    delegatesVotesCount
    tokenHoldersCount
    tokenOwnersCount
  }
}
Variables
{"input": CreateGovernorsInput}
Response
{
  "data": {
    "createGovernors": {
      "id": 2207450143689540900,
      "slug": "xyz789",
      "name": "abc123",
      "chainIds": ["eip155:1"],
      "governorIds": [
        "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
      ],
      "metadata": OrganizationMetadata,
      "creator": Account,
      "hasActiveProposals": false,
      "proposalsCount": 987,
      "votersCount": 123,
      "delegatesCount": 123,
      "delegatesVotesCount": 10987654321,
      "tokenHoldersCount": 987,
      "tokenOwnersCount": 123
    }
  }
}

createOrganization

Response

Returns an Organization!

Arguments
Name Description
input - CreateOrganizationInput!

Example

Query
mutation CreateOrganization($input: CreateOrganizationInput!) {
  createOrganization(input: $input) {
    id
    slug
    name
    chainIds
    governorIds
    metadata {
      color
      contact {
        ...ContactFragment
      }
      description
      icon
      socials {
        ...SocialsFragment
      }
    }
    creator {
      id
      address
      ens
      twitter
      name
      bio
      participations {
        ...ParticipationFragment
      }
      picture
      activity {
        ... on Proposal {
          ...ProposalFragment
        }
        ... on Vote {
          ...VoteFragment
        }
      }
      safes
      type
      votes
      proposalsCreatedCount
    }
    hasActiveProposals
    proposalsCount
    votersCount
    delegatesCount
    delegatesVotesCount
    tokenHoldersCount
    tokenOwnersCount
  }
}
Variables
{"input": CreateOrganizationInput}
Response
{
  "data": {
    "createOrganization": {
      "id": 2207450143689540900,
      "slug": "xyz789",
      "name": "xyz789",
      "chainIds": ["eip155:1"],
      "governorIds": [
        "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
      ],
      "metadata": OrganizationMetadata,
      "creator": Account,
      "hasActiveProposals": false,
      "proposalsCount": 123,
      "votersCount": 123,
      "delegatesCount": 123,
      "delegatesVotesCount": 10987654321,
      "tokenHoldersCount": 123,
      "tokenOwnersCount": 123
    }
  }
}

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. use root level delegation queries instead
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
safes - [AccountID!]
type - AccountType!
votes - Uint256!
Arguments
governorId - AccountID!
proposalsCreatedCount - Int!
Arguments
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],
  "safes": [
    "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
  ],
  "type": "EOA",
  "votes": 10987654321,
  "proposalsCreatedCount": 123
}

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"

AccountType

Values
Enum Value Description

EOA

SAFE

Example
"EOA"

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"

Block

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

BlockID

Description

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

Example
BlockID

BlockOrTimestamp

Types
Union Types

Block

BlocklessTimestamp

Example
Block

BlocklessTimestamp

Fields
Field Name Description
timestamp - Timestamp!
Example
{"timestamp": 1663224162}

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.
blockExplorerAPI - String! API url of the block explorer
blockExplorerURL - String! Url of the block explorer
useLayer1VotingPeriod - Boolean! Boolean true if L2 depends on L1 for voting period, false if it doesn't.
gnosisServiceURL - String gnosisServiceURL of the chain, can be empty or an string
cowswapSupport - Boolean! Boolean true if Cowswap supports the chain, false if it doesn't.
milkmanContract - AccountID Contract address of Milkman (for Cowswap proposals).
envExplorerArg - String Env Explorer Arg, which can be nil, is the env arg name of the key that we will use in the FE
envRPCArg - String Env RPC Arg, which can be nil, is the env arg name of the RPC endpoint that we will use in the FE
Example
{
  "id": "eip155:1",
  "layer1Id": "eip155:1",
  "name": "Ethereum Mainnet",
  "mediumName": "Ethereum",
  "shortName": "eth",
  "blockTime": 12,
  "isTestnet": false,
  "nativeCurrency": "ETH",
  "chain": "ETH",
  "blockExplorerAPI": "https://api.etherscan.io/api",
  "blockExplorerURL": "https://etherscan.io/",
  "useLayer1VotingPeriod": false,
  "gnosisServiceURL": "abc123",
  "cowswapSupport": false,
  "milkmanContract": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "envExplorerArg": "xyz789",
  "envRPCArg": "xyz789"
}

ChainID

Description

ChainID is a CAIP-2 compliant chain id.

Example
"eip155:1"

Contact

Fields
Field Name Description
name - String!
email - String!
twitter - String!
discord - String!
Example
{
  "name": "xyz789",
  "email": "xyz789",
  "twitter": "abc123",
  "discord": "xyz789"
}

ContactInput

Fields
Input Field Description
name - String!
email - String!
twitter - String!
discord - String!
Example
{
  "name": "abc123",
  "email": "xyz789",
  "twitter": "abc123",
  "discord": "xyz789"
}

Contracts

Fields
Field Name Description
governor - GovernorContract!
tokens - [TokenContract!]!
Example
{
  "governor": GovernorContract,
  "tokens": [TokenContract]
}

CreateGovernorInput

Fields
Input Field Description
id - AccountID!
name - String
slug - String
startBlock - Int! The block height at which the Governor contract was originally deployed.
type - GovernorType!
kind - GovernorKind
tokenId - AssetID!
Example
{
  "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "name": "abc123",
  "slug": "xyz789",
  "startBlock": 987,
  "type": "governoralpha",
  "kind": "single",
  "tokenId": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f"
}

CreateGovernorsInput

Fields
Input Field Description
governors - [CreateGovernorInput!]!
organizationId - IntID Organization id is required when creating governors for an existing DAO
organization - CreateOrganizationInput Organization is required when creating a new DAO with govenors and tokens
tokens - [CreateTokenInput!] Tokens are required when creating a new DAO with govenors and tokens or when tokens for govenrors have not been created yet
Example
{
  "governors": [CreateGovernorInput],
  "organizationId": 2207450143689540900,
  "organization": CreateOrganizationInput,
  "tokens": [CreateTokenInput]
}

CreateOrganizationInput

Fields
Input Field Description
name - String!
metadata - OrganizationMetadataInput
uxVersion - OrgUxVersion
Example
{
  "name": "abc123",
  "metadata": OrganizationMetadataInput,
  "uxVersion": "governor"
}

CreateTokenInput

Fields
Input Field Description
id - AssetID!
startBlock - Int! The block height at which the Token contract was originally deployed.
Example
{
  "id": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
  "startBlock": 987
}

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]
}

Delegate

Fields
Field Name Description
id - IntID!
account - Account!
chainId - ChainID
delegatorsCount - Int!
governor - GovernorV2
organization - Organization
statement - DelegateStatement
token - Token
votesCount - Uint256!
Arguments
blockNumber - Int
voteChanges - [VotingPowerChange!]!
statementV2 - DelegateStatement use statement instead
Example
{
  "id": 2207450143689540900,
  "account": Account,
  "chainId": "eip155:1",
  "delegatorsCount": 123,
  "governor": GovernorV2,
  "organization": Organization,
  "statement": DelegateStatement,
  "token": Token,
  "votesCount": 10987654321,
  "voteChanges": [VotingPowerChange],
  "statementV2": DelegateStatement
}

DelegateInput

Fields
Input Field Description
address - Address!
governorId - AccountID
organizationId - IntID
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "governorId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "organizationId": 2207450143689540900
}

DelegateStatement

Fields
Field Name Description
id - IntID!
delegateAddress - Address! use address instead
address - Address!
organizationID - IntID!
delegateStatement - String! use statement instead
statement - String!
delegateStatementSummary - String use statementSummary instead
statementSummary - String
dataSource - DelegateStatementSource!
dataSourceURL - String
discourseUserName - String use discourseUsername
discourseUsername - String
discourseProfileLink - String
seekingDelegations - Boolean use isSeekingDelegation instead
isSeekingDelegation - Boolean
issues - [OrganizationIssue!]
Example
{
  "id": 2207450143689540900,
  "delegateAddress": "0x1234567800000000000000000000000000000abc",
  "address": "0x1234567800000000000000000000000000000abc",
  "organizationID": 2207450143689540900,
  "delegateStatement": "abc123",
  "statement": "abc123",
  "delegateStatementSummary": "abc123",
  "statementSummary": "xyz789",
  "dataSource": "USER",
  "dataSourceURL": "xyz789",
  "discourseUserName": "xyz789",
  "discourseUsername": "abc123",
  "discourseProfileLink": "abc123",
  "seekingDelegations": false,
  "isSeekingDelegation": false,
  "issues": [OrganizationIssue]
}

DelegateStatementSource

Values
Enum Value Description

USER

SCRIPT

Example
"USER"

DelegatesFiltersInput

Fields
Input Field Description
address - Address address filter in combination with organizationId allows fetching delegate info of this address from each chain
governorId - AccountID
hasVotes - Boolean
hasDelegators - Boolean
issueIds - [IntID!]
isSeekingDelegation - Boolean
organizationId - IntID
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "governorId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "hasVotes": false,
  "hasDelegators": false,
  "issueIds": [2207450143689540900],
  "isSeekingDelegation": false,
  "organizationId": 2207450143689540900
}

DelegatesInput

Fields
Input Field Description
filters - DelegatesFiltersInput!
page - PageInput
sort - DelegatesSortInput
Example
{
  "filters": DelegatesFiltersInput,
  "page": PageInput,
  "sort": DelegatesSortInput
}

DelegatesSortBy

Values
Enum Value Description

RANDOM

The default sorting method. It sorts by date.

VOTES

Sorts by voting power.

DELEGATORS

Sorts by total delegators.
Example
"RANDOM"

DelegatesSortInput

Fields
Input Field Description
isDescending - Boolean!
sortBy - DelegatesSortBy!
Example
{"isDescending": false, "sortBy": "RANDOM"}

Delegation

Fields
Field Name Description
token - Token! Token contract where this Delegation was created
votingPower - Uint256! 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
}

DelegationInput

Fields
Input Field Description
address - Address!
governorId - AccountID!
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "governorId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
}

DelegationV2

Fields
Field Name Description
id - IntID!
blockNumber - Int!
blockTimestamp - Timestamp!
chainId - ChainID!
delegator - Account!
delegate - Delegate!
governor - Governor!
token - Token!
votes - Uint256!
Example
{
  "id": 2207450143689540900,
  "blockNumber": 123,
  "blockTimestamp": 1663224162,
  "chainId": "eip155:1",
  "delegator": Account,
  "delegate": Delegate,
  "governor": Governor,
  "token": Token,
  "votes": 10987654321
}

DelegationWeightChange

Fields
Field Name Description
token - Token!
delegate - Account!
prevBalance - Uint256!
newBalance - Uint256!
netChange - Uint256!
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 - Uint256!
out - Uint256!
Example
{"in": 10987654321, "out": 10987654321}

DelegationsFiltersInput

Fields
Input Field Description
address - Address!
governorId - AccountID
organizationId - IntID
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "governorId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "organizationId": 2207450143689540900
}

DelegationsInput

Fields
Input Field Description
filters - DelegationsFiltersInput!
page - PageInput
sort - DelegationsSortInput
Example
{
  "filters": DelegationsFiltersInput,
  "page": PageInput,
  "sort": DelegationsSortInput
}

DelegationsSortBy

Values
Enum Value Description

ID

The default sorting method. It sorts by date.

VOTES

Sorts by voting power.
Example
"ID"

DelegationsSortInput

Fields
Input Field Description
isDescending - Boolean!
sortBy - DelegationsSortBy!
Example
{"isDescending": true, "sortBy": "ID"}

Eligibility

Fields
Field Name Description
status - EligibilityStatus! Whether the account is eligible to claim
proof - [String!]
amount - Uint256 Amount the account can claim from this token
tx - HashID
Example
{
  "status": "NOTELIGIBLE",
  "proof": ["xyz789"],
  "amount": 10987654321,
  "tx": "eip155:1:0xcd31cf5dbd3281442d80ceaa529eba678d55be86b7a342f5ed9cc8e49dadc855"
}

EligibilityStatus

Values
Enum Value Description

NOTELIGIBLE

ELIGIBLE

CLAIMED

Example
"NOTELIGIBLE"

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 - [Uint256!]! 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 - Uint256 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
123.45

GovernanceTokenStats

Fields
Field Name Description
owners - Int!
voters - Int!
supply - Uint256!
delegatedVotingPower - Uint256!
delegates - TokenDelegateStats!
Example
{
  "owners": 987,
  "voters": 987,
  "supply": 10987654321,
  "delegatedVotingPower": 10987654321,
  "delegates": TokenDelegateStats
}

GovernanceType

Description

Governor contract type

Values
Enum Value Description

governoralpha

governorbravo

openzeppelingovernor

aave

nounsfork

nomineeelection

memberelection

Example
"governoralpha"

Governor

Description

Core type that describes an onchain Governor contract

Fields
Field Name Description
id - AccountID!
type - GovernanceType! 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.
tokenStats - GovernanceTokenStats!
organization - Organization
contracts - Contracts!
quorum - Uint256! 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
slug - String! Tally slug used for this goverance: tally.xyz/gov/[slug]
kind - GovernorKind!
proposalThreshold - Uint256!
isIndexing - Boolean!
isBehind - Boolean!
Example
{
  "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "type": "governoralpha",
  "parameters": GovernorAlphaParameters,
  "lastIndexedBlock": Block,
  "proposals": [Proposal],
  "proposalStats": ProposalStats,
  "tokenStats": GovernanceTokenStats,
  "organization": Organization,
  "contracts": Contracts,
  "quorum": 10987654321,
  "timelockId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "tokens": [Token],
  "name": "Uniswap",
  "slug": "uniswap",
  "kind": "single",
  "proposalThreshold": 10987654321,
  "isIndexing": false,
  "isBehind": false
}

GovernorAaveParameters

Fields
Field Name Description
quorumVotes - Uint256 Amount of votes needed for a proposal to qualify for passing
proposalThreshold - Uint256! Amount of votes needed to create a proposal
votingDelay - Uint256! Amount of blocks before a proposal can be voted on
votingPeriod - Uint256! Amount of blocks a proposal remains active
quorumNumerator - Uint256 If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - Uint256 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 - Uint256 Amount of votes needed for a proposal to qualify for passing
proposalThreshold - Uint256! Amount of votes needed to create a proposal
votingDelay - Uint256! Amount of blocks before a proposal can be voted on
votingPeriod - Uint256! Amount of blocks a proposal remains active
quorumNumerator - Uint256 If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - Uint256 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 - Uint256 Amount of votes needed for a proposal to qualify for passing
proposalThreshold - Uint256! Amount of votes needed to create a proposal
votingDelay - Uint256! Amount of blocks before a proposal can be voted on
votingPeriod - Uint256! Amount of blocks a proposal remains active
quorumNumerator - Uint256 If the governor supports fractional quorum the numerator of the quorum fraction
quorumDenominator - Uint256 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
}

GovernorContract

Fields
Field Name Description
address - Address!
type - GovernanceType!
lastBlock - Int!
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "type": "governoralpha",
  "lastBlock": 123
}

GovernorInput

Fields
Input Field Description
id - AccountID
slug - String
Example
{
  "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "slug": "abc123"
}

GovernorKind

Values
Enum Value Description

single

multiprimary

multisecondary

multiother

hub

spoke

Example
"single"

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"

GovernorType

Values
Enum Value Description

governoralpha

governorbravo

openzeppelingovernor

aave

nounsfork

nomineeelection

memberelection

hub

spoke

Example
"governoralpha"

GovernorV2

Fields
Field Name Description
id - AccountID!
chainId - ChainID!
contracts - Contracts!
isIndexing - Boolean!
isBehind - Boolean!
kind - GovernorKind!
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.
name - String! Tally name of the governor contract
organization - Organization!
proposalStats - ProposalStats!
parameters - GovernorV2Parameters!
quorum - Uint256! The minumum amount of votes (total or for depending on type) that are currently required to pass a proposal.
slug - String! Tally slug used for this goverance: tally.xyz/gov/[slug]
timelockId - AccountID Chain scoped address of the timelock contract for this governor if it exists.
tokenId - AssetID!
token - Token!
type - GovernorType!
delegatesCount - Int!
delegatesVotesCount - Uint256!
tokenOwnersCount - Int!
Example
{
  "id": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "chainId": "eip155:1",
  "contracts": Contracts,
  "isIndexing": true,
  "isBehind": false,
  "kind": "single",
  "lastIndexedBlock": Block,
  "name": "Uniswap",
  "organization": Organization,
  "proposalStats": ProposalStats,
  "parameters": GovernorV2Parameters,
  "quorum": 10987654321,
  "slug": "uniswap",
  "timelockId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "tokenId": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
  "token": Token,
  "type": "governoralpha",
  "delegatesCount": 123,
  "delegatesVotesCount": 10987654321,
  "tokenOwnersCount": 987
}

GovernorV2Parameters

Fields
Field Name Description
quorumVotes - Uint256
proposalThreshold - Uint256
votingDelay - Uint256
votingPeriod - Uint256
gracePeriod - Uint256
quorumNumerator - Uint256
quorumDenominator - Uint256
clockMode - String
nomineeVettingDuration - Uint256
fullWeightDuration - Uint256
Example
{
  "quorumVotes": 10987654321,
  "proposalThreshold": 10987654321,
  "votingDelay": 10987654321,
  "votingPeriod": 10987654321,
  "gracePeriod": 10987654321,
  "quorumNumerator": 10987654321,
  "quorumDenominator": 10987654321,
  "clockMode": "xyz789",
  "nomineeVettingDuration": 10987654321,
  "fullWeightDuration": 10987654321
}

GovernorsFiltersInput

Fields
Input Field Description
organizationId - IntID!
includeInactive - Boolean
Example
{"organizationId": 2207450143689540900, "includeInactive": true}

GovernorsInput

Fields
Input Field Description
filters - GovernorsFiltersInput!
page - PageInput
sort - GovernorsSortInput
Example
{
  "filters": GovernorsFiltersInput,
  "page": PageInput,
  "sort": GovernorsSortInput
}

GovernorsSortBy

Values
Enum Value Description

ID

The default sorting method. It sorts by date.
Example
"ID"

GovernorsSortInput

Fields
Input Field Description
isDescending - Boolean!
sortBy - GovernorsSortBy!
Example
{"isDescending": true, "sortBy": "ID"}

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

IntID

Description

IntID is a 64bit integer as a string - this is larger than Javascript's number.

Example
2207450143689540900

Member

Fields
Field Name Description
id - ID!
account - Account!
organization - Organization!
Example
{
  "id": "4",
  "account": Account,
  "organization": Organization
}

NativeCurrency

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

Node

Description

Union of all node types that are paginated.

Example
Delegate

NounsForkGovernorParameters

Fields
Field Name Description
quorumVotes - Uint256 Amount of votes needed for a proposal to qualify for passing
proposalThreshold - Uint256! Amount of votes needed to create a proposal
votingDelay - Uint256! Amount of blocks before a proposal can be voted on
votingPeriod - Uint256! Amount of blocks a proposal remains active
Example
{
  "quorumVotes": 10000,
  "proposalThreshold": 500,
  "votingDelay": 0,
  "votingPeriod": 14400
}

OpenZeppelinGovernorParameters

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

OrgUxVersion

Values
Enum Value Description

governor

tokenless

Example
"governor"

Organization

Fields
Field Name Description
id - IntID!
slug - String!
name - String!
chainIds - [ChainID!]!
governorIds - [AccountID!]!
metadata - OrganizationMetadata
creator - Account
hasActiveProposals - Boolean!
proposalsCount - Int!
votersCount - Int! use delegatesCount instead
delegatesCount - Int!
delegatesVotesCount - Uint256!
tokenHoldersCount - Int! use tokenOwnersCount instead
tokenOwnersCount - Int!
Example
{
  "id": 2207450143689540900,
  "slug": "xyz789",
  "name": "abc123",
  "chainIds": ["eip155:1"],
  "governorIds": [
    "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
  ],
  "metadata": OrganizationMetadata,
  "creator": Account,
  "hasActiveProposals": false,
  "proposalsCount": 123,
  "votersCount": 123,
  "delegatesCount": 123,
  "delegatesVotesCount": 10987654321,
  "tokenHoldersCount": 987,
  "tokenOwnersCount": 987
}

OrganizationInput

Fields
Input Field Description
id - IntID
slug - String
Example
{
  "id": 2207450143689540900,
  "slug": "xyz789"
}

OrganizationIssue

Fields
Field Name Description
id - ID
organizationId - IntID
name - String
description - String
Example
{
  "id": 4,
  "organizationId": 2207450143689540900,
  "name": "abc123",
  "description": "abc123"
}

OrganizationMetadata

Fields
Field Name Description
color - String
contact - Contact
description - String
icon - String
socials - Socials
Example
{
  "color": "xyz789",
  "contact": Contact,
  "description": "abc123",
  "icon": "abc123",
  "socials": Socials
}

OrganizationMetadataInput

Fields
Input Field Description
color - String
contact - ContactInput
description - String
icon - String
socials - SocialsInput
Example
{
  "color": "abc123",
  "contact": ContactInput,
  "description": "xyz789",
  "icon": "xyz789",
  "socials": SocialsInput
}

OrganizationsFiltersInput

Fields
Input Field Description
address - Address
chainId - ChainID
hasLogo - Boolean
isMember - Boolean Indicates whether the user holds any of the governance tokens associated with the organization.
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "chainId": "eip155:1",
  "hasLogo": true,
  "isMember": true
}

OrganizationsInput

Fields
Input Field Description
filters - OrganizationsFiltersInput
page - PageInput
sort - OrganizationsSortInput
Example
{
  "filters": OrganizationsFiltersInput,
  "page": PageInput,
  "sort": OrganizationsSortInput
}

OrganizationsSortBy

Values
Enum Value Description

ID

NAME

EXPLORE

Sorts organizations by live proposals and voters as on the Tally explore page.
Example
"ID"

OrganizationsSortInput

Fields
Input Field Description
isDescending - Boolean!
sortBy - OrganizationsSortBy!
Example
{"isDescending": true, "sortBy": "ID"}

OtherLinkInput

Fields
Input Field Description
label - String!
value - String!
Example
{
  "label": "xyz789",
  "value": "abc123"
}

PageInfo

Description

Page metadata including pagination cursors and total count

Fields
Field Name Description
firstCursor - String Cursor of the first item in the page
lastCursor - String Cursor of the last item in the page
count - Int Total number of items across all pages. FYI, this is not yet implemented so the value will always be 0
Example
{
  "firstCursor": "xyz789",
  "lastCursor": "abc123",
  "count": 987
}

PageInput

Description

Input to specify cursor based pagination parameters. Depending on which page is being fetched, between afterCursor & beforeCursor, only one's value needs to be provided

Fields
Input Field Description
afterCursor - String Cursor to start pagination after to fetch the next page
beforeCursor - String Cursor to start pagination before to fetch the previous page
limit - Int Maximum number of items per page 20 is the hard limit set on the backend
Example
{
  "afterCursor": "abc123",
  "beforeCursor": "xyz789",
  "limit": 987
}

PaginatedOutput

Description

Wraps a list of nodes and the pagination info

Fields
Field Name Description
nodes - [Node!]! List of nodes for the page
pageInfo - PageInfo! Pagination information
Example
{
  "nodes": [Delegate],
  "pageInfo": PageInfo
}

Pagination

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

Participation

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": 987}

ParticipationProposalStats

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

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": 987}

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 - Uint256! 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": 987,
  "activeDelegationCount": 123,
  "createdProposalsCount": 123,
  "voteCount": 123,
  "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 - Uint256! Total current voting power for this Account
in - Uint256! Total current voting power delegated to this Account including self-delegation if present
out - Uint256! Total voting power delegated to another Account
Example
{"net": 10987654321, "in": 10987654321, "out": 10987654321}

ParticipationWeightStats

Fields
Field Name Description
total - Uint256! Total current voting power for this Account
owned - Uint256! 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 - BlockOrTimestamp! First block when you can cast a vote, also the time when quorum is established
end - BlockOrTimestamp! Last block when you can cast a vote
eta - Uint256 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 - Uint256! Voting power of a given address on this proposal
Arguments
id - AccountID!
participationType - ProposalParticipationType!
Arguments
address - Address!
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,
  "participationType": "votedfor"
}

ProposalParticipationType

Values
Enum Value Description

votedfor

votedagainst

votedabstain

notdelegate

notvoted

unknown

Example
"votedfor"

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": 987, "active": 123, "failed": 123, "passed": 123}

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"

ProposalsCreatedCountInput

Fields
Input Field Description
governorId - AccountID
organizationId - IntID
Example
{
  "governorId": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "organizationId": 2207450143689540900
}

Role

Values
Enum Value Description

ADMIN

USER

Example
"ADMIN"

Socials

Fields
Field Name Description
discord - String
telegram - String
twitter - String
website - String
discourse - String
others - [OtherLink]
Example
{
  "discord": "abc123",
  "telegram": "abc123",
  "twitter": "xyz789",
  "website": "abc123",
  "discourse": "xyz789",
  "others": [OtherLink]
}

SocialsInput

Fields
Input Field Description
discord - String
telegram - String
twitter - String
website - String
discourse - String
others - [OtherLinkInput]
Example
{
  "discord": "xyz789",
  "telegram": "xyz789",
  "twitter": "xyz789",
  "website": "abc123",
  "discourse": "xyz789",
  "others": [OtherLinkInput]
}

SortOrder

Values
Enum Value Description

ASC

DESC

Example
"ASC"

StatusChange

Fields
Field Name Description
type - ProposalStatusType! Proposal State
blockNumber - Int! 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": 123,
  "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 - Uint256! supply derived from Transfer events
lastBlock - Int! 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 Uint256 values
eligibility - Eligibility! Eligibility of an account to claim this token
Arguments
id - AccountID!
stats - TokenStats! Counts of owners, voters as well as total supply and delegated voting power. use count fields on governor instead
isIndexing - Boolean!
isBehind - Boolean!
Example
{
  "id": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f",
  "type": "ERC20",
  "address": "0x1234567800000000000000000000000000000abc",
  "name": "xyz789",
  "symbol": "xyz789",
  "supply": 10987654321,
  "lastBlock": 123,
  "lastIndexedBlock": Block,
  "decimals": 123,
  "eligibility": Eligibility,
  "stats": TokenStats,
  "isIndexing": false,
  "isBehind": true
}

TokenBalance

Fields
Field Name Description
token - Token!
balance - Uint256!
Example
{"token": Token, "balance": 10987654321}

TokenBalancesInput

Fields
Input Field Description
address - Address!
governorID - AccountID
organizationID - IntID
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "governorID": "eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc",
  "organizationID": 2207450143689540900
}

TokenContract

Fields
Field Name Description
address - Address!
lastBlock - Int!
type - TokenType!
Example
{
  "address": "0x1234567800000000000000000000000000000abc",
  "lastBlock": 123,
  "type": "ERC20"
}

TokenDelegateStats

Fields
Field Name Description
total - Int! Total count of delegates by token
Example
{"total": 123}

TokenStats

Fields
Field Name Description
delegates - Int! use delegatesCount instead
delegatesCount - Int!
delegatesVotesCount - Uint256!
delegatedVotingPower - Uint256! use delegatesVotesCount instead
owners - Int! use ownersCount instead
ownersCount - Int!
supply - Uint256!
voters - Int! use delegates instead
Example
{
  "delegates": 987,
  "delegatesCount": 987,
  "delegatesVotesCount": 10987654321,
  "delegatedVotingPower": 10987654321,
  "owners": 123,
  "ownersCount": 123,
  "supply": 10987654321,
  "voters": 123
}

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
}

Uint256

Description

Uint256 is a large unsigned integer represented as a string.

Example
10987654321

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 - Uint256! 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": "xyz789",
  "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 - Uint256! Total weight (voting power) for this Choice/SupportType
votes - Uint256! 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": 987.65
}

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 - Uint256! Voting power prior to this event or interval
newBalance - Uint256! Voting power after this event or interval
netChange - Uint256! 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"