ETH Price: $4,442.30 (+0.06%)

Contract

0x949B93e0E4022834043e2B672E8F291825cf535c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
Age
From
To

There are no matching entries

5 Internal Transactions found.

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
Age
From
To
Dispatch225053752025-05-17 21:17:35144 days ago1747516655
0x949B93e0...825cf535c
32.01240444 ETH
Dispatch221161472025-03-24 10:24:23198 days ago1742811863
0x949B93e0...825cf535c
0.17250203 ETH
Dispatch215159122024-12-30 14:33:11282 days ago1735569191
0x949B93e0...825cf535c
0.38382016 ETH
Dispatch201745632024-06-26 8:07:11469 days ago1719389231
0x949B93e0...825cf535c
0.49031792 ETH
0x3d602d80201745632024-06-26 8:07:11469 days ago1719389231
 Contract Creation
0 ETH
Cross-Chain Transactions
Withdrawals

Block Age Transaction Difficulty Gas Used Reward
View All Blocks Produced

Latest 25 from a total of 55 withdrawals (33.059044572 ETH withdrawn)

Validator Index Block Age Amount
1049245221398392025-03-27 17:47:23195 days ago174309764332.012404447 ETH
1049245220737452025-03-18 12:25:23204 days ago17423007230.019119073 ETH
1049245220079662025-03-09 7:57:11213 days ago17415070310.01910347 ETH
1049245219425392025-02-28 4:45:23223 days ago17407179230.018987511 ETH
1049245218770772025-02-19 1:16:23232 days ago17399277830.019159432 ETH
1049245218114862025-02-09 20:56:59241 days ago17391346190.019117675 ETH
1049245217457252025-01-31 16:33:23250 days ago17383412030.019328755 ETH
1049245216794392025-01-22 10:29:59259 days ago17375417990.019298896 ETH
1049245216132022025-01-13 4:32:35269 days ago17367427550.019144402 ETH
1049245215470082025-01-03 22:41:59278 days ago17359441190.019242816 ETH
1049245214808552024-12-25 17:02:59287 days ago17351461790.019346014 ETH
1049245214141902024-12-16 9:29:47296 days ago17343413870.019443292 ETH
1049245213471012024-12-07 0:41:23306 days ago17335320830.019406067 ETH
1049245212799562024-11-27 15:22:59315 days ago17327209790.019454123 ETH
1049245212127502024-11-18 6:16:11324 days ago17319105710.019469476 ETH
1049245211451552024-11-08 19:56:35334 days ago17310957950.019404737 ETH
1049245210778442024-10-30 10:24:47343 days ago17302838870.019341896 ETH
1049245210108092024-10-21 1:56:47353 days ago17294758070.019412375 ETH
1049245209436912024-10-11 16:52:47362 days ago17286655670.019417257 ETH
1049245208765172024-10-02 8:07:59371 days ago17278564790.019274653 ETH
1049245208097992024-09-23 0:47:35381 days ago17270524550.01911135 ETH
1049245207431592024-09-13 17:23:35390 days ago17262482150.019215851 ETH
1049245206767332024-09-04 10:50:47399 days ago17254470470.019113363 ETH
1049245206106912024-08-26 5:31:11408 days ago17246502710.019018598 ETH
1049245205447782024-08-17 0:30:35418 days ago17238546350.019151598 ETH
View All Withdrawals

Transaction Hash Block Age Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Minimal Proxy Contract for 0x933fbfeb4ed1f111d12a39c2ab48657e6fc875c6

Contract Name:
FeeRecipient

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, BSL 1.1 license

Contract Source Code (Solidity Standard Json-Input format)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.10;
import "./interfaces/IFeeDispatcher.sol";
contract FeeRecipient {
/// @notice Constructor replay prevention
bool internal initialized;
/// @notice Address where funds are sent to be dispatched
IFeeDispatcher internal dispatcher;
/// @notice Public Key root assigned to this receiver
bytes32 internal publicKeyRoot;
error AlreadyInitialized();
/// @notice Initializes the receiver
/// @param _dispatcher Address that will handle the fee dispatching
/// @param _publicKeyRoot Public Key root assigned to this receiver
function init(address _dispatcher, bytes32 _publicKeyRoot) external {
if (initialized) {
revert AlreadyInitialized();
}
initialized = true;
dispatcher = IFeeDispatcher(_dispatcher);
publicKeyRoot = _publicKeyRoot;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.10;
import "./libs/DispatchersStorageLib.sol";
import "./interfaces/IStakingContractFeeDetails.sol";
import "./interfaces/IFeeDispatcher.sol";
/// @title Consensus Layer Fee Recipient
/// @author Kiln
/// @notice This contract can be used to receive fees from a validator and split them with a node operator
contract ConsensusLayerFeeDispatcher is IFeeDispatcher {
using DispatchersStorageLib for bytes32;
event Withdrawal(
address indexed withdrawer,
address indexed feeRecipient,
bytes32 pubKeyRoot,
uint256 rewards,
uint256 nodeOperatorFee,
uint256 treasuryFee
);
error TreasuryReceiveError(bytes errorData);
error FeeRecipientReceiveError(bytes errorData);
error WithdrawerReceiveError(bytes errorData);
error ZeroBalanceWithdrawal();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;
library DispatchersStorageLib {
function getUint256(bytes32 position) internal view returns (uint256 data) {
assembly {
data := sload(position)
}
}
function setUint256(bytes32 position, uint256 data) internal {
assembly {
sstore(position, data)
}
}
function getAddress(bytes32 position) internal view returns (address data) {
assembly {
data := sload(position)
}
}
function setAddress(bytes32 position, address data) internal {
assembly {
sstore(position, data)
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;
interface IStakingContractFeeDetails {
function getWithdrawerFromPublicKeyRoot(bytes32 _publicKeyRoot) external view returns (address);
function getTreasury() external view returns (address);
function getOperatorFeeRecipient(bytes32 pubKeyRoot) external view returns (address);
function getGlobalFee() external view returns (uint256);
function getOperatorFee() external view returns (uint256);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1
2
3
4
5
6
7
8
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;
interface IFeeDispatcher {
function dispatch(bytes32 _publicKeyRoot) external payable;
function getWithdrawer(bytes32 _publicKeyRoot) external view returns (address);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.10;
import "./libs/DispatchersStorageLib.sol";
import "./interfaces/IStakingContractFeeDetails.sol";
import "./interfaces/IFeeDispatcher.sol";
/// @title Execution Layer Fee Recipient
/// @author Kiln
/// @notice This contract can be used to receive fees from a validator and split them with a node operator
contract ExecutionLayerFeeDispatcher is IFeeDispatcher {
using DispatchersStorageLib for bytes32;
event Withdrawal(
address indexed withdrawer,
address indexed feeRecipient,
bytes32 pubKeyRoot,
uint256 rewards,
uint256 nodeOperatorFee,
uint256 treasuryFee
);
error TreasuryReceiveError(bytes errorData);
error FeeRecipientReceiveError(bytes errorData);
error WithdrawerReceiveError(bytes errorData);
error ZeroBalanceWithdrawal();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

API
[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getPublicKeyRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWithdrawer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dispatcher","type":"address"},{"internalType":"bytes32","name":"_publicKeyRoot","type":"bytes32"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Block Age Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.