Tab Oracle & Tab Keeper

Github repo: Tab Oracle & Tab Keeper

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.

Tab Oracle API Endpoints:

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)

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.

Last updated