Skip to content
docs

NativeStakingMonadConfig

Defined in: protocol-staking-native-monad/src/protocol.ts:34

Configuration of NativeStakingProtocolMonad. Only validators is required.

optional allowInactive?: boolean

Defined in: protocol-staking-native-monad/src/protocol.ts:42

Allow validators outside the consensus set or flagged by the precompile (default false: their stake earns nothing).


optional chainId?: 143 | 10143

Defined in: protocol-staking-native-monad/src/protocol.ts:44

Pin the network (143 mainnet, 10143 testnet). Default: the account’s, which must be one of them.


optional concurrency?: number

Defined in: protocol-staking-native-monad/src/protocol.ts:54

Reads in flight at once (default 6).


optional defaultValidator?: number | bigint

Defined in: protocol-staking-native-monad/src/protocol.ts:38

Used by stake when the call names no validator. A single-entry list is its own default.


optional enrich?: ValidatorEnricher

Defined in: protocol-staking-native-monad/src/protocol.ts:68

Adds data to validators (APR, names) from an explorer or the app’s backend.


optional maxCommission?: number

Defined in: protocol-staking-native-monad/src/protocol.ts:40

Refuse validators whose commission is above this, percent (default 10). Read fresh from the precompile at every delegation and compound.


optional maxWithdrawId?: number

Defined in: protocol-staking-native-monad/src/protocol.ts:56

Highest withdrawal id used and scanned (default 255).


optional multicallAddress?: `0x${string}`

Defined in: protocol-staking-native-monad/src/protocol.ts:66

Multicall3 for the 'multicall' scan (default the canonical 0xcA11…CA11, deployed on Monad).


optional provider?: MonadProvider | MonadProvider[]

Defined in: protocol-staking-native-monad/src/protocol.ts:46

RPC url(s) or EIP-1193 provider(s) for reads; a list fails over in order. Defaults to the account’s provider.


optional reserveBalance?: number | bigint

Defined in: protocol-staking-native-monad/src/protocol.ts:52

MON stake leaves on the wallet: at least Monad’s 10 MON reserve balance (below it transfers revert), more if you like.


optional stakingAddress?: `0x${string}`

Defined in: protocol-staking-native-monad/src/protocol.ts:50

The staking precompile (default 0x…1000).


optional timeoutMs?: number

Defined in: protocol-staking-native-monad/src/protocol.ts:48

Per-request timeout for URL providers, ms (default 15 000).


validators: ValidatorsOption

Defined in: protocol-staking-native-monad/src/protocol.ts:36

Validator ids to delegate to, or 'any'. Required: there is no default list.


optional withdrawScan?: "multicall" | "gap" | "full"

Defined in: protocol-staking-native-monad/src/protocol.ts:64

How pending withdrawals are found per validator. 'multicall' (default) reads every slot up to maxWithdrawId in ONE eth_call through Multicall3 (falling back to 'full' when that call fails); 'full' reads every slot one call each (256 per validator); 'gap' reads from 0 and stops 32 empty slots past the last used one — cheaper, but it misses a pending slot above a run of claimed ones (withdrawals 0–39 with 0–35 claimed: 36–39 are not found).