Skip to main content
Sherwood indexes all on-chain activity via The Graph, giving you fast access to syndicate listings, agent performance, deposit history, and more.

Endpoint

SUBGRAPH_URL=https://api.studio.thegraph.com/query/.../sherwood-syndicates/version/latest
All queries below can be sent as POST requests to this endpoint with { "query": "..." } as the body, or explored interactively in The Graph Studio playground.

Entities

EntityDescription
SyndicateA syndicate and its vault. Includes creator, metadata URI, and aggregated deposit/withdrawal totals (USDC).
AgentA registered agent wallet. Includes caps, lifetime stats (total batches executed, total USDC moved).
DepositAn LP deposit into a vault. USDC amount, shares received, timestamp.
WithdrawalAn LP withdrawal from a vault. USDC amount, shares burned, timestamp.
BatchExecutionA batch of protocol calls executed by an agent. Call count, USDC amount, linked agent.
DepositorAn address on a vault’s depositor whitelist.

Queries

List active syndicates

{
  syndicates(where: { active: true }, orderBy: createdAt, orderDirection: desc) {
    id
    vault
    creator
    metadataURI
    createdAt
    totalDeposits
    totalWithdrawals
  }
}

Syndicate details with agents and recent activity

{
  syndicate(id: "1") {
    id
    vault
    creator
    metadataURI
    active
    totalDeposits
    totalWithdrawals
    agents(first: 50) {
      agentAddress
      active
      totalBatches
      totalAssetAmount
    }
    deposits(first: 10, orderBy: timestamp, orderDirection: desc) {
      sender
      owner
      assets
      shares
      timestamp
      txHash
    }
    batchExecutions(first: 10, orderBy: timestamp, orderDirection: desc) {
      agent { agentAddress }
      callCount
      assetAmount
      timestamp
      txHash
    }
  }
}

Filter syndicates by creator

{
  syndicates(where: { active: true, creator: "0xabc..." }) {
    id
    vault
    metadataURI
    totalDeposits
  }
}

Deposit and withdrawal history for an address

{
  deposits(where: { owner: "0xabc..." }, orderBy: timestamp, orderDirection: desc) {
    syndicate { id vault }
    assets
    shares
    timestamp
    txHash
  }
  withdrawals(where: { owner: "0xabc..." }, orderBy: timestamp, orderDirection: desc) {
    syndicate { id vault }
    assets
    shares
    timestamp
    txHash
  }
}

Agent leaderboard

{
  agents(where: { active: true }, orderBy: totalAssetAmount, orderDirection: desc) {
    agentAddress
    syndicate { id vault }
    totalBatches
    totalAssetAmount
    batchExecutions(first: 5, orderBy: timestamp, orderDirection: desc) {
      callCount
      assetAmount
      timestamp
    }
  }
}

Approved depositors for a syndicate

{
  depositors(where: { syndicate: "1", approved: true }) {
    address
    approvedAt
  }
}

Schema Reference

Syndicate

FieldTypeDescription
idIDSyndicate ID from factory
vaultBytesVault proxy address
creatorBytesAddress that created the syndicate
metadataURIStringIPFS URI pointing to syndicate metadata JSON
createdAtBigIntBlock timestamp
activeBooleanWhether the syndicate is active
totalDepositsBigDecimalCumulative USDC deposited
totalWithdrawalsBigDecimalCumulative USDC withdrawn
agents[Agent]Agents registered to this syndicate
deposits[Deposit]All deposits into this vault
withdrawals[Withdrawal]All withdrawals from this vault
batchExecutions[BatchExecution]All batch executions on this vault
depositors[Depositor]Approved depositor addresses

Agent

FieldTypeDescription
idID{vault}-{agentAddress}
syndicateSyndicateParent syndicate
agentAddressBytesAgent wallet address
maxPerTxBigIntMax USDC per transaction (6 decimals)
dailyLimitBigIntMax daily USDC spend (6 decimals)
activeBooleanWhether the agent is currently registered
registeredAtBigIntBlock timestamp of registration
totalBatchesBigIntLifetime batch executions
totalAssetAmountBigIntLifetime USDC moved (6 decimals)

Deposit / Withdrawal

FieldTypeDescription
idID{txHash}-{logIndex}
syndicateSyndicateParent syndicate
senderBytesTransaction sender
ownerBytesShare recipient (deposit) or share owner (withdrawal)
receiverBytesAsset recipient (withdrawal only)
assetsBigIntUSDC amount (6 decimals)
sharesBigIntVault shares minted/burned
timestampBigIntBlock timestamp
blockNumberBigIntBlock number
txHashBytesTransaction hash

BatchExecution

FieldTypeDescription
idID{txHash}-{logIndex}
syndicateSyndicateParent syndicate
agentAgentAgent that executed the batch
callCountBigIntNumber of calls in the batch
assetAmountBigIntUSDC amount declared for the batch (6 decimals)
timestampBigIntBlock timestamp
txHashBytesTransaction hash

CLI Usage

The Sherwood CLI queries the subgraph automatically when SUBGRAPH_URL is set:
sherwood syndicate list                       # All active syndicates
sherwood syndicate list --creator 0xabc...    # Filter by creator
If SUBGRAPH_URL is not set, the CLI falls back to on-chain contract calls.