Skip to main content
The rate model uses a smooth utilization polynomial. It is not a two-slope kinked model.
All contract values are WAD-scaled. Defaults are c1 = 0.1, c2 = 0.3, c3 = 3.5; these are configurable, not immutable market rates. get_coefficients returns current values. The admin setter rejects coefficients whose implied 100%-utilization APR exceeds 1000%. Utilization is clamped to 100%, and inputs to the borrow-rate calculation are capped at 10^36. The constructor accepts a Registry argument for deployment compatibility but does not persist or use it. The model’s admin may change coefficients and upgrade WASM. See Math Reference for integer scaling and interest rounding.

Function signatures

These signatures are copied from the reviewed Rust implementation. env is supplied by Soroban and is not a transaction argument. Result errors and panics must be handled by the caller; simulation does not guarantee later execution. Public methods include privileged and internal-contract callbacks, not just user entrypoints.

__constructor

set_coefficients

get_coefficients

get_admin

upgrade

get_borrow_rate_per_sec

get_utilisation_ratio

Source reference

  • Protocol_V1_Soroban_testnet/contracts/RateModelContract/src/rate_model.rs