# Bespoke Oracles

### <mark style="color:blue;">What are Oracles?</mark>

In the context of blockchain, oracles act as bridges between smart contracts and external data sources. Smart contracts, which are contracts with the terms of the agreement directly written into code, often require real-world data to trigger and execute certain conditions. Oracles facilitate this interaction by securely fetching and providing external data to the blockchain.

### <mark style="color:blue;">Approches for Oracles</mark>

Oracles today have this inherent trade off between decentralization, cost and speed. Oracles which are centralized are fast and cheap and the ones who are decentralized are slow and inefficient. There have been attempts to solve this problem and the solutions lie on this spectrum of centralized to decentralized by making the above tradeoffs.

### <mark style="color:blue;">Ideal Oracle</mark>

Ideally an oracle should be able to provide information with the following characteristics

* secure (results from oracle are provable onchain)
* cost efficient (oracle data is calculated only once for max efficiency)
* Frequency (oracle can update data in sub milli second intervals)
* Permissionless
  * For agents (agents who feed data to oracles should be able to join without any whitelisting)
  * For oracle feed (oracle should be able to execute arbitrary logic before submitting the feed)
  * For users (any user should be able to join and specific requests)

We will explore various approaches to oracles and how close are they to the ideal oracle in ecosystem-comparision page.

### <mark style="color:blue;">Decimal's approach</mark>

The purpose of Decimal is to make data available for all – in a **reliable, accurate and fast manner**.&#x20;

* The data should be beyond reproach, always verifiable and auditable.
* The system should be sustainable, involving efficient practices to incur minimal wastage and costs for the users and the environment.
* Everyone is unique, and so are their data requirements. Hence, the oracles providing these data should also be equally customizable.
* The data should be accessible for all – with minimal onboarding overheads.

***

[<mark style="color:orange;">In short</mark> – your data, exactly how you want it, when you want it.](#user-content-fn-1)[^1]

[^1]:


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.decimal.at/use-cases/bespoke-oracles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
