Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt

Use this file to discover all available pages before exploring further.

New WKRC enters circulation only when a licensed institution deposits KRW. It leaves circulation only when a holder redeems KRW. No minting happens without a corresponding fiat movement.

Why supply changes

On most blockchains, the native token supply inflates through block rewards. WKRC has no block rewards. Supply is controlled entirely through two operations:
OperationTriggerWho initiates
MintFiat deposited into a collateral accountApproved minter (GovMinter quorum)
BurnHolder requests KRW redemptionApproved minter (GovMinter quorum)
Neither operation can proceed without quorum approval from multiple minter members. No single minter can unilaterally issue or destroy WKRC.

The mint flow

KRW deposit detected → mint proof created → GovMinter proposal submitted
→ minter quorum reached → NativeCoinAdapter.mint() executed
→ Transfer(0x0, beneficiary, amount) emitted
Each mint is linked to a unique depositId from the banking system. The same depositId cannot be used twice — preventing double minting.

The burn flow

KRW redemption requested → burn proof created → GovMinter proposal submitted
→ minter quorum reached → NativeCoinAdapter.burn() executed
→ Transfer(from, 0x0, amount) emitted
→ KRW returned off-chain

What this means for your app

Total supply is auditable. Every Mint and Burn event on the NativeCoinAdapter maps to a real-world fiat transaction. You can track totalSupply() changes on-chain and verify they correspond to events. Supply changes are predictable in cadence. Minting requires off-chain fiat settlement plus on-chain quorum voting — it is not instantaneous. Supply does not spike from block-reward inflation. Balances do not disappear without a transaction. The only way an address loses WKRC is through an explicit transfer or a burn that includes their address in the from field. Governance cannot confiscate balances unilaterally. Transfer(0x0, beneficiary, amount) signals a mint. If you index ERC-20 Transfer events from 0x0000000000000000000000000000000000000000, those are mint events. Burns are Transfer(from, 0x0, amount).

Key contract addresses

ContractAddressRole
NativeCoinAdapter0x0000000000000000000000000000000000001000Executes mint/burn, emits ERC-20 events
GovMinter0x0000000000000000000000000000000000001003Manages proposals and quorum voting
GovMasterMinter0x0000000000000000000000000000000000001002Controls which addresses are approved minters

Developer benefits

  • Stable, auditable supply — no surprise inflation from block rewards
  • Standard ERC-20 events for mints and burns — index Transfer from/to address(0)
  • totalSupply() on NativeCoinAdapter reflects the true circulating supply at any block