# Intelligent Oracle

Design, deploy, and monitor a GenLayer Intelligent Oracle prediction market from any...

- Repository: https://github.com/internet-court/internet-court-skill (7050 stars)
- Category: Design
- License: see repository
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add internet-court/internet-court-skill --skill intelligent-oracle -g -a claude-code -y`
Codex: `npx skills add internet-court/internet-court-skill --skill intelligent-oracle -g -a codex -y`
Cursor: `npx skills add internet-court/internet-court-skill --skill intelligent-oracle -g -a cursor -y`
Gemini CLI: `npx skills add internet-court/internet-court-skill --skill intelligent-oracle -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add internet-court/internet-court-skill`

## 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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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

1. **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).
2. **Validate**, confirm the config matches the strict schema below.
3. **Deploy**, call `create_new_prediction_market` on the public factory contract. This is the parent transaction.
4. **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.
5. **Verify**, read `get_dict()` on the new oracle address immediately. Compare `title`, `potential_outcomes`, and `earliest_resolution_date` against the submitted config; only report success if they match.
6. **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:

```json
{
  "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.

The rest: https://github.com/internet-court/internet-court-skill/blob/HEAD/vendored/intelligent-oracle/intelligent-oracle/SKILL.md
