Data verification

Daily Active Agents

Tracks how many unique multisigs were active each day for all agents across all supported networks. This metric is useful to understand the operational footprint and engagement of specific agents over time. The active multisig count reflects the number of unique multisigs that performed at least one on-chain interaction attributed to a given agent within the UTC day window.

The following query is used to compute daily active agents:

Daily Active Multisigs query

Subgraph links: 1234


  query DailyActiveMultisigs($timestamp_gt: Int!, $timestamp_lt: Int!) {
    dailyActiveMultisigs_collection(
      where: {
        and: [
          { dayTimestamp_gt: $timestamp_gt }
          { dayTimestamp_lt: $timestamp_lt }
        ]
      }
      orderBy: dayTimestamp
      orderDirection: desc
    ) {
      id
      count
    }
  }

Babydegen Daily Active Agents

Tracks how many unique multisigs were active each day for selected agents on Mode and Optimism. This metric is useful to understand the operational footprint and engagement of specific agents over time. The active multisig count reflects the number of unique multisigs that performed at least one on-chain interaction attributed to a given agent within the UTC day window.

The following query is used to compute daily active agents:

Daily Performance query

Subgraph links: 12


  query DailyPerformance($timestamp_gt: Int!, $timestamp_lt: Int!) {
    dailyAgentPerformances(
      where: {
        and: [
          { agentId: 40 }
          { dayTimestamp_gt: $timestamp_gt }
          { dayTimestamp_lt: $timestamp_lt }
        ]
      }
      orderBy: dayTimestamp
      orderDirection: desc
    ) {
      id
      activeMultisigCount
    }
  }

Mech Daily Active Agents

Tracks how many unique multisigs were active each day for selected agents on Gnosis and Base. This metric is useful to understand the operational footprint and engagement of specific agents over time. The active multisig count reflects the number of unique multisigs that performed at least one on-chain interaction attributed to a given agent within the UTC day window.

The following query is used to compute daily active agents:

Daily Performance query

Subgraph links: 12


  query DailyPerformance($timestamp_gt: Int!, $timestamp_lt: Int!) {
    dailyAgentPerformances(
      where: {
        and: [
          {
            or: [
              { agentId: 9 }
              { agentId: 26 }
              { agentId: 29 }
              { agentId: 36 }
              { agentId: 37 }
            ]
          }
          { dayTimestamp_gt: $timestamp_gt }
          { dayTimestamp_lt: $timestamp_lt }
        ]
      }
      orderBy: dayTimestamp
      orderDirection: desc
    ) {
      id
      activeMultisigCount
    }
  }

Predict Daily Active Agents

Tracks how many unique multisigs were active each day for selected Predict agents on Gnosis. The active multisig countreflects the number of unique multisigs that performed at least one on-chain interaction attributed to a given agent within the UTC day window.

The following query is used to compute daily active agents:

Daily Performance query

Subgraph links: 1


  query DailyPredictPerformances(
    $agentIds: [Int!]!
    $timestamp_gt: Int!
    $timestamp_lt: Int!
  ) {
    dailyAgentPerformances(
      where: {
        and: [
          { agentId_in: $agentIds }
          { dayTimestamp_gt: $timestamp_gt }
          { dayTimestamp_lt: $timestamp_lt }
        ]
      }
      orderBy: dayTimestamp
      orderDirection: asc
      first: 1000
    ) {
      dayTimestamp
      activeMultisigCount
    }
  }

Operators

Tracks the total number of unique operators across all supported networks. This metric aggregates operator data from multiple blockchain sources to provide a comprehensive view of the autonomous agent operator ecosystem and network participation.

The following query aggregates operators from all chains:

Operators Query

Subgraph links: GnosisBaseModeOptimismCeloEthereumPolygonArbitrum


  query OperatorGlobals {
    globals {
      id
      totalOperators
    }
  }

Transactions

Tracks the total number of transactions executed by all agents across all supported networks. This metric provides insight into the overall activity level and transaction volume generated by the autonomous agent ecosystem.

The following query is used to compute total daily transactions:

Registry Globals query

Subgraph links: 12345678


  query RegistryGlobals {
    global(id: "") {
      id
      txCount
    }
  }

Predict: Transactions by Agent Type

Breaks down total Predict transactions by agent category using agent-level counters. Categories mirror the UI: Traders, Mechs (Prediction Brokers), and Market Creators/Closers.

Classification used

Market maker agent IDs: 13

Valory trader agent IDs: 14, 25

Mech agent IDs: 9, 26, 29, 37, 36

The following query is used to fetch per-agent tx counts:

Agent Performances query

Subgraph link: Gnosis


  query AgentTxs($agentIds: [Int!]!) {
    agentPerformances(
      where: { id_in: $agentIds }
      orderBy: id
      orderDirection: asc
    ) {
      id
      txCount
    }
  }

ATA Transactions

Tracks agent-to-agent transactions across Gnosis and Base networks from multiple subgraph sources. This metric aggregates transaction data from Mech Marketplace and Legacy Mech subgraphs to provide a comprehensive view of autonomous agent interaction volume and cross-chain activity.

