Reports
This guide covers vault reporting operations for Lido Staking Vaults. The CLI interacts with existing oracle reports stored on IPFS and submits them to the LazyOracle contract for on-chain processing.
Overview
The reporting system works with oracle-generated reports through:
- IPFS Storage: Fetches existing reports from decentralized storage
- LazyOracle: Submits report data to on-chain oracle contract
- Merkle Proofs: Verifies individual vault data from batched reports
Fetch Reports
Get Latest Report Data
Retrieve metadata about the latest oracle report:
yarn start report r latest-report-data
Returns:
- Timestamp of the latest report
- Merkle tree root of all vault data
- IPFS CID containing the full report
Get Report by Vault
Fetch specific vault data from the latest oracle report:
yarn start report r by-vault
Options:
-v, --vault <address>
: Vault address (interactive selection if not provided)-g, --gateway <url>
: Custom IPFS gateway URL
Returns vault data:
vault_address
: The vault contract addresstotal_value_wei
: Total ETH value managed by vault (in wei)fee
: Accumulated fees for the vaultliability_shares
: Total shares issued by vaultslashing_reserve
: Reserved amount for potential slashing
Get Proof by Vault
Generate Merkle proof for a specific vault's data:
yarn start report r proof-by-vault
Options:
-v, --vault <address>
: Vault address (interactive selection if not provided)-g, --gateway <url>
: Custom IPFS gateway URL
Returns:
- Merkle proof array for the vault's data
- Proof can be used for on-chain verification
Get All Reports
Fetch complete report data for all vaults:
yarn start report r all
Options:
-g, --gateway <url>
: Custom IPFS gateway URL
Returns:
- Array of all vault reports in the latest oracle update
- Comprehensive overview of entire stVaults ecosystem
Check CID
Verify IPFS accessibility of the latest report:
yarn start report r check-cid
Options:
-u, --url <url>
: Custom IPFS gateway to test
Purpose:
- Verifies report data is accessible via IPFS
- Useful for troubleshooting connectivity issues
Submit Reports
Submit by Vault
Submit existing oracle report data for a specific vault to LazyOracle:
yarn start report w by-vault-submit
Options:
-v, --vault <address>
: Vault address (interactive selection if not provided)-g, --gateway <url>
: Custom IPFS gateway URL
Process:
- Fetches latest report from IPFS
- Generates Merkle proof for the vault
- Displays vault data for confirmation
- Submits
updateVaultData
transaction to LazyOracle
Submit by Multiple Vaults
Batch submit reports for specific vaults:
yarn start report w by-vaults-submit <vault1> <vault2> [...]
Arguments:
<vaults...>
: Space-separated list of vault addresses
Options:
-g, --gateway <url>
: Custom IPFS gateway URL-e, --skip-error
: Continue processing if individual submissions fail
Benefits:
- Processes multiple vaults efficiently
- Progress bar shows update status
- Can skip errors and continue
Submit All
Submit reports for all vaults in the latest oracle update:
yarn start report w submit-all
Options:
-g, --gateway <url>
: Custom IPFS gateway URL-e, --skip-error
: Continue processing if individual submissions fail
Process:
- Fetches all vault data from latest oracle report
- Updates every vault with progress tracking
- Provides complete ecosystem synchronization
Report Data Structure
Vault Data Fields
Each vault report contains five core fields:
Field | Description | Type |
---|---|---|
vault_address | Vault contract address | String |
total_value_wei | Total ETH value in vault (wei) | String |
fee | Accumulated fees | String |
liability_shares | Total shares issued by vault | String |
slashing_reserve | Reserved amount for slashing protection | String |
Report Metadata
Reports include additional metadata:
- Timestamp: When the report was generated
- Block Number: Ethereum block reference
- Merkle Tree Root: Root hash for data verification
- Reference Slot: Beacon Chain slot reference
- Previous CID: Link to previous report for history