UnbondingCompleted event through the StableSystem precompile (0x0000000000000000000000000000000000009999) via a system transaction. This lets dApps notify users and update balances in real time without running custom indexers or polling REST endpoints.
Concept: For how system transactions bridge SDK-layer events to the EVM and why it matters, see System transactions.
Prerequisites
- Understanding of System transactions.
- Familiarity with Staking, specifically
undelegateand the unbonding process. - Experience with contract event subscription and filtering using a standard web3 library (e.g. ethers.js v6).
Overview
- Set up the contract instance: create a contract instance for the StableSystem precompile.
- Handle events in your application: subscribe to real-time events or query historical data depending on your application logic.
- Handle connection issues: implement reconnection logic for persistent WebSocket subscriptions.
Step 1: Set up the contract instance
Create a contract instance for theStableSystem precompile using the UnbondingCompleted event ABI.
Step 2: Handle events in your application
Subscribe to real-time events, query historical data, or both depending on your application logic.Real-time subscription
Subscribe toUnbondingCompleted events for real-time notifications when any unbonding completes. Useful for triggering balance updates, sending notifications, or refreshing dashboard statistics.
Filter by user
To only receive events for a particular delegator address, use the indexed event parameters to create a filter.Filter by validator
Historical query
If your dApp needs to show a history of past unbonding completions, query historical events using event filters with block ranges.Step 3: Handle connection issues
Event subscriptions rely on persistent WebSocket connections. Implement reconnection logic for production dApps.Next recommended
System transactions concept
Understand how protocol-level events reach the EVM.
Staking module concept
Review the delegation and unbonding flow.
Staking precompile reference
Look up the methods that trigger the events tracked here.

