Skip to content

PSM Parameters

This page lists all configurable parameters and deployed addresses for the RAAC Peg Stability Module with their current mainnet values.

📖 View PSM Vault Documentation


Tokens

Parameter Value
Base Asset (pmUSD) 0xC0c17dD08263C16f6b64E772fB9B723Bf1344DdF
Savings Token (sUSDS) 0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD
Share Name RAAC Peg Stability Module sUSDS
Share Symbol rpsm-sUSDS
Share Decimals 18

Deposit / swap surface

deposit() accepts sUSDS only. Arbitrageurs enter pmUSD exclusively via swap(pmUSD → sUSDS). There is no mint() path.


Deployed Contracts

Mainnet

Contract Address
PSMVault (Proxy) 0xB2102B4d8802648EC6A9e89ACD46b4B799833469
PSMVault (Implementation) 0x8819dCd779E3a44052A40f117999063740C3393c
RateProvider 0x9a6b5BDA2128e6341175c79E43Cd2A7E0C5F5b21
ProxyAdmin Owner 0xCa3144AAD1f75557E68B16C8C7e893112418f13C

RateProvider

The RateProvider composes sUSDS's on-chain exchange rate with a Chainlink USDS/USD feed to price sUSDS in pmUSD terms (pmUSD = $1 internally, so USD = pmUSD).

Parameter Value
Base Asset 0xC0c17dD08263C16f6b64E772fB9B723Bf1344DdF (pmUSD)
Savings Token 0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD (sUSDS)
Underlying Price Feed (USDS/USD) 0xfF30586cD0F29eD462364C7e81375FC0C71219b1
Staleness Threshold 86,400 s (24 h)
Oracle Chain sUSDS.convertToAssets(1e18) × USDS/USD → pmUSD
Zero-Rate Protection require(rate > 0) on every call
Rounding getRate() Floor / getRateRoundUp() Ceil

No pmUSD/USD oracle

Since the vault asserts pmUSD = $1 internally, the USD → pmUSD leg is a no-op and no pmUSD/USD feed is needed. This removes an entire oracle attack surface.


Vault Economics

Parameter Value Notes
swapFee 25 bps (0.25%) Applied to pmUSD → sUSDS swaps. Retained in vault.
minWithdrawFee 50 bps (0.5%) Floor of the dynamic withdraw fee.
maxWithdrawFee 300 bps (3%) Ceiling of the dynamic withdraw fee.
dripDuration 2,419,200 s (28 days) Window over which donate() vests into totalAssets().
withdrawTime 86,400 s (1 day) Cooldown before a redeem request becomes claimable.
withdrawTimeLimit 86,400 s (1 day) Window in which the claim must execute after the cooldown.
reserveRatioFloor 20% (0.20e18) Swaps pause if post-swap sUSDS reserves fall below 20% of total assets.
navFloor $1.00 (1e18) NAV threshold for the circuit breaker (when enabled).
circuitBreakerEnabled true at launch Governance-toggled. Blocks pmUSD → sUSDS swaps if pmUSD.getNav(0) < navFloor.
baseAssetModule address(0) Not set at launch — raw pmUSD is held directly.
rebalancer address(0) Not set at launch — no automated pmUSD → sUSDS recycling.

Dynamic Withdraw Fee Formula

feeBps = minWithdrawFee + (pmUSDValueInPool / totalAssets) × (maxWithdrawFee - minWithdrawFee)
  • Healthy vault (mostly sUSDS) → fee approaches minWithdrawFee (0.5%).
  • Stressed vault (mostly pmUSD) → fee approaches maxWithdrawFee (3%).
  • The fee stays inside the vault and accrues to remaining shareholders.

Roles

All v1 roles are held by the same multisig — 0xCa3144AAD1f75557E68B16C8C7e893112418f13C.

Role Capability
DEFAULT_ADMIN_ROLE Grant / revoke any role. Owns the ProxyAdmin.
GOVERNANCE_ROLE Update swapFee, withdraw fee bounds, cooldown params, reserveRatioFloor, navFloor, rateProvider, baseAssetModule, rebalancer.
GUARDIAN_ROLE Pause / unpause the vault.
OPERATOR_ROLE Operational hooks (e.g. manual rebalance triggers once wired).
DONOR_ROLE Call donate(amount) to stream pmUSD into the share price over dripDuration.