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:
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 } }
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:
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 } }
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:
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 } }
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:
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 } }
Total requests are aggregated from two sources: legacy Mech requests on Gnosis and Mech Marketplace requests on Gnosis and Base. The legacy Mech requests are read from the legacy Mech subgraph, while the marketplace requests are read from the Mech Marketplace subgraphs.
Subgraph link: Legacy Mech (Gnosis)
query MechGlobalsTotalRequests { global(id: "") { totalRequests } }
query MechMarketplaceTotalRequests { global(id: "") { totalRequests } }
Predict, Contribute, and Governatooorr request counts are computed by summing per-agent totals across subgraphs using fixed agent IDs: Predict [14, 25, 13], Contribute [6], Governatooorr [5]. The "Other" bucket is computed as Total Requests minus these known categories.
Subgraph link: Mech (on-chain)
query MechRequestsPerAgentOnchains { requestsPerAgentOnchains(where: { id_in: ["14", "25", "13", "6", "5"] }) { id requestsCount } }
query MechMarketplaceRequestsPerAgents { requestsPerAgents(where: { id_in: ["14", "25", "13", "6", "5"] }) { id requestsCount } }
Aggregates the number of unique OLAS token holders across supported networks. Each network's tokenomics subgraph is queried for the token holder count, and results are summed to obtain the total holders metric shown on the OLAS Token page.
0x0001A500A6B18995B03f44bb040A5fFc28E45CB0
0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f
0xFEF5d947472e72Efbb2E388c730B7428406F2F95
0x064F8B858C2A603e1b106a2039f5446D32dc81c1
0xFC2E6e6BCbd49ccf3A5f029c79984372DcBFE527
0x54330d28ca3357F294334BDC454a032e7f353416
0xaCFfAe8e57Ec6E394Eb1b41939A8CF7892DbDc51
0xcfD1D50ce23C46D3Cf6407487B2F8934e96DC8f9
The same query is executed against each tokenomics subgraph with the network's token address to retrieve the holder count.
query HolderCounts($tokenId: ID!) { token(id: $tokenId) { holderCount } }
Counts the number of wallets with an active veOLAS lock on Ethereum. The metric sums all veOLAS depositors where unlockTimestamp
is in the future, using the tokenomics subgraph.
The following queries power the veOLAS metrics shown on the Govern page:
Used for counting wallets with active veOLAS locks whereunlockTimestamp
is in the future.
query ActiveVeOlasDepositors { _page1: veolasDepositors( first: 1000 skip: 0 where: { unlockTimestamp_gt: $unlockAfter } orderBy: unlockTimestamp orderDirection: asc ) { id unlockTimestamp } _page2: veolasDepositors( first: 1000 skip: 1000 where: { unlockTimestamp_gt: $unlockAfter } orderBy: unlockTimestamp orderDirection: asc ) { id unlockTimestamp } _page3: veolasDepositors( first: 1000 skip: 2000 where: { unlockTimestamp_gt: $unlockAfter } orderBy: unlockTimestamp orderDirection: asc ) { id unlockTimestamp } _page4: veolasDepositors( first: 1000 skip: 3000 where: { unlockTimestamp_gt: $unlockAfter } orderBy: unlockTimestamp orderDirection: asc ) { id unlockTimestamp } _page5: veolasDepositors( first: 1000 skip: 4000 where: { unlockTimestamp_gt: $unlockAfter } orderBy: unlockTimestamp orderDirection: asc ) { id unlockTimestamp } }
Reads the locked OLAS amount directly from the veOLAS token entry in the same subgraph.
query VeOlasLockedBalance($tokenId: ID!) { token(id: $tokenId) { balance } }
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:
Subgraph links: GnosisBaseModeOptimismCeloEthereumPolygonArbitrum
query OperatorGlobals { globals { id totalOperators } }
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:
query RegistryGlobals { global(id: "") { id txCount } }
Breaks down total Predict transactions by agent category using agent-level counters. Categories mirror the UI: Traders, Mechs (Prediction Brokers), and Market Creators/Closers.
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:
Subgraph link: Gnosis
query AgentTxs($agentIds: [Int!]!) { agentPerformances( where: { id_in: $agentIds } orderBy: id orderDirection: asc ) { id txCount } }
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:
Subgraph links: Gnosis MMBase MMGnosis LM
query AtaTransactions { globals(where: { id: "" }) { id totalAtaTransactions } }
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:
query NewMechFees { global(id: "") { id totalFeesInUSD } }
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 } }
These include both in and out totals to compute claimed and unclaimed amounts in the API aggregator.
query NewMechFeesTotals { global(id: "") { totalFeesInUSD totalFeesOutUSD } }
Subgraph link: Gnosis
query LegacyMechFeesTotals { global(id: "") { totalFeesIn totalFeesOut } }
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:
query StakingGlobals { global(id: "") { totalRewards currentOlasStaked } }
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.
The following queries are used to define the value:
query TotalMechRequests { global(id: "") { totalRequests } } query MechRequests { _page1: requests( first: 1000 skip: 0 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page2: requests( first: 1000 skip: 1000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page3: requests( first: 1000 skip: 2000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page4: requests( first: 1000 skip: 3000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page5: requests( first: 1000 skip: 4000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page6: requests( first: 1000 skip: 5000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page7: requests( first: 1000 skip: 6000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page8: requests( first: 1000 skip: 7000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page9: requests( first: 1000 skip: 8000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } _page10: requests( first: 1000 skip: 9000 where: { blockTimestamp_gt: 1759708800 } ) { id questionTitle blockTimestamp } }
query MarketsAndBets { fixedProductMarketMakerCreations( where: { blockTimestamp_gt: 1759708800 } ) { id question } global(id: "") { totalFees totalPayout totalTraded } }
Used for getting cumulative staking rewards in OLAS
Subgraph linkquery StakingGlobals { global(id: "") { totalRewards currentOlasStaked } }
APR is computed from the OLAS staking contracts on Gnosis by querying rewards per second, minimum staking deposit, and number of agent instances, then taking the maximum APR across contracts.
Subgraph used:
Staking subgraph (Gnosis)Query:
{ stakingContracts(where: {instance_in: ["0xeF44Fb0842DDeF59D37f85D61A1eF492bbA6135d","0x389B46c259631Acd6a69Bde8B6cEe218230bAE8C","0x5344B7DD311e5d3DdDd46A4f71481bD7b05AAA3e","0xb964e44c126410df341ae04B13aB10A985fE3513","0x80faD33Cadb5F53f9D29F02Db97D682E8b101618","0x1c2F82413666d2a3fD8bC337b0268e62dDF67434","0x238EB6993b90a978ec6AAD7530d6429c949C08DA","0xDaF34eC46298b53a3d24CBCb431E84eBd23927dA","0x998dEFafD094817EF329f6dc79c703f1CF18bC90","0xaD9d891134443B443D7F30013c7e14Fe27F2E029","0xE56dF1E563De1B10715cB313D514af350D207212","0xBd59Ff0522aA773cB6074ce83cD1e4a05A457bc1","0x3052451e1eAee78e62E169AfdF6288F8791F2918","0x4Abe376Fda28c2F43b84884E5f822eA775DeA9F4","0x2546214aEE7eEa4bEE7689C81231017CA231Dc93","0xD7A3C8b975f71030135f1a66e9e23164d54fF455","0xdB9E2713c3dA3C403F2eA6E570eB978b00304e9E","0x1E90522b45c771DCF5f79645B9e96551d2ECaF62","0x6c65430515c70a3f5E62107CC301685B7D46f991","0x88eB38FF79fBa8C19943C0e5Acfa67D5876AdCC1","0x356C108D49C5eebd21c84c04E9162de41933030c","0x17dBAe44BC5618Cc254055b386A29576b4F87015","0xB0ef657b8302bd2c74B6E6D9B2b4b39145b19c6f","0x3112c1613eAC3dBAE3D4E38CeF023eb9E2C91CF7","0xF4a75F476801B3fBB2e7093aCDcc3576593Cc1fc","0x6C6D01e8eA8f806eF0c22F0ef7ed81D868C1aB39","0x1430107A785C3A36a0C1FC0ee09B9631e2E72aFf","0x041e679d04Fc0D4f75Eb937Dea729Df09a58e454","0x9d6e7aB0B5B48aE5c146936147C639fEf4575231","0x9fb17E549FefcCA630dd92Ea143703CeE4Ea4340","0xCAbD0C941E54147D40644CF7DA7e36d70DF46f44","0xAb10188207Ea030555f53C8A84339A92f473aa5e","0x8d7bE092d154b01d404f1aCCFA22Cef98C613B5D","0x9D00A0551F20979080d3762005C9B74D7Aa77b85","0xE2f80659dB1069f3B6a08af1A62064190c119543","0x75EECA6207be98cAc3fDE8a20eCd7B01e50b3472","0x9c7F6103e3a72E4d1805b9C683Ea5B370Ec1a99f","0xcdC603e0Ee55Aae92519f9770f214b2Be4967f7d","0x22D6cd3d587D8391C3aAE83a783f26c67ab54A85","0xaaEcdf4d0CBd6Ca0622892Ac6044472f3912A5f3","0x168aED532a0CD8868c22Fc77937Af78b363652B1"]}) { id rewardsPerSecond minStakingDeposit numAgentInstances } }
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:
Used to fetch all bets along with their outcome and the final answer of the associated market
Subgraph linkquery 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 } } }