@@ -81,6 +81,54 @@ message FilterMetadata {
8181 string order_by = 3 ;
8282}
8383
84+ // StateExpiryAccessTotalResponse is the v1 API response for state expiry access totals.
85+ message StateExpiryAccessTotalResponse {
86+ StateExpiryAccessTotal item = 1 ;
87+ FilterMetadata filters = 2 ;
88+ }
89+
90+ // StateExpiryAccessTotal represents state expiry access statistics for public API consumption.
91+ message StateExpiryAccessTotal {
92+ // Total number of accounts accessed in last 365 days
93+ uint64 total_accounts = 1 ;
94+ // Number of expired accounts (not accessed in last 365 days)
95+ uint64 expired_accounts = 2 ;
96+ // Total number of contract accounts accessed in last 365 days
97+ uint64 total_contracts = 3 ;
98+ // Number of expired contracts (not accessed in last 365 days)
99+ uint64 expired_contracts = 4 ;
100+ }
101+
102+ // StateExpiryBlockResponse is the v1 API response for state expiry block information.
103+ // Returns the execution layer block number from approximately 1 year ago, which is
104+ // used as the expiry boundary for state expiry calculations.
105+ message StateExpiryBlockResponse {
106+ StateExpiryBlock item = 1 ;
107+ FilterMetadata filters = 2 ;
108+ }
109+
110+ // StateExpiryBlock represents the execution block from approximately 1 year ago
111+ // that serves as the boundary for state expiry calculations.
112+ message StateExpiryBlock {
113+ // The execution layer block number from approximately 1 year ago
114+ uint32 block_number = 1 ;
115+ }
116+
117+ // StateExpiryStorageTotalResponse is the v1 API response for storage slot totals.
118+ // This endpoint provides the latest total storage slot statistics for state expiry analysis.
119+ message StateExpiryStorageTotalResponse {
120+ StateExpiryStorageTotal item = 1 ;
121+ FilterMetadata filters = 2 ;
122+ }
123+
124+ // StateExpiryStorageTotal represents state expiry storage slot statistics for public API consumption.
125+ message StateExpiryStorageTotal {
126+ // Total number of storage slots accessed in last 365 days
127+ uint64 total_storage_slots = 1 ;
128+ // Number of expired storage slots (not accessed in last 365 days)
129+ uint64 expired_storage_slots = 2 ;
130+ }
131+
84132
85133// Network represents an Ethereum network for public API consumption.
86134// This provides essential network metadata needed by clients.
@@ -98,6 +146,86 @@ message NetworkFilterMetadata {
98146 int32 filtered_count = 3 ; // Networks after filtering
99147}
100148
149+ // StateExpiryAccessHistoryResponse is the v1 API response for state expiry access history data.
150+ // This endpoint provides aggregated data about Ethereum address access patterns chunked by 10000 blocks.
151+ message StateExpiryAccessHistoryResponse {
152+ repeated StateExpiryAccessHistory items = 1 ;
153+ PaginationMetadata pagination = 2 ;
154+ FilterMetadata filters = 3 ;
155+ }
156+
157+ // StateExpiryAccessHistory represents address access statistics for a 10000-block chunk.
158+ // This data is useful for analyzing state expiry patterns and understanding address activity over time.
159+ message StateExpiryAccessHistory {
160+ // The starting block number of this 10000-block chunk
161+ uint32 chunk_start_block_number = 1 ;
162+
163+ // Number of unique accounts that were accessed for the first time in this chunk
164+ // These are addresses that had never been accessed before this chunk
165+ uint32 first_accessed_accounts = 2 ;
166+
167+ // Number of unique accounts whose most recent access was in this chunk
168+ // These addresses haven't been accessed in any later chunks
169+ uint32 last_accessed_accounts = 3 ;
170+ }
171+
172+ // StateExpiryStorageHistoryResponse is the v1 API response for state expiry storage slot history data.
173+ // This endpoint provides aggregated data about Ethereum storage slot access patterns chunked by 10000 blocks.
174+ message StateExpiryStorageHistoryResponse {
175+ repeated StateExpiryStorageHistory items = 1 ;
176+ PaginationMetadata pagination = 2 ;
177+ FilterMetadata filters = 3 ;
178+ }
179+
180+ // StateExpiryStorageHistory represents storage slot statistics for a 10000-block chunk.
181+ // This data is useful for analyzing state expiry patterns and understanding storage slot activity over time.
182+ message StateExpiryStorageHistory {
183+ // The starting block number of this 10000-block chunk
184+ uint32 chunk_start_block_number = 1 ;
185+
186+ // Number of storage slots that were accessed for the first time in this chunk
187+ // These are slots that had never been accessed before this chunk
188+ uint32 first_accessed_slots = 2 ;
189+
190+ // Number of storage slots whose most recent access was in this chunk
191+ // These slots haven't been accessed in any later chunks
192+ uint32 last_accessed_slots = 3 ;
193+ }
194+
195+ // StateExpiryStorageExpiredTopResponse is the v1 API response for top contracts by expired storage slots.
196+ // This endpoint provides the top 100 contracts ranked by the number of expired storage slots (not accessed in last 365 days).
197+ message StateExpiryStorageExpiredTopResponse {
198+ repeated StateExpiryStorageExpiredTop items = 1 ;
199+ FilterMetadata filters = 2 ;
200+ }
201+
202+ // StateExpiryStorageExpiredTop represents a contract ranked by expired storage slots for public API consumption.
203+ message StateExpiryStorageExpiredTop {
204+ // Rank by expired storage slots (1=highest)
205+ uint32 rank = 1 ;
206+ // The contract address
207+ string contract_address = 2 ;
208+ // Number of expired storage slots for this contract (not accessed in last 365 days)
209+ uint64 expired_slots = 3 ;
210+ }
211+
212+ // StateExpiryStorageTopResponse is the v1 API response for top contracts by total storage slots.
213+ // This endpoint provides the top 100 contracts ranked by the total number of storage slots.
214+ message StateExpiryStorageTopResponse {
215+ repeated StateExpiryStorageTop items = 1 ;
216+ FilterMetadata filters = 2 ;
217+ }
218+
219+ // StateExpiryStorageTop represents a contract ranked by total storage slots for public API consumption.
220+ message StateExpiryStorageTop {
221+ // Rank by total storage slots (1=highest)
222+ uint32 rank = 1 ;
223+ // The contract address
224+ string contract_address = 2 ;
225+ // Total number of storage slots for this contract
226+ uint64 total_storage_slots = 3 ;
227+ }
228+
101229// ListBeaconSlotMevRelayResponse is the v1 API response for MEV relay bid counts by slot.
102230message ListBeaconSlotMevRelayResponse {
103231 repeated MevRelayBidCount relays = 1 ;
0 commit comments