Insured Feeds

These are data feeds which are insured on the scale of the entire stake of all providers in the network and hence provide economic guarantees for availability of data feed. In case of insured feeds, the provider who participates has to stake in the network and will be assigned data feeds to serve, randomly based on the stake of the provider. All the providers in the network will be ordered for a specific data feed submission. Once assigned, the provider has to submit the data feed within a specified time interval and if not submitted the provider will be slashed and a new provider will be assigned who will also be provided with a time interval and the cycle of slashing and reassignment goes on till the data feed is submitted or the entire stake in the network is slashed. Hence insured feeds provide economic guarantees that data will be submitted for the data feed and if for some reason it isn’t submitted the requestor will be compensated till the entire stake in the network. These types of feeds reduce any wastage in work done by providers compared to On demand feeds and thus are cheaper in general. Insured feeds though can only support specific types of conditions as the assignment has to be done by protocol on a global level.

Flow

We assume that providers would have already registered to Insured data feeds by staking tokens necessary to participate

  1. Providers register for the Insured data feed type by staking tokens

  2. Requestor submit a request for data feed by specifying the data feed type as Insured along with other details like enclave image to use and pick a set of conditions from the predefined conditions supported for the Insured data feeds.

  3. Assignment contract then orders all the providers to the data feed randomly and based on the amount of stake for the provider, so that providers know the order in which they have to submit in case the previous provider doesn’t submit.

  4. Assigned provider can submit the data feed to the Data Feed contract during the assigned time interval and receive rewards for the feed submission.

Step 01: Build a Job

Clients can create their own jobs – generated either via our drag-n-drop GUI interface or dropping their own custom code image along with rewards(insurance premiums) for successfully updating oracle data by specifying that job type is Insured.

Step 02: Submit Job

The job along with the job data, set of conditions to meet for acceptance of data feed can be submitted with type as Insured. Once submitted, is associated to the Assignment Contract, ready for execution. This job is published onto the marketplace.

Step 03: Insured Jobs

Insured jobs are special jobs backed by Decimal’s crypto-economic guarantees to ensure that the jobs have a multi-fold monetary compensation policy for any delays. Only jobs that meet certain criteria are eligible for Insurance coverage – meaning extremely complex or proprietary algorithms are difficult to support.

Similarly, there are dedicated agents responsible for executing these insured jobs, who can only qualify for executing these jobs through staking, compensated also through extra rewards.

The job is time-bound and pre-assigned to a series of dedicated agents. It is the responsibility of the first agent to execute this job within the given time-slot. If he fails to execute within the allocated time-frame, his stakes are slashed and the next agent in the assignment queue is assigned the responsibility – with the added bonus of winning part of the slashed funds from the previous agent.

Any feed delays are also compensated back to the client as well from part of the slashed funds.

As only one agent at a time is allocated to provide the feed, this is the most optimized option towards TEE resource usage, making it an extremely cost-efficient solution, enabling cheaper rewards for the clients.

Step 04: Rewards Allocation

Once the jobs are executed, and the data is published on-chain (either from Insured feeds or On-Demand feeds) the final Data Feed Contract verifies the conditions set by the client and allocates the corresponding job rewards to the beneficiary/s.

Last updated