StableNet deploys five governance system contracts at fixed addresses in the genesis block. This page lists every contract you might need when building on StableNet.
System Contracts
These contracts are deployed at genesis, have no owner, and can only be upgraded via a hard fork.
| Contract | Address | Purpose |
|---|
| NativeCoinAdapter | 0x0000…1000 | ERC-20 wrapper for the native coin (WKRC). Entry point for mint/burn. |
| GovValidator | 0x0000…1001 | Validator set management, BLS key registration, governance gas tip. |
| GovMasterMinter | 0x0000…1002 | Registry of approved minters and global mint allowance caps. |
| GovMinter | 0x0000…1003 | Creation, voting, and execution of proof-based mint/burn proposals. |
| GovCouncil | 0x0000…1004 | Blacklist and Authorized account management. |
All five contracts are version v1. Their bytecode is embedded in the node binary and deployed via InjectContracts during genesis block creation.
NativeCoinAdapter (WKRC)
0x0000000000000000000000000000000000001000
NativeCoinAdapter wraps the chain’s native coin in a standard ERC-20 interface (FiatTokenV2_2 compatible). It does not store balances in its own storage — balanceOf(address) reads the account’s native balance directly.
| Property | Value |
|---|
| Token name | WKRC |
| Symbol | WKRC |
| Decimals | 18 |
| Currency peg | KRW (Korean Won) |
| Standard | ERC-20, FiatTokenV2_2 |
Key behaviors:
- Transfers modify native balances directly (no double-bookkeeping).
- Allowances are the only data stored in the contract’s own storage.
- Minting and burning are restricted to addresses approved by GovMasterMinter / GovMinter.
- Emits
Transfer, Approval, Mint, and Burn events for full indexability.
For a deeper look at WKRC mechanics, see WKRC: KRW-Pegged Native Gas Token.
Governance Contracts
GovValidator
0x0000000000000000000000000000000000001001
Manages the active validator set and the governance-enforced gas tip (gasTip). Validators are registered with an operator address, a consensus address, and a BLS public key. Changes to the validator set take effect at epoch boundaries.
GovMasterMinter
0x0000000000000000000000000000000000001002
Maintains the list of approved minters and their global maximum mint allowance. Only minters registered here can call mint() on NativeCoinAdapter.
GovMinter
0x0000000000000000000000000000000000001003
Handles the proposal lifecycle for minting and burning WKRC. Proposals are created with proof data, voted on by governance members, and executed when quorum is reached.
GovCouncil
0x0000000000000000000000000000000000001004
Manages two account flag sets stored in the account’s Extra field:
| Flag | Bitmask | Effect |
|---|
| Blacklisted | 0x8000000000000000 | All transfers blocked |
| Authorized | 0x4000000000000000 | Exempt from governance gas tip enforcement |
Common EVM Contracts
Standard EVM precompiled contracts are available at their canonical addresses. If you use tools like Hardhat, Foundry, or Multicall3, they work out of the box.
| Contract | Address |
|---|
| ecRecover | 0x0000000000000000000000000000000000000001 |
| SHA-256 | 0x0000000000000000000000000000000000000002 |
| RIPEMD-160 | 0x0000000000000000000000000000000000000003 |
| Identity | 0x0000000000000000000000000000000000000004 |
| ModExp (EIP-198) | 0x0000000000000000000000000000000000000005 |
| ecAdd (EIP-196) | 0x0000000000000000000000000000000000000006 |
| ecMul (EIP-196) | 0x0000000000000000000000000000000000000007 |
| ecPairing (EIP-197) | 0x0000000000000000000000000000000000000008 |
| Blake2f (EIP-152) | 0x0000000000000000000000000000000000000009 |
Network Reference
| Network | Chain ID | Explorer |
|---|
| Mainnet | 8282 | explorer.stablenet.network |
| Testnet | 8283 | — |
System contracts are deployed at the same fixed genesis addresses on every StableNet network.