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.
Terms of Service
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
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 |
|
picture - String
|
Picture URL |
activity - [ActivityItem!]
|
AccountActivity (votes, proposals created, etc). Currently only supports on chain governance. |
Arguments |
|
safes - [AccountID!]
|
|
type - AccountType!
|
|
votes - Uint256!
|
|
Arguments
|
|
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 |
---|---|
|
Example
"BLOCK_TIMESTAMP"
AccountID
Description
AccountID is a CAIP-10 compliant account id.
Example
"eip155:1:0x7e90e03654732abedf89Faf87f05BcD03ACEeFdc"
AccountType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"EOA"
ActivityItem
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 |
---|
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
ContactInput
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
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
|
|
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
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 |
---|---|
|
|
|
Example
"USER"
DelegatesFiltersInput
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 |
---|---|
|
The default sorting method. It sorts by date. |
|
Sorts by voting power. |
|
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
Example
{
"id": 2207450143689540900,
"blockNumber": 123,
"blockTimestamp": 1663224162,
"chainId": "eip155:1",
"delegator": Account,
"delegate": Delegate,
"governor": Governor,
"token": Token,
"votes": 10987654321
}
DelegationWeightChange
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 |
---|---|
|
|
|
|
|
|
|
Example
"CREATED"
DelegationWeightStats
DelegationsFiltersInput
DelegationsInput
Fields
Input Field | Description |
---|---|
filters - DelegationsFiltersInput!
|
|
page - PageInput
|
|
sort - DelegationsSortInput
|
Example
{
"filters": DelegationsFiltersInput,
"page": PageInput,
"sort": DelegationsSortInput
}
DelegationsSortBy
Values
Enum Value | Description |
---|---|
|
The default sorting method. It sorts by date. |
|
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 |
---|---|
|
|
|
|
|
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!]
|
DecodedParameter s 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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
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
GovernorKind
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"single"
GovernorParameters
Example
GovernorAlphaParameters
GovernorSort
Fields
Input Field | Description |
---|---|
field - GovernorSortField
|
|
order - SortOrder
|
Example
{"field": "TOTAL_PROPOSALS", "order": "ASC"}
GovernorSortField
Values
Enum Value | Description |
---|---|
|
|
|
Example
"TOTAL_PROPOSALS"
GovernorType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
Example
{
"quorumVotes": 10987654321,
"proposalThreshold": 10987654321,
"votingDelay": 10987654321,
"votingPeriod": 10987654321,
"gracePeriod": 10987654321,
"quorumNumerator": 10987654321,
"quorumDenominator": 10987654321,
"clockMode": "xyz789",
"nomineeVettingDuration": 10987654321,
"fullWeightDuration": 10987654321
}
GovernorsFiltersInput
GovernorsInput
Fields
Input Field | Description |
---|---|
filters - GovernorsFiltersInput!
|
|
page - PageInput
|
|
sort - GovernorsSortInput
|
Example
{
"filters": GovernorsFiltersInput,
"page": PageInput,
"sort": GovernorsSortInput
}
GovernorsSortBy
Values
Enum Value | Description |
---|---|
|
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
Node
Description
Union of all node types that are paginated.
Types
Union Types |
---|
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 |
---|---|
|
|
|
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
OrganizationIssue
OrganizationMetadata
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
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 |
---|---|
|
|
|
|
|
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"}
OtherLink
OtherLinkInput
PageInfo
Description
Page metadata including pagination cursors and total count
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
Example
{
"afterCursor": "abc123",
"beforeCursor": "xyz789",
"limit": 987
}
PaginatedOutput
Pagination
Participation
Fields
Field Name | Description |
---|---|
account - Account!
|
|
governor - Governor!
|
|
votes - [Vote!]!
|
Votes made by the account on the governor |
Arguments
|
|
proposals - [Proposal!]!
|
Proposals created by this account |
Arguments
|
|
stats - ParticipationStats!
|
Aggregations of account activity in this governor |
delegationsIn - [Delegation!]!
|
Delegations of voting power made to this account |
Arguments
|
|
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
|
|
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 |
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
.
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
|
|
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
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 |
|
votingPower - Uint256!
|
Voting power of a given address on this proposal |
Arguments
|
|
participationType - ProposalParticipationType!
|
|
Arguments
|
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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"votedfor"
ProposalSort
Fields
Input Field | Description |
---|---|
field - ProposalSortField
|
|
order - SortOrder
|
Example
{"field": "START_BLOCK", "order": "ASC"}
ProposalSortField
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"START_BLOCK"
ProposalStats
Example
{"total": 987, "active": 123, "failed": 123, "passed": 123}
ProposalStatusType
Values
Enum Value | Description |
---|---|
|
Proposal has been created, but voting has not started. An address can still accumulate voting power. |
|
Voting is in progress. |
|
Proposal has succeeded, it can now be queued or executed. |
|
Proposal has been defeated. This proposal cannot be queued or excuted. This is a final status. |
|
Proposal has queued into a timelock. This proposal can be excuted. |
|
Proposal has been executed. This is a final status. |
|
Proposal has been canceled. This is a final status. |
|
Proposal has expired. This is a final status. |
Example
"PENDING"
ProposalsCreatedCountInput
Role
Values
Enum Value | Description |
---|---|
|
|
|
Example
"ADMIN"
Socials
SocialsInput
SortOrder
Values
Enum Value | Description |
---|---|
|
|
|
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 |
---|---|
|
|
|
|
|
Example
"ABSTAIN"
TimeInterval
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
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
TokenBalancesInput
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 |
---|---|
|
|
|
|
|
Example
"ERC20"
Transaction
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 |
---|---|
|
|
|
|
|
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 |
---|---|
|
|
|
|
|
|
|
Example
"CREATED"