Tab Oracle & Tab Keeper
Last updated
Last updated
Github repo: Tab Oracle & Tab Keeper
Oracle feed providers for the ShiftCTRL Tab Protocol are approved through governance. These providers are responsible for submitting feed data at fixed intervals (e.g., every 5 minutes) to the Tab Oracle module. The Tab Oracle processes all submitted feeds to derive the median exchange rates for all active Tab currencies.
A minimum of three providers is required to establish a median rate. If a median rate cannot be determined for three consecutive intervals, the affected Tab is set to a disabled state on-chain, preventing any vault operations involving that Tab. Vault operations can only be re-enabled once a valid median rate is established for three consecutive intervals.
Additionally, the Tab Oracle module tracks the performance of oracle feed providers. Each provider’s submission count is logged on-chain by calling the PriceOracleManager.submitProviderFeedCount
function.
The Tab Keeper module comprises two submodules that operate at fixed intervals to monitor vault reserve ratios. These submodules are responsible for triggering liquidations when necessary and updating risk penalties onchain.
For detailed information on risk penalty calculations, please refer to the whitepaper.
Endpoint | Description |
---|---|
/api/v1/auth/create_or_reset_api_token/[provider_pub_address]
Authorized provider calls this endpoint to generate or reset API token to submit currrency rate data
/api/v1/feed_provider/[provider_pub_address]/feed_submission
Authorized provider calls this endpoint to submit currency rate data
/api/v1/tab/list
Retrieve Tab details
/api/v1/peggedTab/list
Retrieve Pegged Tab details
/api/v1/price_history/[currency]
Protected endpoint to retrieve historical prices
/api/v1/median_price/[currency]
Protected endpoint to retrieve latest median price
/api/v1/median_price/[wallet_address]/[currency]
Proteced endpoint to retrieve signed latest median price
/api/v1/feed_provider/list
Protected endpoint reserved for internal usage (e.g. used by tab-ui module)