openOracle is a trust-minimized, permissionless mechanism for resolving token prices onchain.An openOracle report is two limit orders: a buy order and a sell order at the same price. These orders remain active until either the timer runs out or one side is taken. To take one of the orders, the taker must replace both orders with larger orders at a new price, and the timer resets. When the timer runs out without another dispute, the final surviving price can be used by applications.openOracle is not designed to be a shared feed like Chainlink or an AMM-derived price oracle. Instead, consumers customize the oracle game parameters for their specific use case, including initial liquidity, timer length, fees, and other settings. For example, two parties can agree to a swap and then create a fresh oracle game to determine the execution price. The same approach can be used for liquidations, derivatives settlement, lending, or any other application that needs token prices.The contracts have no admin keys, no upgradeability, and no privileged roles. Anyone can create, dispute, or interact with oracle games. All code is open source under the MIT license.Some deployments may sit on L2s and therefore inherit trust assumptions from the underlying sequencer.
The contract and protocol are still in the research stage but the system is on-chain so we can test the economic incentives since these are critical to the design.We have worked on the contract for several months; however, it has not yet been audited. Users should be prepared to lose all funds when interacting with unaudited contracts. Another thing that has not been audited is the game theory and statistics. Users should be aware that even in the case of flawless Solidity code it is highly likely there are math and game theory errors that not only render this endeavor moot but also put user funds at risk. Even if it works, user misconfiguration of either oracle parameters or trading bots can lead to the loss of funds. If all of the aforementioned is done perfectly, the underlying blockchain can still fail and users can lose funds. Proceed with care.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"openOracle","colors":{"primary":"#00CF9C","light":"#00CF9C","dark":"#0a0a0a"},"logo":{"light":"https://mintcdn.com/openoracle/U4lTbao-51w4qpSW/logo-light.svg?fit=max\u0026auto=format\u0026n=U4lTbao-51w4qpSW\u0026q=85\u0026s=7cab4632108a10d7783fa0566fef0f8b","dark":"https://mintcdn.com/openoracle/U4lTbao-51w4qpSW/logo-dark.svg?fit=max\u0026auto=format\u0026n=U4lTbao-51w4qpSW\u0026q=85\u0026s=f76e5ef59387ce6616220541932ed8b0"},"favicon":"https://mintcdn.com/openoracle/TDFh-vE_gIrVCTZK/favicon-docs.svg?fit=max\u0026auto=format\u0026n=TDFh-vE_gIrVCTZK\u0026q=85\u0026s=fb54dc620a157a63cd933254487b4c59","seo":{"metatags":{"og:image":"https://docs.openoracle.org/og-docs.png","og:image:width":"1200","og:image:height":"630","og:image:type":"image/png","twitter:image":"https://docs.openoracle.org/og-docs.png","twitter:image:width":"1200","twitter:image:height":"630"}},"fonts":{"heading":{"family":"Berkeley Mono","weight":700,"source":"public/fonts/Berkeley Mono Variable.woff2","format":"woff2"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openoracle","hasAudioNarration":false,"actualSubdomain":"openoracle","customDomains":["docs.openoracle.org"],"gitSource":{"type":"github","owner":"openoracleproject","repo":"openoracle-monorepo","deployBranch":"main","contentDirectory":"documentation","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae20246f9cefd8f8d7a4970","collectionId":"d21dfaaa-7bf0-411b-aee7-12c64fc49891","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae20246f9cefd8f8d7a4970"},"entitlements":{},"buildId":"6ae20246f9cefd8f8d7a4970","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"openPunt","count":19},{"language":"default","tag":"openLend","count":16},{"language":"default","tag":"openOracle","count":15},{"language":"default","tag":"Resources","count":9},{"language":"default","tag":"Contract Reference","count":8},{"language":"default","tag":"openSwap","count":8},{"language":"default","tag":"Introduction","count":6},{"language":"default","tag":"Documentation","count":6},{"language":"default","tag":"Technical Details","count":6},{"language":"default","tag":"Unique mechanics","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","href":"/_mintlify/custom/openoracle/fb0f5ea2f4587486/custom.css"}],"page":{"pagePath":"openoracle/introduction","slug":"/openoracle/introduction","pageMetadata":{"title":"openOracle","sidebarTitle":"Introduction","description":null,"href":"/openoracle/introduction"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`openOracle is a trust-minimized, permissionless mechanism for resolving token prices onchain.`}),`\n`,_jsx(_components.p,{children:`An openOracle report is two limit orders: a buy order and a sell order at the same price. These orders remain active until either the timer runs out or one side is taken. To take one of the orders, the taker must replace both orders with larger orders at a new price, and the timer resets. When the timer runs out without another dispute, the final surviving price can be used by applications.`}),`\n`,_jsx(_components.p,{children:`openOracle is not designed to be a shared feed like Chainlink or an AMM-derived price oracle. Instead, consumers customize the oracle game parameters for their specific use case, including initial liquidity, timer length, fees, and other settings. For example, two parties can agree to a swap and then create a fresh oracle game to determine the execution price. The same approach can be used for liquidations, derivatives settlement, lending, or any other application that needs token prices.`}),`\n`,_jsx(_components.p,{children:`The contracts have no admin keys, no upgradeability, and no privileged roles. Anyone can create, dispute, or interact with oracle games. All code is open source under the MIT license.`}),`\n`,_jsx(_components.p,{children:`Some deployments may sit on L2s and therefore inherit trust assumptions from the underlying sequencer.`}),`\n`,_jsx(Heading,{level:`2`,id:`disclaimer`,children:`DISCLAIMER`}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`The contract and protocol are still in the research stage but the system is on-chain so we can test the economic incentives since these are critical to the design.`}),_jsx(_components.p,{children:`We have worked on the contract for several months; however, it has not yet been audited. Users should be prepared to lose all funds when interacting with unaudited contracts. Another thing that has not been audited is the game theory and statistics. Users should be aware that even in the case of flawless Solidity code it is highly likely there are math and game theory errors that not only render this endeavor moot but also put user funds at risk. Even if it works, user misconfiguration of either oracle parameters or trading bots can lead to the loss of funds. If all of the aforementioned is done perfectly, the underlying blockchain can still fail and users can lose funds. Proceed with care.`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"openOracle","sidebarTitle":"Introduction","description":null,"href":"/openoracle/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"DISCLAIMER","slug":"disclaimer","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/openoracle/8d396e0d9fab644d/grain.js"],"subdomain":"openoracle","siteName":"openOracle","title":"openOracle - openOracle","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-17T08:13:22.059Z","originalFileLocation":"openoracle/introduction.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"openOracle\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"openOracle - openOracle\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"openOracle\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openoracle.org/openoracle/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.openoracle.org/og-docs.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"openOracle - openOracle\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.openoracle.org/og-docs.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/openoracle/4U7-r7MOZWBqUEI3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"openOracle\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00CF9C\">\u003cmeta data-mint-head name=\"og:image:type\" content=\"image/png\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openoracle.org/openoracle/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/openoracle/introduction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openoracle.org/#organization\",\"name\":\"openOracle\",\"url\":\"https://docs.openoracle.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openoracle/U4lTbao-51w4qpSW/logo-light.svg?fit=max\u0026auto=format\u0026n=U4lTbao-51w4qpSW\u0026q=85\u0026s=7cab4632108a10d7783fa0566fef0f8b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openoracle.org#website\",\"name\":\"openOracle\",\"url\":\"https://docs.openoracle.org\",\"publisher\":{\"@id\":\"https://docs.openoracle.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openoracle.org/openoracle/introduction#webpage\",\"url\":\"https://docs.openoracle.org/openoracle/introduction\",\"name\":\"openOracle\",\"dateModified\":\"2026-10-17T08:13:22.059Z\",\"isPartOf\":{\"@id\":\"https://docs.openoracle.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openoracle.org/openoracle/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openoracle.org/openoracle/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"openOracle\",\"item\":\"https://docs.openoracle.org\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"openOracle\",\"item\":\"https://docs.openoracle.org/openoracle/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openoracle.org/openoracle/introduction#article\",\"headline\":\"openOracle\",\"name\":\"openOracle\",\"url\":\"https://docs.openoracle.org/openoracle/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openoracle.org/openoracle/introduction#webpage\"},\"image\":\"https://docs.openoracle.org/og-docs.png\",\"dateModified\":\"2026-10-17T08:13:22.059Z\",\"publisher\":{\"@id\":\"https://docs.openoracle.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openoracle.org#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"openOracle\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"openOracle","nav":{"global":null,"tabs":[{"tab":"openOracle","groups":[{"group":"Home","pages":[{"title":"openOracle","description":null,"href":""}]},{"group":"Documentation","pages":[{"title":"openOracle","sidebarTitle":"Introduction","href":"/openoracle/introduction"},{"title":"Advantages","description":null,"href":"/openoracle/advantages"},{"title":"Oracle Life Cycle","href":"/openoracle/oracle-life-cycle"},{"title":"Contracts","href":"/openoracle/contracts"},{"title":"Discord \u0026 Socials","href":"/openoracle/discord-socials"},{"title":"Terms of Service \u0026 Disclaimer","href":"/openoracle/tos-disclaimer"}]},{"group":"Contract Reference","pages":[{"title":"Smart Contract Reference","href":"/openoracle/game-guide"}]},{"group":"Technical Details","pages":[{"title":"Terminology","sidebarTitle":"Terminology","href":"/openoracle/terminology"},{"title":"Oracle Accuracy\n\u0026 Cost\n","sidebarTitle":"Oracle Accuracy \u0026 Cost","href":"/openoracle/oracle-accuracy-cost"},{"title":"Attack\nVectors\n","sidebarTitle":"Attack Vectors","href":"/openoracle/attack-vectors"},{"title":"Attack Vectors (Inclusion)","sidebarTitle":"Attack Vectors (Inclusion)","href":"/openoracle/attack-vectors-inclusion"},{"title":"Economic\nBounds\n","sidebarTitle":"Economic Bounds","href":"/openoracle/economic-bounds"},{"title":"Guardrails","sidebarTitle":"Guardrails","href":"/openoracle/guardrails"}]},{"group":"Brand","pages":[{"title":"Brand Guidelines","href":"/brand/guidelines"}]}]},{"tab":"openSwap","pages":[{"title":"openSwap","href":"/openswap-v2/introduction"}]},{"tab":"openLend","pages":[{"title":"openLend","href":"/openlend/introduction"}]},{"tab":"openPunt","pages":[{"title":"openPunt","href":"/punt/introduction"}]}]},"title":"openOracle - openOracle","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}