Concept: For what system modules do and why they’re precompiles, see System modules. For per-module method signatures and events, see the System modules reference.
What’s exposed
| Module | Precompile address | Use for |
|---|---|---|
| Bank | 0x0000000000000000000000000000000000001003 | STABLE token transfers and balance operations |
| Distribution | 0x0000000000000000000000000000000000000801 | Claiming staking rewards, reward queries, commission management |
| Staking | 0x0000000000000000000000000000000000000800 | Delegation, undelegation, redelegation, validator queries |
| StableSystem | 0x0000000000000000000000000000000000009999 | EVM event emission for system transactions (unbonding completions) |
When to call a precompile vs a regular contract
- Use a precompile when the operation maps to a Stable SDK module: staking, reward distribution, STABLE token ops. Calling the precompile is both cheaper and the only way to trigger protocol-level behavior.
- Use a regular contract when the operation is application logic: escrow, pricing, access control. Wrap the precompile call in your own contract if you need custom authorization or validation.
Call from Solidity
Declare an interface for the methods you need, then call the precompile as if it were a deployed contract.Call from ethers.js
For off-chain clients, declare the same interface as a minimal ABI and instantiate a contract pointed at the precompile address.Subscribe to system transaction events
Some Stable SDK operations (unbonding completions, for example) don’t naturally emit EVM events. Stable closes this gap with system transactions: validator-generated transactions that call theStableSystem precompile to emit standard EVM events during the next block.
To watch UnbondingCompleted, subscribe at the precompile address like any ERC-20 Transfer listener.
Per-module references
Each precompile’s full method list, events, and authorization rules live in its reference page.- Bank precompile: STABLE token transfers and supply queries.
- Distribution precompile: reward claims and commission.
- Staking precompile: delegate, undelegate, redelegate, validator queries.
- System transactions: StableSystem event format and authorization.
Next recommended
Track unbonding completions
Subscribe to the UnbondingCompleted event emitted via the StableSystem precompile.
System modules reference
Jump to the per-module ABI, method signatures, and event schemas.
System modules concept
Understand why Stable exposes SDK modules through precompiles.

