hMON and the Degen Pool
hMON is the tokenized Degen Pool position in shMonad. When you deposit MON into the zero-yield tranche, you receive hMON instead of shMON.
The tradeoff is simple: hMON keeps your MON principal represented 1:1, but the staking yield from that MON is donated to the pooled shMON exchange rate. That donated yield boosts returns for shMON holders.
hMON does not earn staking yield for the holder. If you want yield, convert hMON into shMON. If you want to understand points exposure, see the Points page.
Key Facts at a Glance
| Token | hMON, an ERC-20 receipt for the Degen Pool / zero-yield tranche. |
| Contract addresses | See mainnet and testnet hMON addresses. |
| Backing | 1 hMON represents 1 MON in the zero-yield tranche. |
| Rewards | hMON holders do not receive staking yield. That yield boosts the shMON exchange rate. |
| Balance | hMON does not rebase. Your token balance stays fixed unless you transfer, receive, deposit, or convert. |
| Exit Path | Convert hMON to shMON, then use normal shMON unstaking paths. |
| Points | Points eligibility and multipliers depend on how hMON is used. Check the current rules on shmonad.xyz/points. |
hMON vs shMON
| Feature | shMON | hMON |
|---|---|---|
| Deposit path | Standard staking deposit | Zero-yield / Degen Pool deposit |
| What you receive | Yield-bearing shMON | Stable-balance hMON |
| Earns staking yield? | Yes | No |
| How rewards show up | shMON becomes worth more MON over time | Yield is donated to shMON holders |
| Can transfer as ERC-20? | Yes | Yes |
| Can convert? | Can unstake to MON | Can convert to shMON |
How hMON Works
- Deposit MON: You deposit MON into the Degen Pool and receive hMON 1:1.
- Underlying MON is staked: The protocol stakes the MON through the normal shMonad validator pipeline.
- Yield is donated: Rewards from that MON increase pooled equity, which raises the shMON exchange rate.
- hMON stays fixed: Your hMON balance does not increase from rewards.
- Convert when you want yield: You can convert hMON into shMON at the current exchange rate.
There is no separate hMON-to-MON withdrawal path. To exit into MON, convert hMON to shMON first, then use atomic unstaking or traditional unstaking.
Why Hold hMON?
hMON is useful when you want a transferable Degen Pool position. It can be moved, traded, supplied to DeFi protocols that support it, or converted back into yield-bearing shMON.
hMON may be relevant to points strategies, especially when deployed in DeFi. Points rules can change and may depend on how the hMON is used, so always check the current rules on the Points page instead of assuming idle hMON receives the same treatment as hMON deployed in DeFi.
Why hMON Helps shMON Holders
hMON deposits increase the amount of MON being staked without increasing the shMON supply. Since the hMON holder gives up the staking yield, that yield accrues to the pooled equity backing shMON.
For shMON holders, this means the same number of shMON tokens share more protocol rewards. The larger the zero-yield tranche, the larger the potential boost to the shMON exchange rate.
For DeFi Integrations
hMON is intended to behave like a standard ERC-20 surface over shMonad's zero-yield tranche.
Token behavior
- Name: Holistic MON
- Symbol: hMON
- Decimals: 18
- Standard: ERC-20 plus EIP-2612 permit
- No rebase: Balances are stable and do not grow from staking rewards
- Mint path:
depositToZeroYieldTranchemints hMON 1:1 against deposited MON - Conversion path:
convertZeroYieldTrancheToSharesburns hMON and mints shMON at the current exchange rate - No direct hMON-to-MON redemption: Convert to shMON first, then use normal shMON unstaking
Main interface
interface IHolisticMON {
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
function activate(address account) external;
function activate(address[] calldata accounts) external;
function isActivated(address account) external view returns (bool);
function shMonad() external view returns (address);
}
interface IShMonadZeroYield {
function depositToZeroYieldTranche(uint256 assets, address receiver) external payable;
function convertZeroYieldTrancheToShares(uint256 assets, address receiver) external returns (uint256 shares);
function balanceOfZeroYieldTranche(address account) external view returns (uint256);
function getZeroYieldToken() external view returns (address);
function globalLiabilities()
external
view
returns (
uint128 rewardsPayable,
uint128 redemptionsPayable,
uint128 totalZeroYieldPayable
);
}
Integration notes
hMON.totalSupply()should match shMonad'stotalZeroYieldPayableliability.hMON.balanceOf(account)should matchshMonad.balanceOfZeroYieldTranche(account).- Secondary-market pricing should account for the 1:1 MON-backed mint path, the forgone yield, and any market-implied points premium.
- For lending markets, a liquidation path can convert seized hMON to shMON, then redeem shMON through atomic or traditional unstaking.
- Indexers should ingest standard ERC-20
TransferandApprovalevents. Legacy Degen Pool holders may become visible through one-time activation events. - If shMonad is closed, hMON transfers, approvals, and permits remain live, while new hMON minting through Degen deposits and hMON-to-shMON conversions are blocked.