Prerequisites
Before using the tool snippets on this page, make sure you have:- Foundry (
forge,cast) or Hardhat installed - A testnet wallet with WKRC balance to pay gas fees
Faucet
Get free testnet WKRC — no sign-up required.
EVM Version
| Property | Value |
|---|---|
| Base | go-ethereum fork (Anzeon WBFT) |
| EVM Instruction Set | London + Shanghai + partial Cancun |
| PUSH0 | ✅ Supported (Shanghai) |
| Blob transactions (type 0x03) | ❌ Not supported |
| Max call depth | 1,024 |
| Solidity target | paris or shanghai recommended |
Blob opcodes (
BLOBHASH, BLOBBASEFEE) are not available. Do not use --evm-version cancun in your compiler settings.Supported Tools
All tools below work with StableNet using the standard Testnet RPC and Chain ID. Copy the snippets below and replace any placeholder values.| Tool | Status | Notes |
|---|---|---|
Foundry (forge, cast) | ✅ | Set --priority-gas-price on every broadcast |
| Hardhat | ✅ | Set maxPriorityFeePerGas in deploy scripts |
| MetaMask | ✅ | Add custom network via wallet_addEthereumChain |
| Remix IDE | ✅ | Use “External HTTP Provider” with Testnet RPC |
| ethers.js / viem | ✅ | Pass maxPriorityFeePerGas on each transaction |
Foundry
Add the StableNet Testnet endpoint tofoundry.toml:
forge script and cast send broadcast requires --priority-gas-price:
Hardhat
MetaMask
Run this in your browser console to add StableNet Testnet to MetaMask:Remix IDE
- Open Remix IDE
- In the Deploy & Run panel, set Environment to External HTTP Provider
- Enter
https://api.test.stablenet.networkwhen prompted for the RPC URL - Remix will detect Chain ID
8283automatically
ethers.js
Connect to the Testnet and always passmaxPriorityFeePerGas on every transaction:
viem
Define the StableNet Testnet chain object once and reuse it across clients:StableNet-Specific Behavior
Minimum Priority Fee: 27,600 Gwei
TheGovValidator governance contract enforces a network-wide minimum priority fee. Any transaction with maxPriorityFeePerGas below this value is rejected at the transaction pool level.
| Parameter | Value |
|---|---|
Minimum maxPriorityFeePerGas | 27,600 Gwei (27600000000000 wei) |
| Enforcement | Transaction pool — rejected before inclusion |
eth_maxPriorityFeePerGas to query the current enforced value:
Unlike Ethereum, this method returns the governance-controlled value from the
GovValidator contract — not an oracle estimate based on recent blocks.Gas Fee Policy
- Base fee: Dynamic (adjusts with network utilization), paid to validators — not burned
- Priority fee: Governance-controlled minimum, enforced by
GovValidator - Block gas limit: 105,000,000
- Block time: ~1 second
Fee Delegation (Transaction Type 0x16)
StableNet supports a dedicated fee delegation transaction type that lets a separate account (FeePayer) pay gas on behalf of the sender. This enables user-facing apps to absorb gas costs.
| Property | Value |
|---|---|
| Transaction type | 0x16 (decimal 22) |
| Required fork | Applepie |
| Signatures required | 2 — sender + fee payer (independent) |
tx.origin in EVM | Always the sender, never the fee payer |
| RPC Method | Description |
|---|---|
personal_signRawFeeDelegateTransaction | Fee-payer signs with a password-unlocked account |
eth_signRawFeeDelegateTransaction | Fee-payer signs with an already-unlocked account |
eth_sendRawTransaction.
Signing flow with ethers.js (provider.send)
Type 0x16 is a StableNet-specific transaction type. Use provider.send() to call the RPC methods directly:
tx.origin inside the EVM is always the sender (SENDER), not the fee payer. Smart contracts cannot detect whether fee delegation was used.Native Token as ERC-20
The native gas coin (KRC) is simultaneously a standard ERC-20 token via theNativeCoinAdapter system contract. No wrapping step is required — the same balance used for gas is the balance returned by balanceOf().
| Property | Value |
|---|---|
| Contract address | 0x0000000000000000000000000000000000001000 |
| Symbol | WKRC |
| Decimals | 18 |
| Interface | ERC-20, FiatTokenV2_2 (USDC-compatible) |
approve / transferFrom patterns work exactly as on Ethereum.
Unsupported / Limited Features
| Feature | Status | Notes |
|---|---|---|
Blob transactions (type 0x03) | ❌ Not supported | Anzeon does not include blob Cancun opcodes |
BLOBHASH opcode (0x49) | ❌ Not available | |
BLOBBASEFEE opcode (0x4a) | ❌ Not available | |
eth_maxPriorityFeePerGas as oracle | ⚠️ Different behavior | Returns governance value, not a fee estimation |
personal / admin / debug namespaces | ⚠️ Not on public RPC | Available on local/dev nodes only |
| Gas tip below 27,600 Gwei | ❌ Rejected | Transaction pool enforcement |
RPC Namespaces
Standard namespaces available on the public RPC endpoint:| Namespace | Available |
|---|---|
eth | ✅ |
net | ✅ |
web3 | ✅ |
txpool | ✅ |
istanbul | ✅ (WBFT consensus info) |
personal / admin / debug | Local / dev nodes only |
Next Steps
Deploy Your First Contract
Step-by-step Foundry tutorial — deploy a WKRC payment contract in ~15 minutes.
Network Information
Chain IDs, RPC endpoints, and system contract addresses.
API Reference
Full JSON-RPC method reference with curl and ethers.js examples.
Explorer
Inspect transactions, contracts, and accounts on-chain.
Get Testnet WKRC
Request free testnet WKRC from the faucet.

