Please describe your proposed solution
Marlowe 2025
This is one of a set of proposals that together consolidate the Marlowe infrastructure and improve the developer experience, enhance Marlowe with an innovative oracle protocol, developed in collaboration with leading Cardano oracle providers, and design the successor core language, Marlowe V2, working with the Marlowe developer ecosystem.
Increasing Oracle’s Accessibility on Cardano
The current oracle systems on Cardano operate predominantly on a fixed, push-based model, which limits the ability to meet diverse and less commonly used data needs for smart contracts. Our solution, the Marlowe Oracle Protocol, aims to solve this by shifting towards a pull-based model, where oracles respond dynamically to on-chain data requests, ensuring better adaptability and data coverage for a wider array of contracts.
Our approach is centered around enhancing flexibility, transparency, and simplicity. We want to make the process of using oracles in smart contracts much more accessible to developers, whether they are experienced with Cardano tools or are just getting started with Marlowe, Aiken, or PlutusTx. The protocol will also include user-friendly tools, developed in TypeScript, Rust, and Haskell, to facilitate oracle accessibility for the end users and simplify integrations for developers as well as data providers.
Marlowe Oracle Specification
We want to formalize the “Marlowe Oracle Protocol” and submit it as a detailed Cardano Improvement Proposal (CIP). There are no guarantees that the proposal will be accepted but the process itself will allow us to approach the problem in a systematic manner and to create concise specifications.
Collaborations with Oracle Providers
To ensure the success and adoption of the Marlowe Oracle Protocol we are collaborating with key partners in the Cardano ecosystem:
- Wolfram Blockchain Labs: We are working pretty closely with the Team already and they are in the process of deploying their oracle solution on the mainnet and are really open to integrate the new approach into their future product release.
- Charli3 Oracles: We already initiated discussions with Charli3, and they expressed interest in our proposal and future integrations.
- Other oracle providers: We have spoken to other providers, including Orcfax and we hope to work closely with them on this project.
Marlowe Runtime and TS-SDK Adaptations
We will enhance the Marlowe Runtime to better support the Marlowe Oracle Protocol. This adaptation will include more precise “merkleization splitting” so developers are able to specify division points which preserve semantically meaningful subcontracts from the oracle perspective. This capability will be also exposed in our TypeScript SDK and examples.
Data Providers Toolkit
Ready To Use Oracle Service
We will expand on our oracle CLI application, which is currently a basic request harvester and data provider, transforming it into a fully operational, standalone system service. This minimal but complete implementation will serve as an MVP for the Marlowe Oracle Protocol. The goal is to deliver an out-of-the-box solution that requires minimal configuration, enabling oracle operators to start providing data points using the new emerging standard.
Customizable TypeScript Example and SDK
Additionally we will create standalone TypeScript examples which will demonstrate to the oracle builders how to discover and respond to the data point requests on the chain. These examples should be easy to customize and integrate with existing systems and complementary to the stand alone system service delivered separately.