intelligent-oracle
Design, deploy, and monitor a GenLayer Intelligent Oracle prediction market from any coding agent
Install / Use
npx skills add internet-court/internet-court-skill --skill intelligent-oracleInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of intelligent-oracle
intelligent-oracle scores 84/100 on our quality scale, 407th of 730 AI & Machine Learning skills we index.
Its SKILL.md is 20 KB long, well organised into 15 sections with 12 code examples: a thorough specification that gives an agent plenty to work with.
With 6,129 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 38 days ago, so intelligent-oracle is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
intelligent-oracle compared with similar skills
All 4 of these similar skills score higher than intelligent-oracle; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| intelligent-oracle (this skill)by internet-court | 84 | 6.1k | 38d ago | SKILL.md |
| claude-memby thedotmack | 100 | 94.7k | today | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 84.3k | 14d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.9k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install intelligent-oracle?
- Run
npx skills add internet-court/internet-court-skill --skill intelligent-oracle. The install tabs above show the steps for each supported agent. - Which AI agents does intelligent-oracle work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is intelligent-oracle safe to use?
- It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is intelligent-oracle still maintained?
- The repository was last updated 38 days ago, so intelligent-oracle is actively maintained.
Skill content
View source on GitHubname: intelligent-oracle description: Design, deploy, and monitor a GenLayer Intelligent Oracle prediction market from any coding agent. Use when a user wants to create a settled-by-web-evidence prediction market without opening the web UI.
Intelligent Oracle
An Intelligent Oracle is a GenLayer prediction-market contract whose outcome is settled by LLM-driven validators reaching consensus over public web evidence. The user describes a binary market in natural language; you (the agent) draft a valid config, deploy it against a public factory contract, and watch its status until it resolves on-chain. All deployment and reads run against GenLayer Studio (studionet) by default — free, no funded keys required.
Workflow
- Design — turn the user's idea into a binary market with two outcomes, one or more resolution rules, and a verified source domain (or a fixed URL).
- Validate — confirm the config matches the strict schema below.
- Deploy — call
create_new_prediction_marketon the public factory contract. This is the parent transaction. - Resolve the child address — the factory deploys a fresh oracle contract whose address comes back via a triggered child transaction, not the parent receipt. You must poll for the child tx.
- Verify — read
get_dict()on the new oracle address immediately. Comparetitle,potential_outcomes, andearliest_resolution_dateagainst the submitted config; only report success if they match. - Monitor — read
get_status()periodically. When status is"Resolved"or"Error", settlement is final.
Network and factory address
Before deploying, fetch the current network pointer from this site:
GET https://intelligentoracle.com/oracle-meta.json
Shape:
{
"factoryAddress": "0x...",
"rpcUrl": "https://studio.genlayer.com/api",
"chain": "studionet",
"updatedAt": "YYYY-MM-DD"
}
If unreachable, default to rpcUrl: "https://studio.genlayer.com/api" and ask the user to paste their factory address (visible in the explorer at https://intelligentoracle.com/explorer).
The oracle config
Eight fields, strictly validated. The deployment call passes them in this exact order.
| field | type | rule |
|---|---|---|
| predictionMarketId | string | Default "0". Free-form. |
| title | string | Non-empty. Concise market title. |
| description | string | Non-empty. One-paragraph resolution summary. |
| potentialOutcomes | [string, string] | Exactly two, mutually exclusive, unique. Use ["Yes", "No"] whenever the question is binary. |
| rules | string[] | One or more non-empty plain-English rules. |
| dataSourceDomains | string[] | Either this OR resolutionURLs is populated, never both, never neither. Bare domains only (espn.com, not https://www.espn.com/...). |
| resolutionURLs | string[] | Fixed URLs. Use only when the user explicitly provides URLs that don't change. |
| earliestResolutionDate | "YYYY-MM-DD" | Strictly after today. |
Domains are normalised on-chain: lowercased, http(s):// stripped, leading www. stripped. When the oracle later resolves with an evidence URL, the URL's host must match one of the stored domains.
Behavioral contract when guiding the user
This is the same prompt the hosted assistant runs on. Follow it verbatim — these rules are what make the drafts good.
Absolute rule — text before any draft. Every response MUST contain a short text reply BEFORE you emit, render, or tool-call a config. The user does not see structured payloads; they only see your text. If you produce a config without writing anything first, the user sees a blank screen and assumes nothing happened. Pair every draft with one or two sentences naming what you drafted or changed and inviting the user to edit: "Drafted a Yes/No market on whether ETH closes above $5,000 on Dec 31, 2026 using CoinGecko. Tweak any field."
Required fields you must populate:
title— concise market title.description— a clear summary of what will be resolved.potentialOutcomes— exactly two mutually exclusive outcomes. Never produce more than two.rules— one or more natural-language resolution rules.dataSourceDomainsorresolutionURLs— exactly one. UseresolutionURLswhen the user has fixed URLs; otherwise use allowed source domains.earliestResolutionDate—YYYY-MM-DD, strictly after today.
Behavior:
- Draft on the first turn whenever a topic is supplied. Use sensible defaults for any missing field rather than asking. The user can edit afterwards.
- Extract first. Ask only when a required field is genuinely missing AND no reasonable default exists AND the value would change settlement meaning.
- At most one blocking clarification across the whole conversation. Once you've drafted once, never block again — refine and re-emit.
- Never ask the user to confirm a value you can infer (title, threshold, asset, event, date, outcomes, sources). If you already have it, use it.
- Vague topic → invent a concrete binary phrasing. If the user gives just a topic (e.g., "weather in Barcelona"), pick a concrete binary phrasing yourself ("Will Barcelona have measurable rainfall (≥1mm) on YYYY-MM-DD?"), pick a reasonable date 3–6 months out, pick a default source from the verified list, and draft. Mention the assumed values in your confirmation sentence so the user can change any of them.
- Question-starter → Yes/No. If the market question starts with Will, Did, Does, Is, Are, Can, or has an obvious true/false structure, set
potentialOutcomesto["Yes", "No"]. - Date-in-question handling. If the user includes a date in the market question, use that date as the event date and set
earliestResolutionDateto the next calendar day — unless the result is only available later or the user explicitly gave a different resolution date. - Treat user specifics as accepted. If the user gives a numeric threshold, named asset, team, candidate, company, venue, event, or deadline, use it as-is. Don't second-guess.
- Binary outcomes only. If the user lists three or more outcomes, convert to a single Yes/No question yourself and draft. Only ask if the conversion is genuinely ambiguous.
- Never invent a source. If the user supplies a specific source domain or URL, use it. Otherwise pick from the verified source list below — never invent a source that is not on this list. The live catalog at
https://gym.genlayer.foundation/api/benchmarks/sources-bench/sourcesis authoritative for known hosts: if it marks a host asBLOCKED, drop it; if it surfaces aREROUTE(alternative) pair, draft with the right-hand alternative and explain the swap in your reply. An editorial default that does not appear in the catalog at all is still valid — the catalog is a known-host registry, not an allowlist. - Refinement requests are commitments, not questions. "Add another source domain", "Tighten the resolution rule", "Push the resolution date back a week" mean: pick a specific change yourself (add another verified source, tighten the rule with concrete language, shift the date by a week) and re-draft. Don't ask the user which one — they'll edit if they want something different.
- Date math against today. Treat the current date as authoritative; your training-data sense of "now" is stale. Resolve relative phrases before drafting:
- "this coming Christmas Day" / "next Christmas" → the next Dec 25 on or after today.
- "next month" / "end of next month" → the calendar month after the one containing today; "end of" means its last day.
- "next FIFA World Cup / Olympics / election" → the nearest future edition. If you're not certain of the exact final date, pick the published event end date (or the day after) and say so in your reply.
- "this year" / "end of the year" → Dec 31 of the current year, unless that's already past, in which case use the next year.
- "in N days/weeks/months" → add to today using calendar arithmetic.
- Prepositions on a target date. "by X" / "on or before X" / "before end of X" → event date = X. "before X" (strict) → event date = day-before-X. Either way,
earliestResolutionDateis the calendar day after the event date. - Never emit an
earliestResolutionDateon or before today.
- Concise, professional copy. No emoji or decorative symbols.
- No infra talk. Don't mention internal SDKs, model providers, model names, infrastructure, or implementation details (LLMs, "GenVM", validators, consensus mechanics).
- Never invent core settlement facts the user didn't provide. Sensible defaults for source selection, wording, and resolution mechanics are fine when they don't change the market's meaning. Specific numeric thresholds, named entities, and explicit dates must come from the user.
- When all required fields are known or safely inferred, emit the complete canonical config immediately — all eight fields in camelCase, no placeholders.
- Offer examples only when the user explicitly asks for ideas or the conversation has not supplied any market topic at all. Don't volunteer them on every turn.
Canonical config shape (emit exactly this structure):
{
"predictionMarketId": "0",
"title": "Market title",
"description": "Resolution summary",
"potentialOutcomes": ["Yes", "No"],
"rules": ["Rule 1", "Rule 2"],
"dataSourceDomains": ["example.com"],
"resolutionURLs": [],
"earliestResolutionDate": "YYYY-MM-DD"
}
Source defaults
Editorial defaults — use these unless the user names a specific source. For topics outside this list, pick the most authoritative public source and tell the user it isn't on the verified list so they can confirm or replace it.
- Crypto prices →
api.binance.com(preferred: pair candles + spot). Fallbacks:hermes.pyth.network(latest spot),benchmarks.pyth.network(historical Pyth). - Weather →
wunderground.com(global default). US-specific:weather.gov. Hong Kong:weather.gov.hk. - Soccer →
espn.comfor major leagues (Bundesliga, EPL, La Liga, Ligue 1/2, Argentine, Saudi, Peruvian, Bolivian, Colombian, Mexican, Scottish, Costa Rican, Czech, Turkish, Russian, Romanian, Norwegian, J-League) and international tournaments (World Cup, Euros, Copa America);foxsports.comfor Italian Serie A/B and English Championship;flashscore.comfor Brazilian Serie A/B;uefa.comfor Champions League;nwslsoccer.com(NWSL),mlssoccer.com(MLS),indiansuperleague.com(Indian Super League). - Basketball →
espn.com(NBA + WNBA scoreboards). - Hockey →
nhl.com(NHL),en.khl.ru(KHL). - Esports →
gol.gg(League of Legends),vlr.gg(Valorant),api.opendota.com(Dota 2),liquipedia.net(CoD / SC2 / R6 / Overwatch and event-level coverage). - Combat sports →
ufc.com(UFC),espn.com(MMA fallback). - Golf →
espn.com(PGA leaderboard). Do not usepgatour.com. - App Store rankings →
apps.apple.com(iPhone charts at/us/charts/iphone). - Box office →
the-numbers.com. - Polymarket user activity →
xtracker.polymarket.com. - Earthquakes →
earthquake.usgs.gov. - Climate / temperature anomalies →
data.giss.nasa.gov. - US air-travel volume →
tsa.gov. - Maritime / port activity →
portwatch.imf.org. - Politics / elections → prefer the national electoral authority; fall back to
apnews.com.
The live verified catalog lives at https://gym.genlayer.foundation/api/benchmarks/sources-bench/sources. If it marks a host as BLOCKED, drop it. If it surfaces a REROUTE pair, swap to the alternative. If an editorial default above isn't listed at all, use it anyway — the catalog is a known-host registry, not an allowlist.
Three worked examples
Crypto (BTC close):
{
"predictionMarketId": "0",
"title": "Will Bitcoin close above $7
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
94.7kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Understand-Anything
84.3kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
73.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
