Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
curl -X 'POST' \
'https://auth.staging.alluvial.finance/oauth/token' \
-H 'content-type: application/json' \
-d '{
"audience": "https://api.staging.alluvial.finance",
"grant_type": "client_credentials",
"client_id": "<YOUR_CLIENT_ID>",
"client_secret": "<YOUR_CLIENT_SECRET>"
}'{
"access_token": "eyJz93a...k4laUZw",
"scope": "read:eth-oracle...read:eth-operators",
"expires_in": 86400,
"token_type": "Bearer"
}curl -X 'POST' \
'https://auth.alluvial.finance/oauth/token' \
-H 'content-type: application/json' \
-d '{
"audience": "https://api.alluvial.finance",
"grant_type": "client_credentials",
"client_id": "<YOUR_CLIENT_ID>",
"client_secret": "<YOUR_CLIENT_SECRET>"
}'{
"access_token": "eyJz93a...k4laUWw",
"scope": "read:eth-oracle...read:eth-operators",
"expires_in": 86400,
"token_type": "Bearer"
}This guide is intended for Platforms to learn about how they can integrate the Liquid Collective protocol with the support of Alluvial's APIs.






curl -X 'POST' \
'https://api.staging.alluvial.finance/v0/platform/accounts' \
-H 'accept: application/json' \
-H 'Authorization: Bearer 'eyJhbGci…CVm5g'
-d '{
"key": "foobar-123"
}'{
"id": "4b1d05ed-b498-4847-99a0-c415c6b19f6b",
"key": "foobar-123",
"org_id": "org_WaYHN06ay6WoT...",
"status": "ACTIVE",
"created_at": "2024-02-09T22:40:28.954304245Z",
"wallets": []
}curl -X 'POST' \
'https://api.staging.alluvial.finance/v0/platform/accounts/4b1d05ed-b498-4847-99a0-c415c6b19f6b/wallets/' \
-H 'accept: application/json' \
-H 'Authorization: Bearer 'eyJhbGci…CVm5g'
-D '{
"address": "0x469b998812B9675b7B2Fb37519f574fEA5ee92E8",
"allowlisted": "false",
"type": "ETH"
}'{
"id": "421a39a1-e9c3-4a33-81bc-98eff7bfd502",
"type": "ETH",
"address": "0x469b998812b9675b7b2fb37519f574fea5ee92e8",
"status": "NOT_ALLOWLISTED",
"on_platform": true,
"created_at": "2024-02-09T22:43:02.249045841Z"
}curl 'https://auth.alluvial.finance/oauth/token' \
--header 'content-type: application/json' \
--data '{
"audience": "https://api.staging.alluvial.finance",
"grant_type": "client_credentials",
"client_id": "<YOUR_CLIENT_ID>",
"client_secret": "<YOUR_CLIENT_SECRET>"
}'{
"access_token": "eyJhbGci…CVm5g",
"scope": "read:eth-oracle read:eth-contracts read:eth-operators",
"expires_in": 86400,
"token_type": "Bearer"
}curl 'https://api.staging.alluvial.finance/v0/wallets/0x2B7ff5d4C14A9Da8d5C9354c7A52aB40DdC1C01e' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJh...b'
curl -X 'POST' \
'https://api.staging.alluvial.finance/v0/platform/accounts/da36a6fa-070d-4cd1-b99a-f2da4f4ccb20/wallets' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGci…CVm5g' \
-H 'Content-Type: application/json' \
-d '{
"address": "0x5210d328bC5651F92F4557EfDE08dd97A36A935c",
"type": "ETH"
}'{
"id": "a41c520e-fadd-4c0c-a1ce-d574ee731cee",
"type": "ETH",
"address": "0x5210d328bC5651F92F4557EfDE08dd97A36A935c",
"account_id": "993327a3-1d48-4eff-a9ee-7ec769ec1f64",
"status": "ALLOWLISTED",
"allowlisted": true,
"on_platform": true,
"created_at": "2024-03-25T18:38:31.427654433Z"
}curl -X 'POST' \
'https://api.staging.alluvial.finance/v0/platform/accounts/da36a6fa-070d-4cd1-b99a-f2da4f4ccb20/wallets' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGci…CVm5g' \
-H 'Content-Type: application/json' \
-d '{
"address": "0x5210d328bC5651F92F4557EfDE08dd97A36A935c",
"type": "ETH",
"allowlisted": "false"
}'{
"address": "0x5210d328bC5651F92F4557EfDE08dd97A36A935c",
"created_at": "string",
"id": "string",
"status": "NOT_ALLOWLISTED",
"type": "ETH",
"on_platform": "true"
}{
"address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"allowlisted": true,
"permissions": {
"staking": true,
"redemption": true
}
}{
"address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"permissions": {
"staking": true,
"redemption": true
}
}{
"address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"allowlisted": true,
"permissions": {
"staking": true,
"redemption": true
},
"created_at": "2025-01-15T10:30:00Z"
}Get global information about protocol token supplies
OK
Count of total validators minus stopped validators on the consensus layer
58Total consensus ETH balance of all validators on the consensus layer (as reported by the Oracle) in Wei
128000000000000000000Height of the returned data
15034284Total collected rewards
3200000000000000000000ETH balance on the contract in Wei
5000000000000000000Number of deposits
2Total ETH balance of exited validators on the consensus layer (as reported by the Oracle) in Wei
128000000000000000000Total ETH balance of exiting validators on the consensus layer (as reported by the Oracle) in Wei
128000000000000000000Count of funded validators
102Previous typo made, keeping for backwards compatibility
102Count of funded validators and pending activation on the consensus layer (as reported by the Oracle)
2Total ETH balance of pending validators in GWei
64000000000000000000trueTotal ETH balance of skimmed withdrawals (as reported by the Oracle) in Wei
128000000000000000000falseCount of stopped LC validators on the consensus layer (as reported by the Oracle)
42Total ETH balance managed by the River protocol in GWei
3200000000000000000000Total ETH deposited
3200000000000000000000Total LsETH supply
3200000000000000000000Count of all LC validators found on the consensus layer (as reported by the Oracle)
100Internal error
Get global information about protocol token supplies at a given block number
Block height to query
OK
Count of total validators minus stopped validators on the consensus layer
58Total consensus ETH balance of all validators on the consensus layer (as reported by the Oracle) in Wei
128000000000000000000Height of the returned data
15034284Total collected rewards
3200000000000000000000ETH balance on the contract in Wei
5000000000000000000Number of deposits
2Total ETH balance of exited validators on the consensus layer (as reported by the Oracle) in Wei
128000000000000000000Total ETH balance of exiting validators on the consensus layer (as reported by the Oracle) in Wei
128000000000000000000Count of funded validators
102Previous typo made, keeping for backwards compatibility
102Count of funded validators and pending activation on the consensus layer (as reported by the Oracle)
2Total ETH balance of pending validators in GWei
64000000000000000000trueTotal ETH balance of skimmed withdrawals (as reported by the Oracle) in Wei
128000000000000000000falseCount of stopped LC validators on the consensus layer (as reported by the Oracle)
42Total ETH balance managed by the River protocol in GWei
3200000000000000000000Total ETH deposited
3200000000000000000000Total LsETH supply
3200000000000000000000Count of all LC validators found on the consensus layer (as reported by the Oracle)
100Bad Request
Unauthorized
Forbidden
Internal error
List LsETH balance of several addresses It is possible to specify for which block and which addresses to get the balances.
Comma separated list of addresses (if empty returns all addresses)
Block number at which to get balance for (latest by default)
Limit of elements to return (100 by default)
OK
Owner address
0x123456789985ca04a69c35978c3a3e778d6ef172LsETH balance
4200000000000000000000Block height of the balance
15034284Bad request
Unauthorized
Forbidden
Internal error
Get LsETH balance of a given address It is possible to specify for which block to get the balance at.
Account address to query the balance for
Block number at which to get balance for (latest by default)
Get the LsETH balance history for a given address It returns a balance object for every block a balance change occurred It is possible to filter the history for a range of blocks
Address of the balance to query balance for
List all the smart contracts addresses used
OK
Internal error
List latest available high-level protocol
Display LsETH values in units of wei or ether. If not present, LsETH is set by default.
OK
3.97124831.0123452023-01-02T03:04:05Z0.18510.153.375561055f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef0.111.234122007944.381120520123.456789763232Bad Request
Internal error
List high-level protocol info for a given date
Date filter by year, month or day (eg. 2023, 2023-12, 2023-12-31). Note: times are UTC
Display LsETH values in units of wei or ether. If not present, LsETH is set by default.
Get reward details for a wallet address with new V4 parameter structure
Wallet address (0x-prefixed hex)
Start date (YYYY-MM-DD format)
End date (YYYY-MM-DD format, defaults to current time)
Display ETH fields (default: true)
Export to CSV
Provides status information of the wallet (ex. ALLOWLISTED, SUBMITTED, etc...)
Wallet address
OK
trueALLOWLISTED| PAUSED | DENIEDBad request
Not found
Internal error
List wallet transactions for a given time period and wallet address
Wallet address
Start date (default: 1 year ago)
End date (default: current time)
Output as CSV
Page size (default: 100)
Next cursor
List redeem requests filtered by owner addresses and/or specific redeem IDs.
At least one of owner or ids must be provided. When both are set the
filters are combined (AND): only redeems whose ID is in the list AND whose
owner is in the list are returned. IDs not found are silently omitted.
Owner address(es), comma-separated. Required if ids is not set.
Comma-separated list of redeem request IDs (max 500). Required if owner is not set.
Include claimable_amount_eth in response (default: true)
Returns validator exit queue info, including time estimates.
OK
Internal error
List latest available high-level protocol
Display LsETH values in units of wei or ether. If not present, LsETH is set by default.
OK
3.97124831.0123452023-01-02T03:04:05Z0.18510.153.375561055f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef0.111.234122007944.381120520123.456789763232Bad Request
Internal error
List high-level protocol info for a given date
Date filter by year, month or day (eg. 2023, 2023-12, 2023-12-31). Note: times are UTC
Display LsETH values in units of wei or ether. If not present, LsETH is set by default.
List wallet transactions for a given time period and wallet address
Wallet address
Start date (default: 1 year ago)
End date (default: current time)
Output as CSV
Page size (default: 100)
Next cursor
List all platform fees for a given date
Date filter by year, month or day (eg. 2023, 2023-12, 2023-12-31). Note: times are UTC
Number of oracle reports per page (1-1000, default 100)
Cursor returned from previous page
List all originator fees for a given date
Date filter by year, month or day (eg. 2023, 2023-12, 2023-12-31). Note: times are UTC
Number of oracle reports per page (1-1000, default 100)
Cursor returned from previous page
List platform operator fees for a given date
Date filter by year, month or day (eg. 2023, 2023-12, 2023-12-31). Note: times are UTC
Number of oracle reports per page (1-1000, default 100)
Cursor returned from previous page
List rewards for a time period
Number of lots per page (default: 100, max: 1000)
Cursor for next page of lots
List rewards by account for a specific date
["bb3e6114-af15-43a6-9b36-a5ec011d9d95"]2024-04-11falseOK
bb3e6114-af15-43a6-9b36-a5ec011d9d950.000039305549364450.38274864225272150.42354864225272150.000039305549364452024-04-112024-01-31T23:59:59Z2572002024-01-01T00:00:00Z250000ab3e5114-af15-45b8-9c43-a5ec011d9d950x30e2a735D692fC28CD31C28F1A8259b4790f9A230.005346333870.1090.0000062641748371040.0000004392973164280.491748642252721460.000039305549364450.0000062641748371040.0000062641748371040.0000053640514426790.0000069362734172580.0000001618463797392024-04-110.3827486422527214611.03725322566552768bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164org_aDL0aCAXyWYgHQ4W2024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.10.0000062641748371040.0000004255505366740.4820886023517404210.0000380755743340170.0000062641748371040.0000062641748371040.000005196196026760.0000062641748371040.0000067192190001210.0000001567817766691.0371537463463845Unauthorized
Forbidden
Internal error
List rewards by wallet for a specific date
["0x30e2a735D692fC28CD31C28F1A8259b4790f9A23"]2024-04-11falseOK
ab3e5114-af15-45b8-9c43-a5ec011d9d950x30e2a735D692fC28CD31C28F1A8259b4790f9A230.005346333870.1090.0000062641748371040.0000004392973164280.491748642252721460.000039305549364450.0000062641748371040.0000062641748371040.0000053640514426790.0000069362734172580.0000001618463797392024-04-110.3827486422527214611.03725322566552768bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164org_aDL0aCAXyWYgHQ4W2024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.10.0000062641748371040.0000004255505366740.4820886023517404210.0000380755743340170.0000062641748371040.0000062641748371040.000005196196026760.0000062641748371040.0000067192190001210.0000001567817766691.0371537463463845Unauthorized
Forbidden
Internal error
Get reward summary for an account with new V4 parameter structure
Account ID or key
Start date (YYYY-MM-DD format, defaults to 1 month ago)
End date (YYYY-MM-DD format, defaults to current time)
Include daily breakdown details (default: false)
Number of daily reports per page (default: 100, max: 1000)
Cursor for next page of daily reports
Get reward summary for a wallet address with new V4 parameter structure
Wallet ID or address (0x-prefixed hex)
Start date (YYYY-MM-DD format, defaults to 1 month ago)
End date (YYYY-MM-DD format, defaults to current time)
Include daily breakdown details (default: false)
Number of daily reports per page (default: 100, max: 1000)
Cursor for next page of daily reports
List redeem requests filtered by owner addresses and/or specific redeem IDs.
At least one of owner or ids must be provided. When both are set the
filters are combined (AND): only redeems whose ID is in the list AND whose
owner is in the list are returned. IDs not found are silently omitted.
Owner address(es), comma-separated. Required if ids is not set.
Comma-separated list of redeem request IDs (max 500). Required if owner is not set.
Include claimable_amount_eth in response (default: true)
Get a redeem request by the request id. Optionally includes claimable ETH amount.
The redeem request id to query
Include claimable_amount_eth in response (default: true)
Get a redeem request time projection for becoming redeemable
The redeem request id to query
OK
Bad Request
Unauthorized
Forbidden
Not Found
Internal Error
List the withdrawal event height and redeem request height
OK
The cumulative sum of the redeem request heights
The cumulative sum of the withdrawal event heights
Internal Error
Get the redeem manager time projection for being fulfilled
OK
Unauthorized
Forbidden
Internal Error
Returns validator exit queue info, including time estimates.
OK
Internal error
Create a platform account with an ACTIVE status.
WARNING Integrators should make sure that the depositor has gone through an effective KYC/KYB process and is deemed within appetite to stake their ETH through the Liquid Collective.
When creating the depositor an integrator should supply a non-empty, unique identifying key (it can typically be an internal user identifier).
As long as a depositor remains in ACTIVE status, it is possible to attach wallets to it that will automatically be submitted to the protocol on-chain allowlist.
Unique identifier of the account (supplied by the client)
depositor_exampleList platform accounts
OK
Time the account was created
2024-01-24T13:07:50.335845ZIdentifier of the account (generated server side)
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Unique key identifying the account (supplied by the client when creating the account)
depositor_exampleOrganization identifier the account belongs to
org_28CLGCvsdG7TlOHfStatus of the account (managed by the integrator)
ACTIVE | PAUSED | REMOVED | DENIEDThe account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHUnauthorized
Forbidden
Internal error
Get platform account
Account ID or Key of the platform account
OK
Time the account was created
2024-01-24T13:07:50.335845ZIdentifier of the account (generated server side)
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Unique key identifying the account (supplied by the client when creating the account)
depositor_exampleOrganization identifier the account belongs to
org_28CLGCvsdG7TlOHfStatus of the account (managed by the integrator)
ACTIVE | PAUSED | REMOVED | DENIEDThe account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHUnauthorized
Forbidden
Not found
Internal error
Set account's status to REMOVED.
Integrators can call this method for their inactive users to be removed from the liquid staking protocol(s) allowlist.
Once account's status has been set to REMOVED:
Removing a wallet from the protocol allowlist results in disabling the ability to stake or redeem ETH.
Note that removing a wallet from the allowlist is an asynchronous process that can take some time.
Account ID or Key of the account to remove
Set account's status to PAUSED.
Once an account's status has been set to PAUSED:
allowlisted wallet they will be unable to stake nor redeem.Account ID or Key of the account to remove
OK
Time the account was created
2024-01-24T13:07:50.335845ZIdentifier of the account (generated server side)
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Unique key identifying the account (supplied by the client when creating the account)
depositor_exampleOrganization identifier the account belongs to
org_28CLGCvsdG7TlOHfStatus of the account (managed by the integrator)
PAUSEDThe account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Internal error
Set a PAUSED account's status to ACTIVE.
This will enable the account to stake and redeem again (if the account has allowlisted wallets), and enable you to add more wallets to the account.
This is only possible for PAUSED accounts - DENIED or REMOVED accounts cannot be reactivated.
Account ID or Key of the account to reactivate
OK
Time the account was created
2024-01-24T13:07:50.335845ZIdentifier of the account (generated server side)
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Unique key identifying the account (supplied by the client when creating the account)
depositor_exampleOrganization identifier the account belongs to
org_28CLGCvsdG7TlOHfStatus of the account (managed by the integrator)
ACTIVEThe account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Internal error
Get platform wallet
Wallet ID or Address of the wallet (address in hex format prefixed with 0x)
OK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Internal error
List platform wallets
Enable to only return allowlisted wallets
Enable to only return wallets on_platform
Offset for pagination
Limit for pagination
OK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Internal error
Create a wallet attached to an account
If the account is in ACTIVE status and if the wallet's has the allowlisted property set to true Alluvial will add the wallet address to the protocol on-chain allowlist.
Adding a wallet to the protocol allowlist results in enabling the wallet to proceed to deposit and redeem ETH on the protocol.
Note that submitting the wallet to the on-chain allowlist is an asynchronous process that can take some time. The onboarding allows to check the submission status by getting the wallet.
Important Notes:
allowlisted wallets if your organization is configured to do so.allowlist wallets, it method will do so by default.List all wallets for a platform account
Account ID or Key of the account
Enable to only return allowlisted wallets
Enable to only return wallets on_platform
Offset for pagination
Limit for pagination
Remove wallet from a given wallet from either the on_platform, the allowlisted, or both.
Account ID or Key of the account to remove wallet from
Wallet ID or Address of the wallet to be removed
Set wallet's status to PAUSED.
Once a wallet's status has been set to PAUSED:
allowlisted, it will be unable to stake nor redeem.Depositor ID or Key of the depositor to pause wallet from
Wallet ID or Address of the wallet to be paused
Set a PAUSED wallet's status to ACTIVE.
This will enable the wallet to stake and redeem again.
This action can only be performed under these conditions:
PAUSED status - DENIED or REMOVED wallets cannot be reactivated.ACTIVE status.Depositor ID or Key of the depositor to reactivate wallet from
Wallet ID or Address of the wallet to be reactivated
slashing_fees_*OK
The possible amount available to claim in ETH (only present when display_eth is true)
The possible amount available to claim in LsETH
The amount already claimed in ETH
The amount already claimed in LsETH
The height is the cumulative sum of all the sizes of preceding redeem requests
The ID of the redeem request
1048576The maximum amount of ETH redeemable by this request
The owner of the redeem request
Block time
Timestamp
The amount of the redeem request in LsETH
The withdrawal event ID needed to claim the redeem (or -1 when no withdrawals available)
42Bad Request
Internal Error
OK
The possible amount available to claim in ETH (only present when display_eth is true)
The possible amount available to claim in LsETH
The amount already claimed in ETH
The amount already claimed in LsETH
The height is the cumulative sum of all the sizes of preceding redeem requests
The ID of the redeem request
1048576The maximum amount of ETH redeemable by this request
The owner of the redeem request
Block time
Timestamp
The amount of the redeem request in LsETH
The withdrawal event ID needed to claim the redeem (or -1 when no withdrawals available)
42Bad Request
Not Found
Internal Error
curl --request POST 'https://api.staging.alluvial.finance/eth/v1/rewards' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer e...g' \
--data '[
{
"balance": "1",
"from": "2024-04-01",
"to": "2024-04-10"
},
{
"balance": "3",
"from": "2024-04-11",
"to": "2024-04-15"
}
]'{
"balance": "4",
"accrued_rewards": "0.0041516089956458",
"lots": [
{
"from": "2024-04-01",
"to": "2024-04-10",
"start_conversion_rate": "1.0014257204933798",
"end_conversion_rate": "1.0023467329617235",
"balance": "1",
"accrued_rewards": "0.0009210124683437"
},
{
"from": "2024-04-11",
"to": "2024-04-15",
"start_conversion_rate": "1.0026157619809285",
"end_conversion_rate": "1.0036926274900292",
"balance": "3",
"accrued_rewards": "0.0032305965273021"
}
]
}curl --request POST 'https://api.staging.alluvial.finance/eth/v1/rewards/accounts' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Impersonate-Org: org_uLD0aCAXyWYg4WQH' \
--header 'Authorization: Bearer ey...Qg' \
--data '{
"accounts": [
"8f9d6eff-d630-4389-810f-89c4b07b8fc5"
],
"date": "2024-05-15"
}'[
{
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"totals": {
"balance_lseth": "0.0000198315414745",
"rewards_eth": "0.000000000092766089"
},
"date": "2024-05-15",
"wallets": [
{
"oracle_report": "1437a7330f02400a5662ed70f5c23b251d76fdb1ede48240d9f1e7bcd70540470000014b",
"address": "0x7fc2B172EcC8E4609088f341Aa0Fb3841De8A77A",
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"org_id": "org_WaYHN06ay6WoTjcz",
"date": "2024-05-15",
"balance_lseth": "0.00000991577073725",
"rewards_eth": "0.000000000092766089",
"total_rewards_eth": "0.000000000092766089",
"conversion_rate": "1.0085131998588114",
"previous_conversion_rate": "1.0085038444500037",
"mints_lseth": "0",
"total_mints_lseth": "0.00000991577073725",
"burns_lseth": "0",
"total_burns_lseth": "0",
"fees_eth": "0.000000000010307343",
"total_fees_eth": "0.000000000010307343",
"period_lc_fees_lseth": "0.000000000000979198",
"total_lc_fees_lseth": "0.000000000000979198",
"period_tech_provider_fees_lseth": "0.000000000000360757",
"total_tech_provider_fees_lseth": "0.000000000000360757",
"platform_fees_eth": "0.000000000007112067",
"total_platform_fees_eth": "0.000000000007112067",
"operator_fees_eth": "0.000000000001546101",
"total_operator_fees_eth": "0.000000000001546101"
}
]
}
]curl --request POST 'https://api.staging.alluvial.finance/eth/v1/rewards/wallets' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Impersonate-Org: org_uLD0aCAXyWYg4WQH' \
--header 'Authorization: Bearer ey...Qg' \
--data '{
"addresses": [
"0x7fc2B172EcC8E4609088f341Aa0Fb3841De8A77A"
],
"date": "2024-05-15"
}'[
{
"oracle_report": "1437a7330f02400a5662ed70f5c23b251d76fdb1ede48240d9f1e7bcd70540470000014b",
"address": "0x7fc2B172EcC8E4609088f341Aa0Fb3841De8A77A",
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"org_id": "org_WaYHN06ay6WoTjcz",
"date": "2024-05-15",
"balance_lseth": "0.00000991577073725",
"rewards_eth": "0.000000000092766089",
"total_rewards_eth": "0.000000000092766089",
"conversion_rate": "1.0085131998588114",
"previous_conversion_rate": "1.0085038444500037",
"mints_lseth": "0",
"total_mints_lseth": "0.00000991577073725",
"burns_lseth": "0",
"total_burns_lseth": "0",
"fees_eth": "0.000000000010307343",
"total_fees_eth": "0.000000000010307343",
"period_lc_fees_lseth": "0.000000000000979198",
"total_lc_fees_lseth": "0.000000000000979198",
"period_tech_provider_fees_lseth": "0.000000000000360757",
"total_tech_provider_fees_lseth": "0.000000000000360757",
"platform_fees_eth": "0.000000000007112067",
"total_platform_fees_eth": "0.000000000007112067",
"operator_fees_eth": "0.000000000001546101",
"total_operator_fees_eth": "0.000000000001546101"
}
]curl 'https://api.alluvial.finance/eth/v0/protocol/2024-05-01' \
--header 'Accept: application/json' \
--header 'Accept: application/json'[
{
"oracle_report": "2e39c7e7e0b78c043ac98e190175fa7f057a75197647d4d844864ac06c98aa3400000225",
"date": "2024-05-01T12:14:47Z",
"total_protocol_mints_lseth": "89180.704128270784037675",
"total_protocol_burns_lseth": "6676.332903830493099868",
"total_protocol_active_keys_count": 2703,
"rewards_eth": "6.66289490787142415",
"gross_fee_rate": "0.1",
"gross_fee_lseth": "0.636483355669561459",
"conversion_rate": "1.0468294022963504",
"total_lseth_supply": "82674.954629966742503924",
"a_srr_7d": "2.85"
}
]curl --location --request POST 'https://api.staging.alluvial.finance/v0/platform/accounts/8f9d6eff-d630-4389-810f-89c4b07b8fc5/discount_rate' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJQ' \
--data '{
"target_fee_rate": 0.08
}'{
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"target_fee_rate": "0.08",
"created_at": "2024-06-24T21:27:07.387160077Z"
}curl --location --request POST 'https://api.staging.alluvial.finance/eth/v0/rewards/accounts' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ...mQ' \
--data '{
"accounts": [
"8f9d6eff-d630-4389-810f-89c4b07b8fc5"
],
"date": "2024-06-22",
"unit": "lseth"
}'[
{
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"totals": {
"balance_lseth": "0.947997263286356641",
"rewards_eth": "0.001671038079957103"
},
"date": "2024-06-22",
"wallets": [
{
"oracle_report": "43306f4695a1d7ed4118c68fecd150e1f071b338815007960e61900d8d9c123e00000046",
"address": "0x4D1c3ec0B381F012A90f096cD4E8bc7746e4f2eB",
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"org_id": "org_WaYHN06ay6WoTjcz",
"date": "2024-06-22",
"balance_lseth": "0.00001",
"rewards_eth": "0.000000000087955639",
"total_rewards_eth": "0.000000020987954327",
"conversion_rate": "1.0106749980064223",
"previous_conversion_rate": "1.0106662024425232",
"mints_lseth": "0",
"total_mints_lseth": "0",
"burns_lseth": "0",
"total_burns_lseth": "0",
"fees_eth": "0.000000000009772849",
"total_fees_eth": "0.000000002331994927",
"dao_fees_eth": "0.000000000000928421",
"total_dao_fees_eth": "0.000000000221539524",
"provider_fees_eth": "0.00000000000034205",
"total_provider_fees_eth": "0.000000000081619819",
"slashing_fees_eth": "0.000000000000293185",
"total_slashing_fees_eth": "0.00000000006995985",
"platform_fees_eth": "0.000000000006743266",
"total_platform_fees_eth": "0.000000001609076496",
"platform_fees_at_discount_rate_eth": "0",
"total_platform_fees_at_discount_rate_eth": "0",
"operator_fees_eth": "0.000000000001465927",
"total_operator_fees_eth": "0.00000000034979924",
"gross_protocol_fee_rate": "0",
"discount_rate": "0",
"gross_fees_eth": "0.000000000009772849",
"total_gross_fees_eth": "0.000000002331994927",
"gross_rewards_eth": "0.000000000097728488",
"total_gross_rewards_eth": "0.000000000189971905",
"rebate_eth": "0",
"total_rebate_eth": "0",
"rebate_lseth": "0",
"total_rebate_lseth": "0"
},
{
"oracle_report": "43306f4695a1d7ed4118c68fecd150e1f071b338815007960e61900d8d9c123e00000046",
"address": "0x7fc2B172EcC8E4609088f341Aa0Fb3841De8A77A",
"account_id": "8f9d6eff-d630-4389-810f-89c4b07b8fc5",
"org_id": "org_WaYHN06ay6WoTjcz",
"date": "2024-06-22",
"balance_lseth": "0.947987263286356641",
"rewards_eth": "0.000008338082549768",
"total_rewards_eth": "0.001671017092002776",
"conversion_rate": "1.0106749980064223",
"previous_conversion_rate": "1.0106662024425232",
"mints_lseth": "0",
"total_mints_lseth": "5.947997863289656641",
"burns_lseth": "0",
"total_burns_lseth": "0.0000006000033",
"fees_eth": "0.000000926453616641",
"total_fees_eth": "0.000185668565778085",
"dao_fees_eth": "0.000000088013093581",
"total_dao_fees_eth": "0.000017638513748923",
"provider_fees_eth": "0.000000032425876582",
"total_provider_fees_eth": "0.000006498399802232",
"slashing_fees_eth": "0.000000027793608499",
"total_slashing_fees_eth": "0.000005570056973343",
"platform_fees_eth": "0.000000639252995482",
"total_platform_fees_eth": "0.000128111310386881",
"platform_fees_at_discount_rate_eth": "0",
"total_platform_fees_at_discount_rate_eth": "0",
"operator_fees_eth": "0.000000138968042496",
"total_operator_fees_eth": "0.000027850284866709",
"gross_protocol_fee_rate": "0",
"discount_rate": "0",
"gross_fees_eth": "0.000000926453616641",
"total_gross_fees_eth": "0.000185668565778085",
"gross_rewards_eth": "0.000009264536166409",
"total_gross_rewards_eth": "0.000018009094566287",
"rebate_eth": "0",
"total_rebate_eth": "0",
"rebate_lseth": "0",
"total_rebate_lseth": "0"
}
]
}
]GET /eth/v1/redeems HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"claimable_amount_eth": "text",
"claimable_amount_lseth": "text",
"claimed_amount_eth": "text",
"claimed_amount_lseth": "text",
"height": "text",
"id": 1048576,
"max_redeemable_amount_eth": "text",
"owner": "text",
"requested_at": 1,
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "PENDING_SATISFACTION",
"timestamp": "text",
"total_amount_lseth": "text",
"withdrawal_event_id": 42
}
]GET /eth/v1/redeems/{idx} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"claimable_amount_eth": "text",
"claimable_amount_lseth": "text",
"claimed_amount_eth": "text",
"claimed_amount_lseth": "text",
"height": "text",
"id": 1048576,
"max_redeemable_amount_eth": "text",
"owner": "text",
"requested_at": 1,
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "PENDING_SATISFACTION",
"timestamp": "text",
"total_amount_lseth": "text",
"withdrawal_event_id": 42
}GET /eth/v1/redeems/{idx}/projection HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"projected_redeemable_at": "text"
}{
"total_amount_redeem_queue_lseth": "text",
"total_amount_withdrawal_stack_lseth": "text"
}{
"projected_fulfilled_at": "text"
}{
"exit_time_hours": "text",
"mandatory_exit_delay_hours": "text",
"sweep_time_hours": "text"
}GET /eth/v1/validators/queue HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /eth/v1/redeems_info HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /eth/v1/redeems_info/projection HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /eth/v1/status HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"active_validator_count": 58,
"active_validators_eth_balance": "128000000000000000000",
"block_number": 15034284,
"collected_rewards": "3200000000000000000000",
"contract_eth_balance": "5000000000000000000",
"conversion_rate": 1,
"deposit_count": 2,
"exited_validators_eth_balance": "128000000000000000000",
"exiting_validators_eth_balance": "128000000000000000000",
"funded_validator_count": 102,
"funded_valitor_count": 102,
"pending_validator_count": 2,
"pending_validators_eth_balance": "64000000000000000000",
"rebalance_deposit_to_redeem_mode": true,
"skimmed_validators_eth_balance": "128000000000000000000",
"slashing_containment_mode": false,
"stopped_validator_count": 42,
"total_eth_balance": "3200000000000000000000",
"total_eth_deposited": "3200000000000000000000",
"total_supply": "3200000000000000000000",
"total_validator_count": 100
}GET /eth/v1/status/{block_number} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"active_validator_count": 58,
"active_validators_eth_balance": "128000000000000000000",
"block_number": 15034284,
"collected_rewards": "3200000000000000000000",
"contract_eth_balance": "5000000000000000000",
"conversion_rate": 1,
"deposit_count": 2,
"exited_validators_eth_balance": "128000000000000000000",
"exiting_validators_eth_balance": "128000000000000000000",
"funded_validator_count": 102,
"funded_valitor_count": 102,
"pending_validator_count": 2,
"pending_validators_eth_balance": "64000000000000000000",
"rebalance_deposit_to_redeem_mode": true,
"skimmed_validators_eth_balance": "128000000000000000000",
"slashing_containment_mode": false,
"stopped_validator_count": 42,
"total_eth_balance": "3200000000000000000000",
"total_eth_deposited": "3200000000000000000000",
"total_supply": "3200000000000000000000",
"total_validator_count": 100
}GET /eth/v1/balances HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"address": "0x123456789985ca04a69c35978c3a3e778d6ef172",
"balance": "4200000000000000000000",
"block_number": 15034284
}
]OK
Owner address
0x123456789985ca04a69c35978c3a3e778d6ef172LsETH balance
4200000000000000000000Block height of the balance
15034284Bad request
Unauthorized
Forbidden
Internal error
GET /eth/v1/balances/{address} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"address": "0x123456789985ca04a69c35978c3a3e778d6ef172",
"balance": "4200000000000000000000",
"block_number": 15034284
}Starting block height to query (0 by default)
Ending block height to query (latest by default)
Limit of elements to return (100 by default)
OK
Owner address
0x123456789985ca04a69c35978c3a3e778d6ef172LsETH balance
4200000000000000000000Block height of the balance
15034284Bad request
Unauthorized
Forbidden
Internal error
GET /eth/v1/balances/{address}/history HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"allowlister": "text",
"deployment_block": 1,
"el_fee_recipient": "text",
"operators_registry": "text",
"oracle": "text",
"redeem_manager": "text",
"river": "text",
"withdraw": "text"
}GET /eth/v1/contracts HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /eth/v1/protocol HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"a_srr_7d": "3.9712483",
"conversion_rate": "1.012345",
"date": "2023-01-02T03:04:05Z",
"gross_fee_lseth": "0.1851",
"gross_fee_rate": "0.15",
"net_srr_7d": "3.375561055",
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"protocol_service_fee_rate": "0.11",
"rewards_eth": "1.234",
"total_eth_staked": "122007944.381",
"total_lseth_supply": "120520123.456789",
"total_protocol_active_keys_count": 76,
"total_protocol_burns_lseth": "32",
"total_protocol_mints_lseth": "32"
}OK
3.97124831.0123452023-01-02T03:04:05Z0.18510.153.375561055f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef0.111.234122007944.381120520123.456789763232Bad Request
Internal error
GET /eth/v1/protocol/{date} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"a_srr_7d": "3.9712483",
"conversion_rate": "1.012345",
"date": "2023-01-02T03:04:05Z",
"gross_fee_lseth": "0.1851",
"gross_fee_rate": "0.15",
"net_srr_7d": "3.375561055",
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"protocol_service_fee_rate": "0.11",
"rewards_eth": "1.234",
"total_eth_staked": "122007944.381",
"total_lseth_supply": "120520123.456789",
"total_protocol_active_keys_count": 76,
"total_protocol_burns_lseth": "32",
"total_protocol_mints_lseth": "32"
}
]OK
0x30e2a735D692fC28CD31C28F1A8259b4790f9A230x30e2a735D692fC28CD31C28F1A8259b4790f9A230.005346333870.38274864225272151.0372532256655270.1090.0000069362734172580.491748642252721470.000039305549364450.10.0000067192190001210.482088602351740450.0000380755743340172024-04-1168bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d000001641.03715374634638451.04548651816499662024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.1090.0000069362734172580.491748642252721470.000039305549364451.006282340620787Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad request
Not found
Internal error
GET /eth/v1/wallet/{address}/rewards?start=text HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /eth/v1/wallet/{address}/status HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"allowlisted": true,
"status": "ALLOWLISTED| PAUSED | DENIED"
}OK
109.50.962024-06-21true0x5E9E16C6DEB4022399E4FCD387BCB59AC5855762DepositOpaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad request
Not found
Internal error
GET /eth/v1/wallet/{address}/transactions HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
OK
The possible amount available to claim in ETH (only present when display_eth is true)
The possible amount available to claim in LsETH
The amount already claimed in ETH
The amount already claimed in LsETH
The height is the cumulative sum of all the sizes of preceding redeem requests
The ID of the redeem request
1048576The maximum amount of ETH redeemable by this request
The owner of the redeem request
Block time
Timestamp
The amount of the redeem request in LsETH
The withdrawal event ID needed to claim the redeem (or -1 when no withdrawals available)
42Bad Request
Internal Error
GET /eth/v1/redeems HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"exit_time_hours": "text",
"mandatory_exit_delay_hours": "text",
"sweep_time_hours": "text"
}GET /eth/v1/validators/queue HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"a_srr_7d": "3.9712483",
"conversion_rate": "1.012345",
"date": "2023-01-02T03:04:05Z",
"gross_fee_lseth": "0.1851",
"gross_fee_rate": "0.15",
"net_srr_7d": "3.375561055",
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"protocol_service_fee_rate": "0.11",
"rewards_eth": "1.234",
"total_eth_staked": "122007944.381",
"total_lseth_supply": "120520123.456789",
"total_protocol_active_keys_count": 76,
"total_protocol_burns_lseth": "32",
"total_protocol_mints_lseth": "32"
}OK
3.97124831.0123452023-01-02T03:04:05Z0.18510.153.375561055f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef0.111.234122007944.381120520123.456789763232Bad Request
Internal error
GET /eth/v1/protocol/{date} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"a_srr_7d": "3.9712483",
"conversion_rate": "1.012345",
"date": "2023-01-02T03:04:05Z",
"gross_fee_lseth": "0.1851",
"gross_fee_rate": "0.15",
"net_srr_7d": "3.375561055",
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"protocol_service_fee_rate": "0.11",
"rewards_eth": "1.234",
"total_eth_staked": "122007944.381",
"total_lseth_supply": "120520123.456789",
"total_protocol_active_keys_count": 76,
"total_protocol_burns_lseth": "32",
"total_protocol_mints_lseth": "32"
}
]OK
109.50.962024-06-21true0x5E9E16C6DEB4022399E4FCD387BCB59AC5855762DepositOpaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad request
Not found
Internal error
GET /eth/v1/wallet/{address}/transactions HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"amount_eth": 10,
"amount_lseth": 9.5,
"conversion_rate": 0.96,
"date": "2024-06-21",
"finalized": true,
"transaction_hash": "0x5E9E16C6DEB4022399E4FCD387BCB59AC5855762",
"transaction_type": "Deposit"
}
],
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}OK
1.012345120520123.456789120520123.4567892023-01-02T03:04:05Zf071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000eforg_example12342024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.000012345670.00150.0001234567890.00350.0001234567890.00350.00012340.10.00001234567890.00350.00012345670.000123456732.12340.000123456732.12340.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.0001234567120520123.4567890.00012345670.00012345670.00012345670.0970.00012345673Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad Request
Unauthorized
Forbidden
Internal error
GET /eth/v1/platforms/{date} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"conversion_rate": 1.012345,
"cumulative_eth_supply": 120520123.456789,
"cumulative_lseth_supply": 120520123.456789,
"date": "2023-01-02T03:04:05Z",
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"org_id": "org_example1234",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_lc_fees_lseth": 0.00001234567,
"period_lc_fees_rate": 0.0015,
"period_operator_fees_lseth": 0.000123456789,
"period_operator_fees_rate": 0.0035,
"period_originator_fees_lseth": 0.000123456789,
"period_originator_fees_rate": 0.0035,
"period_protocol_fee_lseth": 0.0001234,
"period_protocol_fee_rate": 0.1,
"period_tech_provider_fees_lseth": 0.0000123456789,
"period_tech_provider_fees_rate": 0.0035,
"platform": {
"off_platform_rebate": {
"adjusted_cumulative_platform_net_outflows_fees_lseth": 0.0001234567,
"adjusted_cumulative_platform_net_outflows_transfers_lseth": 0.0001234567,
"cumulative_platform_burns_lseth": 32.1234,
"cumulative_platform_fees_received_from_lc_lseth": 0.0001234567,
"cumulative_platform_mints_lseth": 32.1234,
"cumulative_platform_net_outflows_lseth": 0.0001234567,
"cumulative_platform_transfers_in_lseth": 0.0001234567,
"cumulative_platform_transfers_out_lseth": 0.0001234567,
"cumulative_protocol_on_platform_lseth": 0.0001234567,
"cumulative_protocol_outflows_lseth": 0.0001234567,
"period_off_platform_allocated_fees_lseth": 0.0001234567,
"period_off_platform_balance_lseth": 0.0001234567,
"period_off_platform_fees_lseth": 0.0001234567,
"period_platform_adjusted_net_outflows_lseth": 0.0001234567,
"period_platform_outflow_ratio": 0.0001234567,
"period_protocol_off_platform_gross_fee_lseth": 0.0001234567
},
"on_platform_rebate": {
"period_on_platform_allocated_fees_lseth": 0.0001234567,
"period_on_platform_balance_lseth": 120520123.456789,
"period_on_platform_fees_lseth": 0.0001234567,
"period_on_platform_ratio": 0.0001234567
},
"period_fees_lseth": 0.0001234567,
"period_fees_rate": 0.097,
"period_platform_balance_lseth": 0.0001234567
},
"version": 3
}
],
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}OK
1.012345120520123.456789120520123.4567892023-01-02T03:04:05Zf071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000eforg_example12340.0001234567120520123.4567890.00012345670.00012345670.00012345670.0970.00012345670.00012345670.000123456732.12340.000123456732.12340.00012345670.00012345670.00012345670.00012345670.00012345670.00012345670.00012345672024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.00012340.13Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad Request
Unauthorized
Forbidden
Internal error
GET /eth/v1/originators/{date} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"conversion_rate": 1.012345,
"cumulative_eth_supply": 120520123.456789,
"cumulative_lseth_supply": 120520123.456789,
"date": "2023-01-02T03:04:05Z",
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"org_id": "org_example1234",
"originator": {
"attributed_rebate": {
"period_originator_attributed_allocated_fees_lseth": 0.0001234567,
"period_originator_attributed_balance_lseth": 120520123.456789,
"period_originator_attributed_fees_lseth": 0.0001234567,
"period_originator_attributed_ratio": 0.0001234567
},
"period_fees_lseth": 0.0001234567,
"period_fees_rate": 0.097,
"period_originator_balance_lseth": 0.0001234567,
"unattributed_rebate": {
"adjusted_cumulative_originator_net_outflows_fees_lseth": 0.0001234567,
"cumulative_originator_attributed_lseth": 0.0001234567,
"cumulative_originator_burns_lseth": 32.1234,
"cumulative_originator_fees_received_from_lc_lseth": 0.0001234567,
"cumulative_originator_mints_lseth": 32.1234,
"cumulative_originator_net_outflows_lseth": 0.0001234567,
"cumulative_protocol_originator_outflows_lseth": 0.0001234567,
"period_originator_adjusted_total_net_outflows_lseth": 0.0001234567,
"period_originator_outflow_ratio": 0.0001234567,
"period_unattributed_allocated_fees_lseth": 0.0001234567,
"period_unattributed_balance_lseth": 0.0001234567,
"period_unattributed_fees_lseth": 0.0001234567
}
},
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_protocol_fee_lseth": 0.0001234,
"period_protocol_fee_rate": 0.1,
"version": 3
}
],
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}OK
1.0123452023-01-02T03:04:05Z50.510f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000eforg_example12342024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.000120.000063Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad Request
Unauthorized
Forbidden
Internal error
GET /eth/v1/operators/{date} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"conversion_rate": 1.012345,
"date": "2023-01-02T03:04:05Z",
"end_operator_active_keys_count": 5,
"end_operator_active_keys_ratio": 0.5,
"end_protocol_active_keys_count": 10,
"oracle_report": "f071c15d86fd9ae82f62bb4bb04963f14e04045bbcac8b5439984733207821bc000000ef",
"org_id": "org_example1234",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_all_operators_fees_lseth": 0.00012,
"period_operator_fees_lseth": 0.00006,
"version": 3
}
],
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}0.382748642252721461trueExample: false2024-01-312024-01-01OK
0.38274864225272152024-01-311.0372532256655270.000039305549364450.000039305549364450.0000380755743340172024-01-011.0371537463463845Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX02024-01-31T23:59:59Z2572002024-01-01T00:00:00Z2500000.00003930554936445Bad request
Unauthorized
Forbidden
Internal error
POST /eth/v1/rewards HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 102
[
{
"balance_lseth": "0.382748642252721461",
"display_eth": false,
"end": "2024-01-31",
"start": "2024-01-01"
}
]POST /eth/v1/rewards/accounts HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 106
{
"accounts": [
"bb3e6114-af15-43a6-9b36-a5ec011d9d95"
],
"day": "2024-04-11",
"include_breakdown_details": false
}[
{
"account_id": "bb3e6114-af15-43a6-9b36-a5ec011d9d95",
"account_totals": {
"cumulative_net_rewards_eth": 0.00003930554936445,
"end_balance_lseth": 0.3827486422527215,
"end_position_value_eth": 0.4235486422527215,
"period_net_rewards_eth": 0.00003930554936445
},
"day": "2024-04-11",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"wallets": [
{
"account_id": "ab3e5114-af15-45b8-9c43-a5ec011d9d95",
"address": "0x30e2a735D692fC28CD31C28F1A8259b4790f9A23",
"avg_srr_hist": "0.00534633387",
"cumulative_burns_lseth": "0.109",
"cumulative_gross_rewards_eth": "0.000006264174837104",
"cumulative_lc_fees_eth": "0.000000439297316428",
"cumulative_mints_lseth": "0.49174864225272146",
"cumulative_net_rewards_eth": "0.00003930554936445",
"cumulative_operator_fees_eth": "0.000006264174837104",
"cumulative_originator_fees_eth": "0.000006264174837104",
"cumulative_platform_fees_eth": "0.000005364051442679",
"cumulative_protocol_fees_eth": "0.000006936273417258",
"cumulative_tech_provider_fees_eth": "0.000000161846379739",
"day": "2024-04-11",
"end_balance_lseth": "0.382748642252721461",
"end_conversion_rate": "1.037253225665527",
"oracle_report": "68bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164",
"org_id": "org_aDL0aCAXyWYgHQ4W",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_burns_lseth": "0.1",
"period_gross_rewards_eth": "0.000006264174837104",
"period_lc_fees_eth": "0.000000425550536674",
"period_mints_lseth": "0.482088602351740421",
"period_net_rewards_eth": "0.000038075574334017",
"period_operator_fees_eth": "0.000006264174837104",
"period_originator_fees_eth": "0.000006264174837104",
"period_platform_fees_eth": "0.00000519619602676",
"period_protocol_fee_rate": "0.000006264174837104",
"period_protocol_fees_eth": "0.000006719219000121",
"period_tech_provider_fees_eth": "0.000000156781776669",
"start_conversion_rate": "1.0371537463463845"
}
]
}
]POST /eth/v1/rewards/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 113
{
"addresses": [
"0x30e2a735D692fC28CD31C28F1A8259b4790f9A23"
],
"day": "2024-04-11",
"include_breakdown_details": false
}[
{
"account_id": "ab3e5114-af15-45b8-9c43-a5ec011d9d95",
"address": "0x30e2a735D692fC28CD31C28F1A8259b4790f9A23",
"avg_srr_hist": "0.00534633387",
"cumulative_burns_lseth": "0.109",
"cumulative_gross_rewards_eth": "0.000006264174837104",
"cumulative_lc_fees_eth": "0.000000439297316428",
"cumulative_mints_lseth": "0.49174864225272146",
"cumulative_net_rewards_eth": "0.00003930554936445",
"cumulative_operator_fees_eth": "0.000006264174837104",
"cumulative_originator_fees_eth": "0.000006264174837104",
"cumulative_platform_fees_eth": "0.000005364051442679",
"cumulative_protocol_fees_eth": "0.000006936273417258",
"cumulative_tech_provider_fees_eth": "0.000000161846379739",
"day": "2024-04-11",
"end_balance_lseth": "0.382748642252721461",
"end_conversion_rate": "1.037253225665527",
"oracle_report": "68bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164",
"org_id": "org_aDL0aCAXyWYgHQ4W",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_burns_lseth": "0.1",
"period_gross_rewards_eth": "0.000006264174837104",
"period_lc_fees_eth": "0.000000425550536674",
"period_mints_lseth": "0.482088602351740421",
"period_net_rewards_eth": "0.000038075574334017",
"period_operator_fees_eth": "0.000006264174837104",
"period_originator_fees_eth": "0.000006264174837104",
"period_platform_fees_eth": "0.00000519619602676",
"period_protocol_fee_rate": "0.000006264174837104",
"period_protocol_fees_eth": "0.000006719219000121",
"period_tech_provider_fees_eth": "0.000000156781776669",
"start_conversion_rate": "1.0371537463463845"
}
]OK
ab3e5114-af15-45b8-9c43-a5ec011d9d951.0454865181649966org_aDs4aCACyWYgMQ4A2024-01-31T23:59:59Z2572002024-01-01T00:00:00Z25000000.0000457471246737284.345976844e-70.000993767389853750.0000389598331894638.189616111e-77.868546e-100.0000052363758783620.0000067872914842651.601149364e-71.006282340620787ab3e5114-af15-45b8-9c43-a5ec011d9d950xF523F31Acf07Ff41D2616f9c1b73E762Ba8E56600xF523F31Acf07Ff41D2616f9c1b73E762Ba8E56600.000993767389853751.0062823406207872.22405e-130.0000062641748371047.868546e-104.45541235e-87.45441235e-81.2424021e-97.868546e-105.7150495e-90.0000062641748371048.28268039e-82.898938e-102024-04-0168bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d000001641.0371537463463845Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad request
Not found
Internal error
GET /eth/v1/rewards/accounts/{idOrKey}/summary HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
OK
ab3e5114-af15-45b8-9c43-a5ec011d9d950xF523F31Acf07Ff41D2616f9c1b73E762Ba8E56600xF523F31Acf07Ff41D2616f9c1b73E762Ba8E56600.000993767389853751.0062823406207872.22405e-130.0000062641748371047.868546e-104.45541235e-87.45441235e-81.2424021e-97.45441235e-85.7150495e-90.0000062641748371048.28268039e-82.898938e-102024-04-0168bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d000001641.03715374634638451.0454865181649966org_aDs4aCACyWYgMQ4A2024-01-31T23:59:59Z2572002024-01-01T00:00:00Z25000000.0000457471246737284.345976844e-70.000993767389853750.0000389598331894638.189616111e-77.868546e-100.0000052363758783620.0000067872914842651.601149364e-71.006282340620787Opaque base64url-encoded pagination cursor. Pass as next_cursor on the next request to retrieve the next page. Absent when no further pages exist.
eyJpbmRleCI6MX0Bad request
Not found
Internal error
GET /eth/v1/rewards/wallets/{idOrAddress}/summary HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /eth/v1/protocol HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Account has been created
Bad request
Unauthorized
Forbidden
Internal error
POST /v0/platform/accounts HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 27
{
"key": "depositor_example"
}GET /v0/platform/accounts HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"created_at": "2024-01-24T13:07:50.335845Z",
"id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"key": "depositor_example",
"org_id": "org_28CLGCvsdG7TlOHf",
"status": "ACTIVE | PAUSED | REMOVED | DENIED",
"wallets": [
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]
}
]GET /v0/platform/accounts/{idOrKey} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"created_at": "2024-01-24T13:07:50.335845Z",
"id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"key": "depositor_example",
"org_id": "org_28CLGCvsdG7TlOHf",
"status": "ACTIVE | PAUSED | REMOVED | DENIED",
"wallets": [
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]
}OK
Time the account was created
2024-01-24T13:07:50.335845ZIdentifier of the account (generated server side)
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Unique key identifying the account (supplied by the client when creating the account)
depositor_exampleOrganization identifier the account belongs to
org_28CLGCvsdG7TlOHfStatus of the account (managed by the integrator)
REMOVEDThe account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Internal error
PATCH /v0/platform/accounts/{idOrKey}/remove HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
PATCH /v0/platform/accounts/{idOrKey}/pause HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
PATCH /v0/platform/accounts/{idOrKey}/reactivate HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
GET /v0/platform/wallets/{idOrAddress} HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}GET /v0/platform/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]Account ID or Key of the account to add wallets to
Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Opt out of wallet being added to the OnPlatform list
trueThe type of wallet - chain or protocol it exists on
ETHOK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Internal error
POST /v0/platform/accounts/{idOrKey}/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 88
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"type": "ETH"
}OK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Internal error
GET /v0/platform/accounts/{idOrKey}/wallets HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Enable to remove wallet from the allowlist
Enable to remove wallet on_platform
OK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Internal error
PATCH /v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/remove HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Enable to pause wallet from the allowlist
Enable to pause wallet on_platform
OK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Conflict
Internal error
PATCH /v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/pause HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Enable to reactivate wallet from the allowlist
Enable to reactivate wallet on_platform
OK
The account ID of the wallet
ac0d0cdf-92bc-4cbe-a180-a2efb2387d16Wallet address in hexadecimal format with 0x prefix
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045Whether the wallet is allowlisted
trueTime the wallet was created
2024-01-25T13:07:50.335845ZOur UUID for this wallet
dd8eefc8-0cc4-4a27-adc0-e1ebebed598dWhether the wallet is on platform
trueOriginator of the wallet, value is an organization ID
org_ABCDEFThe type of wallet - chain or protocol it exists on
ETHBad request
Unauthorized
Forbidden
Not found
Conflict
Internal error
PATCH /v0/platform/accounts/{idOrKey}/wallets/{idOrAddress}/reactivate HTTP/1.1
Host: api.alluvial.finance
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"address": "0x123456789985ca04a69c35978c3a3e778d6ef172",
"balance": "4200000000000000000000",
"block_number": 15034284
}
]{
"data": {
"address": "0x30e2a735D692fC28CD31C28F1A8259b4790f9A23",
"daily_reports": [
{
"address": "0x30e2a735D692fC28CD31C28F1A8259b4790f9A23",
"avg_srr_hist": 0.00534633387,
"balance_lseth": 0.3827486422527215,
"conversion_rate": 1.037253225665527,
"cumulative_burns_lseth": 0.109,
"cumulative_fees_eth": 0.000006936273417258,
"cumulative_mints_lseth": 0.49174864225272147,
"cumulative_rewards_eth": 0.00003930554936445,
"daily_burns_lseth": 0.1,
"daily_fees_eth": 0.000006719219000121,
"daily_mints_lseth": 0.48208860235174045,
"daily_net_rewards_eth": 0.000038075574334017,
"date": "2024-04-11",
"oracle_report": "68bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164",
"previous_conversion_rate": 1.0371537463463845
}
],
"end_conversion_rate": 1.0454865181649966,
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_burns_lseth": 0.109,
"period_fees_eth": 0.000006936273417258,
"period_mints_lseth": 0.49174864225272147,
"period_rewards_eth": 0.00003930554936445,
"start_conversion_rate": 1.006282340620787
},
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}{
"data": [
{
"amount_eth": 10,
"amount_lseth": 9.5,
"conversion_rate": 0.96,
"date": "2024-06-21",
"finalized": true,
"transaction_hash": "0x5E9E16C6DEB4022399E4FCD387BCB59AC5855762",
"transaction_type": "Deposit"
}
],
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}[
{
"claimable_amount_eth": "text",
"claimable_amount_lseth": "text",
"claimed_amount_eth": "text",
"claimed_amount_lseth": "text",
"height": "text",
"id": 1048576,
"max_redeemable_amount_eth": "text",
"owner": "text",
"requested_at": 1,
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "PENDING_SATISFACTION",
"timestamp": "text",
"total_amount_lseth": "text",
"withdrawal_event_id": 42
}
]{
"end_balance_lseth": "text",
"end_position_value_eth": "text",
"lots": [
{
"balance_lseth": 0.3827486422527215,
"end": "2024-01-31",
"end_conversion_rate": 1.037253225665527,
"end_position_value_eth": 0.00003930554936445,
"net_rewards_eth": 0.00003930554936445,
"net_rewards_lseth": 0.000038075574334017,
"principal_eth": 1,
"start": "2024-01-01",
"start_conversion_rate": 1.0371537463463845
}
],
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
},
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_net_rewards_eth": "text",
"period_net_rewards_lseth": "0.00003930554936445",
"position_apy": "text"
}{
"data": {
"account_id": "ab3e5114-af15-45b8-9c43-a5ec011d9d95",
"end_conversion_rate": 1.0454865181649966,
"org_id": "org_aDs4aCACyWYgMQ4A",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_account_totals": {
"burns_lseth": 0,
"gross_rewards_eth": 0.000045747124673728,
"lc_fees_eth": 4.345976844e-7,
"mints_lseth": 0.00099376738985375,
"net_rewards_eth": 0.000038959833189463,
"operator_fees_eth": 8.189616111e-7,
"originator_fees_eth": 7.868546e-10,
"platform_fees_eth": 0.000005236375878362,
"protocol_fees_eth": 0.000006787291484265,
"tech_provider_fees_eth": 1.601149364e-7
},
"start_conversion_rate": 1.006282340620787,
"wallets": [
{
"account_id": "ab3e5114-af15-45b8-9c43-a5ec011d9d95",
"address": "0xF523F31Acf07Ff41D2616f9c1b73E762Ba8E5660",
"daily_reports": [
{
"address": "0xF523F31Acf07Ff41D2616f9c1b73E762Ba8E5660",
"balance_lseth": 0.00099376738985375,
"conversion_rate": 1.006282340620787,
"daily_burns_lseth": 2.22405e-13,
"daily_gross_rewards_eth": 0.000006264174837104,
"daily_lc_fees_eth": 7.868546e-10,
"daily_mints_lseth": 4.45541235e-8,
"daily_net_rewards_eth": 7.45441235e-8,
"daily_operator_fees_eth": 1.2424021e-9,
"daily_originator_fees_eth": 7.868546e-10,
"daily_platform_fees_eth": 5.7150495e-9,
"daily_protocol_fee_rate": 0.000006264174837104,
"daily_protocol_fees_eth": 8.28268039e-8,
"daily_tech_provider_fees_eth": 2.898938e-10,
"date": "2024-04-01",
"oracle_report": "68bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164",
"previous_conversion_rate": 1.0371537463463845
}
]
}
]
},
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}{
"data": {
"account_id": "ab3e5114-af15-45b8-9c43-a5ec011d9d95",
"address": "0xF523F31Acf07Ff41D2616f9c1b73E762Ba8E5660",
"daily_reports": [
{
"address": "0xF523F31Acf07Ff41D2616f9c1b73E762Ba8E5660",
"balance_lseth": 0.00099376738985375,
"conversion_rate": 1.006282340620787,
"daily_burns_lseth": 2.22405e-13,
"daily_gross_rewards_eth": 0.000006264174837104,
"daily_lc_fees_eth": 7.868546e-10,
"daily_mints_lseth": 4.45541235e-8,
"daily_net_rewards_eth": 7.45441235e-8,
"daily_operator_fees_eth": 1.2424021e-9,
"daily_originator_fees_eth": 7.45441235e-8,
"daily_platform_fees_eth": 5.7150495e-9,
"daily_protocol_fee_rate": 0.000006264174837104,
"daily_protocol_fees_eth": 8.28268039e-8,
"daily_tech_provider_fees_eth": 2.898938e-10,
"date": "2024-04-01",
"oracle_report": "68bbc70ba87b9467831cc3ff56fc114f3659ba9e646042007d1d54f6b95f267d00000164",
"previous_conversion_rate": 1.0371537463463845
}
],
"end_conversion_rate": 1.0454865181649966,
"org_id": "org_aDs4aCACyWYgMQ4A",
"period": {
"end": "2024-01-31T23:59:59Z",
"end_epoch": 257200,
"start": "2024-01-01T00:00:00Z",
"start_epoch": 250000
},
"period_wallet_totals": {
"burns_lseth": 0,
"gross_rewards_eth": 0.000045747124673728,
"lc_fees_eth": 4.345976844e-7,
"mints_lseth": 0.00099376738985375,
"net_rewards_eth": 0.000038959833189463,
"operator_fees_eth": 8.189616111e-7,
"originator_fees_eth": 7.868546e-10,
"platform_fees_eth": 0.000005236375878362,
"protocol_fees_eth": 0.000006787291484265,
"tech_provider_fees_eth": 1.601149364e-7
},
"start_conversion_rate": 1.006282340620787
},
"metadata": {
"next_cursor": "eyJpbmRleCI6MX0"
}
}{
"created_at": "2024-01-24T13:07:50.335845Z",
"id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"key": "depositor_example",
"org_id": "org_28CLGCvsdG7TlOHf",
"status": "ACTIVE"
}{
"created_at": "2024-01-24T13:07:50.335845Z",
"id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"key": "depositor_example",
"org_id": "org_28CLGCvsdG7TlOHf",
"status": "REMOVED",
"wallets": [
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]
}{
"created_at": "2024-01-24T13:07:50.335845Z",
"id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"key": "depositor_example",
"org_id": "org_28CLGCvsdG7TlOHf",
"status": "PAUSED",
"wallets": [
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]
}{
"created_at": "2024-01-24T13:07:50.335845Z",
"id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"key": "depositor_example",
"org_id": "org_28CLGCvsdG7TlOHf",
"status": "ACTIVE",
"wallets": [
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]
}{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}[
{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}
]{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}{
"account_id": "ac0d0cdf-92bc-4cbe-a180-a2efb2387d16",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"allowlisted": true,
"created_at": "2024-01-25T13:07:50.335845Z",
"id": "dd8eefc8-0cc4-4a27-adc0-e1ebebed598d",
"on_platform": true,
"originator_org_id": "org_ABCDEF",
"status": "ALLOWLISTED",
"type": "ETH"
}-3const { ethers } = require('ethers');
const Contract = require('./Contract.json');
(async () => {
const nodeUrl = 'https://ethereum-hoodi-rpc.publicnode.com';
const provider = new ethers.providers.JsonRpcProvider(nodeUrl);
const signer = new ethers.Wallet('<INSERT WALLET SECRET>', provider);
const LsETHContract = new ethers.Contract(
Contract.address,
Contract.abi,
signer
);
const walletAddress = '<INSERT WALLET ADDRESS>';
const value = ethers.utils.parseEther('0.000001');
//Get estimate for gas limit
const redeem_estimation = await LsETHContract.estimateGas.requestRedeem(
value,
walletAddress,
{ gasLimit: 1 }
);
// Create Redeem Request
let tx = await LsETHContract.requestRedeem(value, walletAddress, {
gasLimit: redeem_estimation,
});
let receipt = await tx.wait();
console.log(tx);
})();const ethers = require('ethers');
const Contract = require('./RedeemManager.json');
async function main() {
const provider = new ethers.providers.WebSocketProvider(
'wss://ethereum-hoodi-rpc.publicnode.com',
17000
);
const redeemManagerContract = new ethers.Contract(
Contract.address,
Contract.abi,
provider
);
redeemManagerContract.on(
'RequestedRedeem',
(owner, height, amount, maxRedeemableEth, id) => {
console.log('RequestedRedeem event');
console.log(`Owner of redeem ${owner}`);
console.log(`Height ${height.toString()}`);
console.log(`Amount of LsETH to redeem ${amount.toString()}`);
console.log(
`Maximum amount of ETH to redeem ${maxRedeemableEth.toString()}`
);
console.log(`Request Redeem ID ${id}`);
}
);
}
main();node websocket.jsRequestedRedeem event
Owner of redeem <WALLET ADDRESS>
Height 4980971589444881813
Amount of LsETH to redeem 10000000
Maximum amount of ETH to redeem 10212074
Request Redeem ID 18curl -X 'GET' \
'https://api.staging.alluvial.finance/eth/v0/redeems?owner=<WALLET ADDRESS>' \
-H 'accept: application/json' \
-H 'Authorization: Bearer e...jk'[
{
"id": 18,
"withdrawal_event_id": -1,
"total_amount_lseth": "10000000",
"claimed_amount_lseth": "0",
"claimable_amount_lseth": "0",
"max_redeemable_amount_eth": "10209790",
"owner": "<WALLET ADDRESS>",
"height": "4980971589354881813",
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "PENDING_SATISFACTION",
"requested_at": 9017542
}
]curl 'https://api.staging.alluvial.finance/eth/v0/redeems/18/projection' \
-H 'Authorization: Bearer e...jk'{
"projected_redeemable_at": "2023-05-19T19:16:24Z"
}redeemManagerContract.on(
'ReportedWithdrawal',
(height, amount, ethAmount, id) => {
console.log('ReportedWithdrawal event');
console.log(`Height ${height.toString()}`);
console.log(`Amount of LsETH to redeem ${amount.toString()}`);
console.log(`ETH amount being withdrawn ${ethAmount.toString()}`);
console.log(`Withdrawal event ID ${id}`);
}
);ReportedWithdrawal event
Height 4980971589444881813
Amount of LsETH to redeem 10000000
ETH amount being withdrawn 10212074
Withdrawal event ID 10const { ethers } = require('ethers');
const Contract = require('./Contract.json');
(async () => {
const LsETHContract = new ethers.Contract(
Contract.address,
Contract.abi,
provider
);
let arrRequestId = [18];
let resolveRedeem = await LsETHContract.resolveRedeemRequests(arrRequestId);
console.log(resolveRedeem.toString());
})();10curl 'https://api.staging.alluvial.finance/eth/v0/redeems/18' \
-H 'Authorization: Bearer e...jk'[
{
"id": 18,
"withdrawal_event_id": 10,
"total_amount_lseth": "10000000",
"claimed_amount_lseth": "0",
"claimable_amount_lseth": "10000000",
"max_redeemable_amount_eth": "10209790",
"owner": "<WALLET ADDRESS>",
"height": "4980971589354881813",
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "FULLY_SATISFIED",
"requested_at": 9017542
}
]const arrRequestId = [18];
const arrWithdrawalId = [10];
//Get estimate for gas limit
const claim_estimation = await LsETHContract.estimateGas.claimRedeemRequests(
arrRequestId,
arrWithdrawalId,
{ gasLimit: 1 }
);
const claimRedeemRequests = await LsETHContract.claimRedeemRequests(
arrRequestId,
arrWithdrawalId,
{ gasLimit: claim_estimation }
);
const receipt = await claimRedeemRequests.wait();
console.log(claimRedeemRequests);redeemManagerContract.on(
'ClaimedRedeemRequest',
(
redeemRequestId,
recipient,
ethAmount,
lsEthAmount,
remainingLsEthAmount
) => {
console.log('ClaimedRedeemRequest event');
console.log(`Redeem Request ID ${redeemRequestId}`);
console.log(`Recipient of redeem request ${recipient}`);
console.log(`Amount of ETH ${ethAmount.toString()}`);
console.log(`Amount of LsETH ${lsEthAmount.toString()}`);
console.log(`Amount of remaining LsETH ${remainingLsEthAmount.toString()}`);
}
);ClaimedRedeemRequest event
Redeem Request ID 18
Recipient of redeem request <WALLET ADDRESS>
Amount of ETH 10209790
Amount of LsETH 10000000
Amount of remaining LsETH 0redeemManagerContract.on(
'SatisfiedRedeemRequest',
(
redeemRequestId,
withdrawalEventId,
lsEthAmountSatisfied,
ethAmountSatisfied,
lsEthAmountRemaining,
ethAmountExceeding
) => {
console.log('SatisfiedRedeemRequest event');
console.log(`Redeem Request ID ${redeemRequestId}`);
console.log(`Withdrawal ID ${withdrawalEventId}`);
console.log(`Amount of LsETH satisfied ${lsEthAmountSatisfied.toString()}`);
console.log(`Amount of ETH satisfied ${ethAmountSatisfied.toString()}`);
console.log(
`Amount of LsETH left to satisfy ${lsEthAmountRemaining.toString()}`
);
console.log(
`Amount of ETH added to buffer ${ethAmountExceeding.toString()}`
);
}
);SatisfiedRedeemRequest event
Redeem Request ID 18
Withdrawal ID 10
Amount of LsETH satisfied 10000000
Amount of ETH satisfied 10209790
Amount of LsETH left to satisfy 0
Amount of ETH added to buffer 163curl -X 'GET' \
'https://api.staging.alluvial.finance/eth/v0/redeems?owner=<WALLET ADDRESS>' \
-H 'accept: application/json' \
-H 'Authorization: Bearer e...jk'{
"id": 18,
"withdrawal_event_id": -3,
"total_amount_lseth": "10000000",
"claimed_amount_lseth": "10000000",
"claimable_amount_lseth": "0",
"max_redeemable_amount_eth": "10209790",
"owner": "<WALLET ADDRESS>",
"height": "4980971589354881813",
"status_claim": "FULLY_CLAIMED",
"status_satisfaction": "FULLY_SATISFIED",
"requested_at": 9017542
}curl -X 'GET' \
'https://api.staging.alluvial.finance/eth/v0/redeems_info' \
-H 'accept: application/json' \
-H 'Authorization: Bearer e...jk'{
"total_amount_withdrawal_stack_lseth": "204462016832064499274",
"total_amount_redeem_queue_lseth": "237456822758541259805"
}curl -X 'GET' \
'https://api.staging.alluvial.finance/eth/v0/redeems_info/projection'\
-H 'accept: application/json' \
-H 'Authorization: Bearer e...jk'{
"projected_fulfilled_at": "2023-06-15T11:02:24Z"
}const { ethers } = require('ethers');
const Contract = require('../Contract.json');
const walletAddress = '0xbe79ff177a8F6a0D9656cF47D8687f43666a4d1e';
(async () => {
const nodeUrl = 'https://ethereum-hoodi-rpc.publicnode.com';
const provider = new ethers.providers.JsonRpcProvider(nodeUrl);
const gasPrice = await provider.getGasPrice();
const signer = new ethers.Wallet('<INSERT WALLET PRIVATE KEY>', provider);
const riverContract = new ethers.Contract(
Contract.address,
Contract.abi,
signer
);
const value = ethers.utils.parseEther('0.000000000001');
//Get estimate for gas limit
const redeem_estimation = await riverContract.estimateGas.requestRedeem(
value,
walletAddress,
{ gasLimit: 1 }
);
// Create Redeem Request
let tx = await riverContract.requestRedeem(value, walletAddress, {
gasLimit: redeem_estimation,
});
// ***** Start resolve redeem function block *****
// Uncomment when running claimRedeemRequests()
//let arrRequestId = [18];
//let resolveRedeem = await LsETHContract.resolveRedeemRequests(arrRequestId);
// console.log(resolveRedeem.toString())
// ***** Stop resolve redeem function block *****
// ***** Start claiming function block *****
// Get estimate for gas limit
// const claim_estimation = await LsETHContract.estimateGas.claimRedeemRequests(arrRequestId, arrWithdrawalId, { gasLimit: 1});
//let arrRequestId = [18];
//const arrWithdrawalId = [10]
//const claimRedeemRequests = await LsETHContract.claimRedeemRequests(arrRequestId, arrWithdrawalId, { gasLimit: claim_estimation});
//const receipt = await claimRedeemRequests.wait();
//console.log(claimRedeemRequests);
// ***** end claiming function block *****
})();{
"id": 1,
"withdrawal_event_id": -1,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "0",
"claimable_amount_lseth": "0",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "PENDING_SATISFACTION",
"requested_at": 9134158
}{
"id": 1,
"withdrawal_event_id": 1,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "0",
"claimable_amount_lseth": "900000",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "PARTIALLY_SATISFIED",
"requested_at": 9134158
}{
"id": 1,
"withdrawal_event_id": 1,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "0",
"claimable_amount_lseth": "1000000",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "NOT_CLAIMED",
"status_satisfaction": "FULLY_SATISFIED",
"requested_at": 9134158
}{
"id": 1,
"withdrawal_event_id": -1,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "900000",
"claimable_amount_lseth": "0",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "PARTIALLY_CLAIMED",
"status_satisfaction": "PENDING_SATISFACTION",
"requested_at": 9134158
}{
"id": 1,
"withdrawal_event_id": 2,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "900000",
"claimable_amount_lseth": "60000",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "PARTIALLY_CLAIMED",
"status_satisfaction": "PARTIALLY_SATISFIED",
"requested_at": 9134158
}{
"id": 1,
"withdrawal_event_id": 2,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "900000",
"claimable_amount_lseth": "100000",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "PARTIALLY_CLAIMED",
"status_satisfaction": "FULLY_SATISFIED",
"requested_at": 9134158
}{
"id": 1,
"withdrawal_event_id": -3,
"total_amount_lseth": "1000000",
"claimed_amount_lseth": "1000000",
"claimable_amount_lseth": "0",
"max_redeemable_amount_eth": "1023507",
"owner": "<WALLET ADDRESS>",
"height": "201956822758540259700",
"status_claim": "FULLY_CLAIMED",
"status_satisfaction": "FULLY_SATISFIED",
"requested_at": 9134158
}
const fs = require('fs');
const path = require('path');
const { FireblocksSDK } = require('fireblocks-sdk');
const { inspect } = require('util');const createVault = async () => {
const name = 'LsETH blog';
const vaultAccount = await fireblocks.createVaultAccount(name);
console.log(inspect(vaultAccount, false, null, true));
};
createVault();{
"id": "6",
"name": "LsETH blog",
"hiddenOnUI": false,
"assets": [],
"autoFuel": false
}const CONTRACT_ADDRESS = process.env.CONTRACT_ADDRESS;
const getAssets = async() => {
const supportedAssets = await fireblocks.getSupportedAssets();
supportedAssets.forEach((asset, index, array) => {
if (asset.contractAddress == CONTRACT_ADDRESS) {
console.log(JSON.stringify(asset))
)
}
})
}
getAssets();{
"id": "LSETH_ETH_TEST3_4E2A",
"name": "Liquid Staked ETH",
"type": "ERC20",
"contractAddress": "0x3ecCAdA3e11c1Cc3e9B5a53176A67cc3ABDD3E46",
"nativeAsset": "ETH_TEST3",
"decimals": 18
}const addAssetToVault = async () => {
const vaultWallet = await fireblocks.createVaultAsset(
6,
'LSETH_ETH_TEST3_4E2A'
);
console.log(inspect(vaultWallet, false, null, true));
};
addAssetToVault();{
"id": "6",
"address": "<FIREBLOCKS ADDRESS>",
"legacyAddress": "",
"tag": ""
}const {
FireblocksWeb3Provider,
ChainId,
} = require('@fireblocks/fireblocks-web3-provider');
const ethers = require('ethers');{
"abi": [ { INSERT ABI FILE HERE } ],
}const ABI = require('./Contract.json').abi;const eip1193Provider = new FireblocksWeb3Provider({
privateKey: process.env.FIREBLOCKS_API_PRIVATE_KEY_PATH,
apiKey: process.env.FIREBLOCKS_API_KEY,
vaultAccountIds: process.env.FIREBLOCKS_VAULT_ACCOUNT_IDS,
chainId: ChainId.GOERLI,
// apiBaseUrl: ApiBaseUrl.Sandbox // If using a sandbox workspace
});const createDeposit = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const gasPrice = await provider.getGasPrice();
const deposit_estimation = await LsETHContract.estimateGas.deposit({
from: FIREBLOCKS_ADDRESS,
value: ethers.utils.parseUnits('0.00000001', 'ether'),
gasLimit: ethers.utils.hexlify(1),
nonce: provider.getTransactionCount(FIREBLOCKS_ADDRESS, 'latest'),
});
let tx = await LsETHContract.deposit({
from: FIREBLOCKS_ADDRESS,
value: ethers.utils.parseUnits('0.000000001', 'ether'),
gasPrice: gasPrice,
gasLimit: deposit_estimation,
nonce: provider.getTransactionCount(FIREBLOCKS_ADDRESS, 'latest'),
});
let receipt = await tx.wait();
console.log(receipt);
};
createDeposit();const getTx = async () => {
const transactions = await fireblocks.getTransactions({
txHash: '<INSERT TX HASH>',
});
console.log(JSON.stringify(transactions));
};
getTx();{
"id": "LSETH_ETH_TEST3_4E2A",
"total": "0.000000000974731883",
"balance": "0.000000000974731883",
"lockedAmount": "0",
"available": "0.000000000974731883",
"pending": "0",
"frozen": "0",
"staked": "0",
"blockHeight": "9212224",
"blockHash": "0xc1d94ab995a5db95ddaa10b85ef47b24a38b9ea7249ac7c64bb46a1288fa33bc"
}const createRedeemRequest = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const value = ethers.utils.parseEther('0.000001');
const redeem_estimation = await LsETHContract.estimateGas.requestRedeem(
value,
FIREBLOCKS_ADDRESS,
{ gasLimit: 1 }
);
const tx = await LsETHContract.requestRedeem(value, FIREBLOCKS_ADDRESS, {
gasLimit: redeem_estimation,
});
let receipt = await tx.wait();
console.log(receipt);
};
createRedeemRequest();const resolveRedeemRequest = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const value = ethers.utils.parseEther('0.000001');
const arrRequestId = [53];
const resolveRedeem = await LsETHContract.resolveRedeemRequests(arrRequestId);
console.log(resolveRedeem.toString());
};
resolveRedeemRequest();const createClaimRedeemRequest = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const arrRequestId = [53];
const arrWithdrawalId = [111];
const claim_estimation = await LsETHContract.estimateGas.claimRedeemRequests(
arrRequestId,
arrWithdrawalId,
{ gasLimit: 1 }
);
const claimRedeemRequests = await LsETHContract.claimRedeemRequests(
arrRequestId,
arrWithdrawalId,
{ gasLimit: claim_estimation }
);
const receipt = await claimRedeemRequests.wait();
console.log(claimRedeemRequests);
};
createClaimRedeemRequest();//General dependencies
require('dotenv').config();
const fs = require('fs');
const path = require('path');
const { inspect } = require('util');
//Fireblocks SDKs
const { FireblocksSDK } = require('fireblocks-sdk');
const {
FireblocksWeb3Provider,
ChainId,
} = require('@fireblocks/fireblocks-web3-provider');
const ethers = require('ethers');
const baseUrl = 'https://api.fireblocks.io';
const apiSecret = fs.readFileSync(path.resolve('./fb.key'), 'utf8');
const apiKey = process.env.API_KEY;
const ABI = require('./Contract.json').abi;
const CONTRACT_ADDRESS = process.env.CONTRACT_ADDRESS;
const FIREBLOCKS_ADDRESS = process.env.FIREBLOCKS_ADDRESS;
const fireblocks = new FireblocksSDK(apiSecret, apiKey, baseUrl);
const eip1193Provider = new FireblocksWeb3Provider({
apiBaseUrl: baseUrl,
privateKey: apiSecret,
apiKey: apiKey,
vaultAccountIds: 3,
chainId: ChainId.GOERLI,
});
const createVault = async () => {
const name = 'LsETH blog';
const vaultAccount = await fireblocks.createVaultAccount(name);
console.log(inspect(vaultAccount, false, null, true));
};
//createVault()
const getAssets = async () => {
const supportedAssets = await fireblocks.getSupportedAssets();
supportedAssets.forEach((asset, index, array) => {
if (asset.contractAddress == CONTRACT_ADDRESS) {
console.log(JSON.stringify(asset));
}
});
};
//getAssets()
const addAssetToVault = async () => {
const vaultWallet = await fireblocks.createVaultAsset(
6,
'LSETH_ETH_TEST3_4E2A'
);
console.log(inspect(vaultWallet, false, null, true));
};
//addAssetToVault()
const createDeposit = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const gasPrice = await provider.getGasPrice();
const deposit_estimation = await LsETHContract.estimateGas.deposit({
from: FIREBLOCKS_ADDRESS,
value: ethers.utils.parseUnits('0.00000001', 'ether'),
gasLimit: ethers.utils.hexlify(1),
nonce: provider.getTransactionCount(FIREBLOCKS_ADDRESS, 'latest'),
});
let tx = await LsETHContract.deposit({
from: FIREBLOCKS_ADDRESS,
value: ethers.utils.parseUnits('0.000000001', 'ether'),
gasPrice: gasPrice,
gasLimit: deposit_estimation,
nonce: provider.getTransactionCount(FIREBLOCKS_ADDRESS, 'latest'),
});
let receipt = await tx.wait();
console.log(receipt);
};
//createDeposit()
const getTx = async () => {
const transactions = await fireblocks.getTransactions({
txHash:
'0x124e9ef06e38ab0e3ff78d066f8f2eea54b18210390a229c251a0d578853ae20',
});
console.log(JSON.stringify(transactions));
};
//getTx()
const getBalance = async () => {
const vaultAsset = await fireblocks.getVaultAccountAsset(
3,
'LSETH_ETH_TEST3_4E2A'
);
console.log(JSON.stringify(vaultAsset));
};
//getBalance()
const createRedeemRequest = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const value = ethers.utils.parseEther('0.000001');
const redeem_estimation = await LsETHContract.estimateGas.requestRedeem(
value,
FIREBLOCKS_ADDRESS,
{ gasLimit: 1 }
);
const tx = await LsETHContract.requestRedeem(value, FIREBLOCKS_ADDRESS, {
gasLimit: redeem_estimation,
});
let receipt = await tx.wait();
console.log(receipt);
};
//createRedeemRequest();
const resolveRedeemRequest = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const value = ethers.utils.parseEther('0.000001');
const arrRequestId = [53];
const resolveRedeem = await LsETHContract.resolveRedeemRequests(arrRequestId);
console.log(resolveRedeem.toString());
};
//resolveRedeemRequest();
const createClaimRedeemRequest = async () => {
const provider = new ethers.providers.Web3Provider(eip1193Provider);
const LsETHContract = new ethers.Contract(
CONTRACT_ADDRESS,
ABI,
provider.getSigner()
);
const arrRequestId = [53];
const arrWithdrawalId = [111];
const claim_estimation = await LsETHContract.estimateGas.claimRedeemRequests(
arrRequestId,
arrWithdrawalId,
{ gasLimit: 1 }
);
const claimRedeemRequests = await LsETHContract.claimRedeemRequests(
arrRequestId,
arrWithdrawalId,
{ gasLimit: claim_estimation }
);
const receipt = await claimRedeemRequests.wait();
console.log(claimRedeemRequests);
};
//createClaimRedeemRequest();const { ethers } = require('ethers');const Contract = require('./Contract.json');(async () => {
const nodeUrl = 'https://ethereum-hoodi-rpc.publicnode.com';
const provider = new ethers.providers.JsonRpcProvider(nodeUrl);
const gasPrice = await provider.getGasPrice();
const signer = new ethers.Wallet('<INSERT WALLET KEY>', provider);
const LsETHContract = new ethers.Contract(
Contract.address,
Contract.abi,
signer
);
const walletAddress = '<INSERT WALLET ADDRESS>';
})();// Get estimate for gas limit
const deposit_estimation = await LsETHContract.estimateGas.deposit({
from: walletAddress,
value: ethers.utils.parseUnits('0.00000001', 'ether'),
gasLimit: ethers.utils.hexlify(1),
nonce: provider.getTransactionCount(walletAddress, 'latest'),
});
// Deposit tx
let tx = await LsETHContract.deposit({
from: walletAddress,
value: ethers.utils.parseUnits('0.00000001', 'ether'),
gasPrice: gasPrice,
gasLimit: deposit_estimation,
nonce: provider.getTransactionCount(walletAddress, 'latest'),
});
let receipt = await tx.wait();
console.log(receipt);const { ethers } = require('ethers');
const Contract = require('./Contract.json');
const walletAddress = '0xbe79ff177a8F6a0D9656cF47D8687f43666a4d1e'(async () => {
const nodeUrl = 'https://ethereum-hoodi-rpc.publicnode.com';
const provider = new ethers.providers.JsonRpcProvider(nodeUrl);
const gasPrice = await provider.getGasPrice();
const signer = new ethers.Wallet('<INSERT WALLET KEY>', provider);
const LsETHContract = new ethers.Contract(
Contract.address,
Contract.abi,
signer
);
const walletAddress = '<INSERT WALLET ADDRESS>';
const value = ethers.utils.parseEther('0.000000000001');
const deposit_estimation = await LsETHContract.estimateGas.deposit({
from: walletAddress,
value: ethers.utils.parseUnits('0.00000001', 'ether'),
gasLimit: ethers.utils.hexlify(1),
nonce: provider.getTransactionCount(walletAddress, 'latest'),
});
let tx = await LsETHContract.deposit({
from: walletAddress,
value: ethers.utils.parseUnits('0.00000001', 'ether'),
gasPrice: gasPrice,
gasLimit: deposit_estimation,
nonce: provider.getTransactionCount(walletAddress, 'latest'),
});
let receipt = await tx.wait();
console.log(receipt);
})();{
"address": "0x1d8b30cC38Dba8aBce1ac29Ea27d9cFd05379A09",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_operator",
"type": "address"
},
{
"internalType": "uint256",
"name": "_allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "AllowanceTooLow",
"type": "error"
},
{
"inputs": [],
"name": "BalanceTooLow",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Denied",
"type": "error"
},
{
"inputs": [],
"name": "EmptyDeposit",
"type": "error"
},
{
"inputs": [],
"name": "ErrorOnDeposit",
"type": "error"
},
{
"inputs": [],
"name": "InconsistentPublicKeys",
"type": "error"
},
{
"inputs": [],
"name": "InconsistentSignatures",
"type": "error"
},
{
"inputs": [],
"name": "InvalidArgument",
"type": "error"
},
{
"inputs": [],
"name": "InvalidCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "currentValidatorsExitedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newValidatorsExitedBalance",
"type": "uint256"
}
],
"name": "InvalidDecreasingValidatorsExitedBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "currentValidatorsSkimmedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newValidatorsSkimmedBalance",
"type": "uint256"
}
],
"name": "InvalidDecreasingValidatorsSkimmedBalance",
"type": "error"
},
{
"inputs": [],
"name": "InvalidEmptyString",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "epoch",
"type": "uint256"
}
],
"name": "InvalidEpoch",
"type": "error"
},
{
"inputs": [],
"name": "InvalidFee",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "version",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expectedVersion",
"type": "uint256"
}
],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "InvalidPublicKeyCount",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "requested",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "received",
"type": "uint256"
}
],
"name": "InvalidPulledClFundsAmount",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSignatureCount",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "providedValidatorCount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "depositedValidatorCount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastReportedValidatorCount",
"type": "uint256"
}
],
"name": "InvalidValidatorCountReport",
"type": "error"
},
{
"inputs": [],
"name": "InvalidWithdrawalCredentials",
"type": "error"
},
{
"inputs": [],
"name": "InvalidZeroAddress",
"type": "error"
},
{
"inputs": [],
"name": "NoAvailableValidatorKeys",
"type": "error"
},
{
"inputs": [],
"name": "NotEnoughFunds",
"type": "error"
},
{
"inputs": [],
"name": "NullTransfer",
"type": "error"
},
{
"inputs": [],
"name": "SliceOutOfBounds",
"type": "error"
},
{
"inputs": [],
"name": "SliceOverflow",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "prevTotalEthIncludingExited",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "postTotalEthIncludingExited",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timeElapsed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "relativeLowerBound",
"type": "uint256"
}
],
"name": "TotalValidatorBalanceDecreaseOutOfBound",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "prevTotalEthIncludingExited",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "postTotalEthIncludingExited",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timeElapsed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "annualAprUpperBound",
"type": "uint256"
}
],
"name": "TotalValidatorBalanceIncreaseOutOfBound",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "Unauthorized",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
}
],
"name": "UnauthorizedTransfer",
"type": "error"
},
{
"inputs": [],
"name": "ZeroMintedShares",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "validatorCount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "validatorTotalBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "roundId",
"type": "bytes32"
}
],
"name": "ConsensusLayerDataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "version",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "cdata",
"type": "bytes"
}
],
"name": "Initialize",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "epoch",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsSkimmedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsExitedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsExitingBalance",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "validatorsCount",
"type": "uint32"
},
{
"internalType": "uint32[]",
"name": "stoppedValidatorCountPerOperator",
"type": "uint32[]"
},
{
"internalType": "bool",
"name": "rebalanceDepositToRedeemMode",
"type": "bool"
},
{
"internalType": "bool",
"name": "slashingContainmentMode",
"type": "bool"
}
],
"indexed": false,
"internalType": "struct IOracleManagerV1.ConsensusLayerReport",
"name": "report",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "rewards",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pulledELFees",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pulledRedeemManagerExceedingEthBuffer",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pulledCoverageFunds",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct IOracleManagerV1.ConsensusLayerDataReportingTrace",
"name": "trace",
"type": "tuple"
}
],
"name": "ProcessedConsensusLayerReport",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "pulledSkimmedEthAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "pullExitedEthAmount",
"type": "uint256"
}
],
"name": "PulledCLFunds",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "PulledCoverageFunds",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "PulledELFees",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "PulledRedeemManagerExceedingEth",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "redeemManagerDemand",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "suppliedRedeemManagerDemand",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "suppliedRedeemManagerDemandInEth",
"type": "uint256"
}
],
"name": "ReportedRedeemManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_collector",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_oldTotalUnderlyingBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_oldTotalSupply",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newTotalUnderlyingBalance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newTotalSupply",
"type": "uint256"
}
],
"name": "RewardsEarned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "SetAdmin",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "allowlist",
"type": "address"
}
],
"name": "SetAllowlist",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newAmount",
"type": "uint256"
}
],
"name": "SetBalanceCommittedToDeposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newAmount",
"type": "uint256"
}
],
"name": "SetBalanceToDeposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newAmount",
"type": "uint256"
}
],
"name": "SetBalanceToRedeem",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "annualAprUpperBound",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "relativeLowerBound",
"type": "uint256"
}
],
"name": "SetBounds",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "collector",
"type": "address"
}
],
"name": "SetCollector",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "coverageFund",
"type": "address"
}
],
"name": "SetCoverageFund",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "depositContract",
"type": "address"
}
],
"name": "SetDepositContractAddress",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldDepositedValidatorCount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newDepositedValidatorCount",
"type": "uint256"
}
],
"name": "SetDepositedValidatorCount",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "elFeeRecipient",
"type": "address"
}
],
"name": "SetELFeeRecipient",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "fee",
"type": "uint256"
}
],
"name": "SetGlobalFee",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "minNetAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "maxRelativeAmount",
"type": "uint256"
}
],
"name": "SetMaxDailyCommittableAmounts",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "metadataURI",
"type": "string"
}
],
"name": "SetMetadataURI",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operatorRegistry",
"type": "address"
}
],
"name": "SetOperatorsRegistry",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oracleAddress",
"type": "address"
}
],
"name": "SetOracle",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "pendingAdmin",
"type": "address"
}
],
"name": "SetPendingAdmin",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "redeemManager",
"type": "address"
}
],
"name": "SetRedeemManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "epochsPerFrame",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "slotsPerEpoch",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "secondsPerSlot",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "genesisTime",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "epochsToAssumedFinality",
"type": "uint64"
}
],
"name": "SetSpec",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
}
],
"name": "SetTotalSupply",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "withdrawalCredentials",
"type": "bytes32"
}
],
"name": "SetWithdrawalCredentials",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UserDeposit",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "DEPOSIT_SIZE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PUBLIC_KEY_LENGTH",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SIGNATURE_LENGTH",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_DEPOSIT_SIZE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "acceptAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "_spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "balanceOfUnderlying",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32[]",
"name": "_redeemRequestIds",
"type": "uint32[]"
},
{
"internalType": "uint32[]",
"name": "_withdrawalEventIds",
"type": "uint32[]"
}
],
"name": "claimRedeemRequests",
"outputs": [
{
"internalType": "uint8[]",
"name": "claimStatuses",
"type": "uint8[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_subtractableValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_recipient",
"type": "address"
}
],
"name": "depositAndTransfer",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_maxCount",
"type": "uint256"
}
],
"name": "depositToConsensusLayer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getAllowlist",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getBalanceToDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getBalanceToRedeem",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCLSpec",
"outputs": [
{
"components": [
{
"internalType": "uint64",
"name": "epochsPerFrame",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "slotsPerEpoch",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "secondsPerSlot",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "genesisTime",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "epochsToAssumedFinality",
"type": "uint64"
}
],
"internalType": "struct CLSpec.CLSpecStruct",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCLValidatorCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCLValidatorTotalBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCollector",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCommittedBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCoverageFund",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentEpochId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentFrame",
"outputs": [
{
"internalType": "uint256",
"name": "_startEpochId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_startTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_endTime",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDailyCommittableLimits",
"outputs": [
{
"components": [
{
"internalType": "uint128",
"name": "minDailyNetCommittableAmount",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "maxDailyRelativeCommittableAmount",
"type": "uint128"
}
],
"internalType": "struct DailyCommittableLimits.DailyCommittableLimitsStruct",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDepositedValidatorCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getELFeeRecipient",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExpectedEpochId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_epochId",
"type": "uint256"
}
],
"name": "getFrameFirstEpochId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getGlobalFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLastCompletedEpochId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLastConsensusLayerReport",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "epoch",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsSkimmedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsExitedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsExitingBalance",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "validatorsCount",
"type": "uint32"
},
{
"internalType": "bool",
"name": "rebalanceDepositToRedeemMode",
"type": "bool"
},
{
"internalType": "bool",
"name": "slashingContainmentMode",
"type": "bool"
}
],
"internalType": "struct IOracleManagerV1.StoredConsensusLayerReport",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMetadataURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOperatorsRegistry",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOracle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPendingAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getRedeemManager",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getReportBounds",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "annualAprUpperBound",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "relativeLowerBound",
"type": "uint256"
}
],
"internalType": "struct ReportBounds.ReportBoundsStruct",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getWithdrawalCredentials",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_additionalValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_depositContractAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_elFeeRecipientAddress",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_withdrawalCredentials",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_oracleAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_systemAdministratorAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_allowlistAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_operatorRegistryAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_collectorAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_globalFee",
"type": "uint256"
}
],
"name": "initRiverV1",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_redeemManager",
"type": "address"
},
{
"internalType": "uint64",
"name": "_epochsPerFrame",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "_slotsPerEpoch",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "_secondsPerSlot",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "_genesisTime",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "_epochsToAssumedFinality",
"type": "uint64"
},
{
"internalType": "uint256",
"name": "_annualAprUpperBound",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_relativeLowerBound",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "_minDailyNetCommittableAmount_",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "_maxDailyRelativeCommittableAmount_",
"type": "uint128"
}
],
"name": "initRiverV1_1",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initRiverV1_2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_epoch",
"type": "uint256"
}
],
"name": "isValidEpoch",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newAdmin",
"type": "address"
}
],
"name": "proposeAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_lsETHAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
}
],
"name": "requestRedeem",
"outputs": [
{
"internalType": "uint32",
"name": "_redeemRequestId",
"type": "uint32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32[]",
"name": "_redeemRequestIds",
"type": "uint32[]"
}
],
"name": "resolveRedeemRequests",
"outputs": [
{
"internalType": "int64[]",
"name": "withdrawalEventIds",
"type": "int64[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sendCLFunds",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "sendCoverageFunds",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "sendELFees",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "sendRedeemManagerExceedingFunds",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newAllowlist",
"type": "address"
}
],
"name": "setAllowlist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint64",
"name": "epochsPerFrame",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "slotsPerEpoch",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "secondsPerSlot",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "genesisTime",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "epochsToAssumedFinality",
"type": "uint64"
}
],
"internalType": "struct CLSpec.CLSpecStruct",
"name": "_newValue",
"type": "tuple"
}
],
"name": "setCLSpec",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newCollector",
"type": "address"
}
],
"name": "setCollector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "epoch",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsSkimmedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsExitedBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "validatorsExitingBalance",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "validatorsCount",
"type": "uint32"
},
{
"internalType": "uint32[]",
"name": "stoppedValidatorCountPerOperator",
"type": "uint32[]"
},
{
"internalType": "bool",
"name": "rebalanceDepositToRedeemMode",
"type": "bool"
},
{
"internalType": "bool",
"name": "slashingContainmentMode",
"type": "bool"
}
],
"internalType": "struct IOracleManagerV1.ConsensusLayerReport",
"name": "_report",
"type": "tuple"
}
],
"name": "setConsensusLayerData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newCoverageFund",
"type": "address"
}
],
"name": "setCoverageFund",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint128",
"name": "minDailyNetCommittableAmount",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "maxDailyRelativeCommittableAmount",
"type": "uint128"
}
],
"internalType": "struct DailyCommittableLimits.DailyCommittableLimitsStruct",
"name": "_dcl",
"type": "tuple"
}
],
"name": "setDailyCommittableLimits",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newELFeeRecipient",
"type": "address"
}
],
"name": "setELFeeRecipient",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newFee",
"type": "uint256"
}
],
"name": "setGlobalFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_metadataURI",
"type": "string"
}
],
"name": "setMetadataURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_oracleAddress",
"type": "address"
}
],
"name": "setOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "annualAprUpperBound",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "relativeLowerBound",
"type": "uint256"
}
],
"internalType": "struct ReportBounds.ReportBoundsStruct",
"name": "_newValue",
"type": "tuple"
}
],
"name": "setReportBounds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_underlyingAssetAmount",
"type": "uint256"
}
],
"name": "sharesFromUnderlyingBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalUnderlyingSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_shares",
"type": "uint256"
}
],
"name": "underlyingBalanceFromShares",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
]
}