NativeStakingMonadConfig
Defined in: protocol-staking-native-monad/src/protocol.ts:34
Configuration of NativeStakingProtocolMonad. Only validators is required.
Properties
Section titled “Properties”allowInactive?
Section titled “allowInactive?”
optionalallowInactive?: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).
chainId?
Section titled “chainId?”
optionalchainId?: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.
concurrency?
Section titled “concurrency?”
optionalconcurrency?:number
Defined in: protocol-staking-native-monad/src/protocol.ts:54
Reads in flight at once (default 6).
defaultValidator?
Section titled “defaultValidator?”
optionaldefaultValidator?: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.
enrich?
Section titled “enrich?”
optionalenrich?: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.
maxCommission?
Section titled “maxCommission?”
optionalmaxCommission?: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.
maxWithdrawId?
Section titled “maxWithdrawId?”
optionalmaxWithdrawId?:number
Defined in: protocol-staking-native-monad/src/protocol.ts:56
Highest withdrawal id used and scanned (default 255).
multicallAddress?
Section titled “multicallAddress?”
optionalmulticallAddress?:`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).
provider?
Section titled “provider?”
optionalprovider?: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.
reserveBalance?
Section titled “reserveBalance?”
optionalreserveBalance?: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.
stakingAddress?
Section titled “stakingAddress?”
optionalstakingAddress?:`0x${string}`
Defined in: protocol-staking-native-monad/src/protocol.ts:50
The staking precompile (default 0x…1000).
timeoutMs?
Section titled “timeoutMs?”
optionaltimeoutMs?:number
Defined in: protocol-staking-native-monad/src/protocol.ts:48
Per-request timeout for URL providers, ms (default 15 000).
validators
Section titled “validators”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.
withdrawScan?
Section titled “withdrawScan?”
optionalwithdrawScan?:"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).