# EIP-8148 draft moves sweep thresholds into withdrawal credentials

Canonical: https://forkbrief.com/news/88d0bf65-d143-4e15-adde-a49494af2d24
Published: 2026-10-30T15:01:57.807Z
Publisher: Fork Brief

October 30 specification edits replace a separate validator-state mapping with a two-byte credential field and clarify the contract input, log and request encodings.

Two October 30 revisions to Ethereum's EIP-8148 draft change how a validator's custom sweep threshold would be stored and specify the request format for updating it. The [later commit](https://github.com/ethereum/EIPs/commit/298dd6799a35591506e8d202c23be6aafdc27c14), recorded at 11:21:52 UTC, replaces a proposed separate state mapping with a two-byte field inside compounding withdrawal credentials.

EIP-8148 remains a Draft Core proposal. The repository edits change its specification; they do not establish a network deployment or activation date.

### Threshold storage moves into credentials

The revised layout assigns bytes 1 and 2 of a validator's `0x02` withdrawal credentials to a little-endian `uint16` threshold, measured in `EFFECTIVE_BALANCE_INCREMENT` units. Byte 0 retains the credential prefix, and bytes 12 through 31 retain the execution address. No new field would be added to `BeaconState` or `Validator`.

Zero encodes the default maximum threshold. Out-of-range values are read as the default, and the proposed fork transition would clear the two bytes for existing validators. The document's rationale favors using spare credential bytes over maintaining a separate per-validator list.

This changes what applications can infer from comparing credentials. The revised compatibility section tells applications that compare all 32 bytes, including EIP-4788 proof verifiers, to compare the prefix and execution address instead. Updating the threshold would change credential bytes without changing that address.

### Contract input and request encoding differ

The [earlier commit](https://github.com/ethereum/EIPs/commit/2484d1e8eec504adb89a4bc921b91cc855eca81f), at 11:13:25 UTC, specifies a 56-byte contract input: a 48-byte validator public key followed by an eight-byte big-endian threshold in Gwei. It also specifies a 76-byte anonymous log containing the caller's address, public key and threshold. The outgoing execution request uses little-endian threshold encoding, so the formats are not interchangeable.

The optional custom-threshold feature was already described in [September coverage](https://forkbrief.com/news/844b1aca-676c-4293-bc11-9f327bf9de78). These revisions concern its proposed storage and integration details. The reviewed draft still leaves the contract deployment address as `TBD`.

Earlier coverage of this event: [EIP-8148 Author Details Sweep-Threshold Revisions for Ethereum Validators](https://forkbrief.com/news/844b1aca-676c-4293-bc11-9f327bf9de78).

## Sources

- [EIP-8148: Custom sweep threshold for validators \[Draft, commit 298dd679\]](https://raw.githubusercontent.com/ethereum/EIPs/298dd6799a35591506e8d202c23be6aafdc27c14/EIPS/eip-8148.md) — Ethereum EIPs repository
- [Update EIP-8148: Store sweep threshold in withdrawal credentials](https://github.com/ethereum/EIPs/commit/298dd6799a35591506e8d202c23be6aafdc27c14) — Ethereum EIPs
- [Update EIP-8148: Specify contract input, log and eth\_config key](https://github.com/ethereum/EIPs/commit/2484d1e8eec504adb89a4bc921b91cc855eca81f) — Ethereum EIPs

## Related reporting

- [EIP-8148 Author Details Sweep-Threshold Revisions for Ethereum Validators](https://forkbrief.com/news/844b1aca-676c-4293-bc11-9f327bf9de78) — Fork Brief

- [Editorial policy](https://forkbrief.com/editorial-policy)
- [Request a correction](https://forkbrief.com/corrections)