The following query aggregates ATA transactions from all sources:

ATA Transactions Query

Subgraph links: Gnosis MMBase MMGnosis LM


  query AtaTransactions {
    globals(where: { id: "" }) {
      id
      totalAtaTransactions
    }
  }

Mech Turnover

Tracks the total fees collected from the Mech Marketplace across three different sources: new mech fees from Gnosis and Base networks, and legacy mech fees from Gnosis. New mech fees are already in USD, while legacy fees are converted from wei to XDAI (treated as 1 USD equivalent) before being summed together to provide the total mech marketplace turnover.

The following queries aggregate mech fees from all three sources:

New Mech Marketplace Fees Query

Subgraph links: GnosisBase


  query NewMechFees {
    global(id: "") {
      id
      totalFeesInUSD
    }
  }

Legacy Mech Fees Query

Subgraph link: Gnosis

Note: Legacy mech fees are returned in wei and converted to XDAI by dividing by 10^18 before being added to the total turnover.


  query LegacyMechFees {
    global(id: "") {
      id
      totalFeesIn
    }
  }

OLAS Staked

Tracks the total amount of OLAS tokens currently staked across all agents in the ecosystem. This metric provides insight into the overall economic security and commitment level across all supported networks.

The following query is used to compute total OLAS staked:

Staking Globals query

Subgraph links: 1234


  query StakingGlobals {
    global(id: "") {
      totalRewards
      currentOlasStaked
    }
  }

Predict ROI

Total ROI shows your agent's overall earnings, including profits from predictions and staking rewards, minus all related costs such as bet amounts, gas fees, and Mech request fees. Requests made for unresolved (open) markets are excluded to ensure accuracy.

  • Partial ROI: profit from prediction markets only.
  • Final ROI: includes staking rewards (OLAS converted to USD).

The following queries are used to define the value:

1) Mech Requests query

Used for getting:
  • Total mech requests for all markets, including closed and open
  • All requests with question titles in order to use further to subtract those done for open markets
Subgraph link

  query TotalMechRequests {
    global(id: "") {
      totalRequests
    }
  }
 
  query MechRequests {
    
          _page1: requests(
            first: 1000
            skip: 0
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page2: requests(
            first: 1000
            skip: 1000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page3: requests(
            first: 1000
            skip: 2000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page4: requests(
            first: 1000
            skip: 3000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page5: requests(
            first: 1000
            skip: 4000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page6: requests(
            first: 1000
            skip: 5000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page7: requests(
            first: 1000
            skip: 6000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page8: requests(
            first: 1000
            skip: 7000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page9: requests(
            first: 1000
            skip: 8000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        

          _page10: requests(
            first: 1000
            skip: 9000
            where: { blockTimestamp_gt: 1756684800 }
          ) {
            id
            questionTitle
            blockTimestamp
          }
        
  }

2) Markets & Bets Query

Used for getting:
  • All open markets, needed in order to understand which markets are open and use it to subtract needed amount of mech requests from the total
  • Cumulative payout, trades amounts and fees for open markets
Subgraph link

  query MarketsAndBets {
    fixedProductMarketMakerCreations(
      where: { blockTimestamp_gt: 1756684800 }
    ) {
      id
      question
    }

    global(id: "") {
      totalFees
      totalPayout
      totalTraded
    }
  }

3) Staking Globals query

Used for getting cumulative staking rewards in OLAS

Subgraph link

  query StakingGlobals {
    global(id: "") {
      totalRewards
      currentOlasStaked
    }
  }

Predict Success Rate

Success rate shows how often your agent's predictions were correct in resolved markets. Bets on unresolved markets or with invalid outcomes are excluded, and the rate is based on the latest 10,000 bets from closed markets to ensure performance remains relevant.

The following query is used:

Closed Markets Bets query

Used to fetch all bets along with their outcome and the final answer of the associated market

Subgraph link

  query ClosedMarketsBets {
    
          _page1: bets(
            first: 1000
            skip: 0
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page2: bets(
            first: 1000
            skip: 1000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page3: bets(
            first: 1000
            skip: 2000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page4: bets(
            first: 1000
            skip: 3000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page5: bets(
            first: 1000
            skip: 4000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page6: bets(
            first: 1000
            skip: 5000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page7: bets(
            first: 1000
            skip: 6000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page8: bets(
            first: 1000
            skip: 7000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page9: bets(
            first: 1000
            skip: 8000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        

          _page10: bets(
            first: 1000
            skip: 9000
            where: { fixedProductMarketMaker_: { currentAnswer_not: null } }
            orderBy: timestamp
            orderDirection: desc
          ) {
            outcomeIndex
            fixedProductMarketMaker {
              id
              currentAnswer
            }
          }
        
  }

Protocol Fees and OLAS Burn

Tracks the amount of protocol fees collected and their conversion into OLAS for burning. Currently, protocol fees are set to 0% , which means no fees are generated, no tokens are converted into OLAS, and therefore no OLAS are burned at this time.

Verify on-chain: