Oracles
Besides asset transfers and intent management, transactions also permit specifying data to associate with an address that intents can then refer to. We call the data associated with an address an "Oracle", but often adopt the same term to mean the address itself.
This feature allows for intents to depend on information not known in advance or simply time-varying. For instance
- exchanges can announce on their website the saline address of their oracle and regularly post market rates to it
- organizations can maintain a whitelist of vetted counterparties
- analysis engines can post risk scores
Enhancing intent expressions with oracles unlocks a large number of dynamic behaviors - some examples:
- when the price of BTC is over X, use intent A, otherwise intent B
- reject blacklisted addresses
- reject risky transactions
- take into account current interest rates, credit scores, liquidity or stocks
Additionally, when used with contracts (e.g. options), oracles make it possible to model derivatives and other complex financial instruments.
Since oracles can affect transactions, the value on an oracle depends on how much trust there is on the entity controlling its address. By rewarding oracle owners when their data is consulted, they're incentivized to provide correct and up-to-date information.