STABLE

Streamflow staking guide

Integrate finalized lock observations without double counting.

Supported lock evidence

The Streamflow adapter reads finalized vesting/timelock positions through the current official SDK and canonical Solana RPC evidence. A staking source pins network, program/deployment, adapter version, optional target asset, finality policy, and scan checkpoint.

Each immutable observation records the source position/version, economic position key, owner and beneficiary locators, asset, original/locked/unlocked-unclaimed atomic units, schedule, revocable/transferable flags, slot/finality watermark, classification confidence, and evidence hash.

Avoid double counting

Projection selects the latest finalized version of each economic position. Streamflow/API/chain observations that describe the same position share an economic key and are reconciled, not summed. Unknown or conflicting classification remains separately labeled. Assets are never combined without explicit conversion—which the locked-supply summary does not perform.

ts
const summary = await fetch("https://agentranking.io/api/v1/staking/summary").then((r) => r.json());
for (const row of summary.staking.data) {
  console.log(row.asset.symbol, row.category, row.lockedUnits, row.projectedAt);
}

Operations

The synchronizer is a durable scheduled job with a singleton source/window key, bounded pages, checkpoint after durable observation, retries with backoff, and provider circuit telemetry. Refresh requests do not trust client-supplied balances. Repair rebuilds the locked-supply projection from immutable finalized observations and compares source counts/watermarks before activation.