{"id":28462063,"url":"https://github.com/tari-project/tari-ootle","last_synced_at":"2026-04-22T07:01:02.118Z","repository":{"id":56717580,"uuid":"523655354","full_name":"tari-project/tari-ootle","owner":"tari-project","description":"Tari Layer-2 Protocol","archived":false,"fork":false,"pushed_at":"2026-04-14T13:18:20.000Z","size":31284,"stargazers_count":24,"open_issues_count":98,"forks_count":35,"subscribers_count":5,"default_branch":"development","last_synced_at":"2026-04-14T22:13:41.897Z","etag":null,"topics":["layer-2","rust","tari"],"latest_commit_sha":null,"homepage":"https://tari.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tari-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-11T09:06:40.000Z","updated_at":"2026-04-14T13:18:03.000Z","dependencies_parsed_at":"2023-09-26T19:03:21.628Z","dependency_job_id":"c21e6e58-d519-4fe9-aca0-e16368b1389a","html_url":"https://github.com/tari-project/tari-ootle","commit_stats":null,"previous_names":["tari-project/tari-ootle","tari-project/tari-dan"],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/tari-project/tari-ootle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tari-project%2Ftari-ootle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tari-project%2Ftari-ootle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tari-project%2Ftari-ootle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tari-project%2Ftari-ootle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tari-project","download_url":"https://codeload.github.com/tari-project/tari-ootle/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tari-project%2Ftari-ootle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32122005,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["layer-2","rust","tari"],"created_at":"2025-06-07T04:08:14.439Z","updated_at":"2026-04-22T07:01:02.107Z","avatar_url":"https://github.com/tari-project.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tari Ootle\n\nThis is where you can find the cutting-edge development of the Tari smart contract layer.\n\nYou can read about the technical specifications of the Ootle in the [RFCs](https://rfc.tari.com).\n\nIf you're looking for the core Tari base layer code, it's in [this repository](https://github.com/tari-project/tari)\n\n[Documentation](https://ootle.tari.com)\n\n## Prerequisites\n\nYou will require the following tools and dependencies to successfully build the Ootle and/or run the Ootle locally via\nthe Localnet environment:\n\n- **C/C++ compiler**\n    - Linux: `gcc` or `clang`\n    - macOS: `clang` (via Xcode CLI tools)\n    - Windows: `MSVC` (via Visual Studio Build Tools)\n- **Build tools**\n    - `make`, `cmake`, or equivalent\n    - `pkg-config` (Linux/macOS)\n- **Libraries**\n    - OpenSSL development libraries (`libssl-dev`)\n    - SQLite development libraries (`libsqlite3-dev`)\n    - Protobuf compiler (`protoc`) and headers (`libprotobuf-dev`)\n- **Other**\n    - `git`\n\n- **Rust (=1.88)**: Install Rust using [rustup](https://rustup.rs), and add a WASM target:\n\n```bash\n# Install the rust version in rust-toolchain.toml\nrustup install\n# Add wasm target\nrustup target add wasm32-unknown-unknown\n```\n\n### Web UIs\n\n**Node.js (\u003e=20.x) \u0026 npm**: Node.js is required for building the validator node, indexer and wallet web UIs.\nNOTE: this is not required, and the binaries will still run and compile without building the web UIs.\n\nFollow the instructions at [node.js](https://nodejs.org/en/download) for your desired operating system and\npackage/version managers.\nWe recommend installing Node.js via [`nvm`](https://github.com/nvm-sh/nvm) to easily manage versions across projects.\n\nWe use [pnpm](https://pnpm.io/installation) for package management.\n\n## Accessing the Ootle Testnet\n\nThe Tari Ootle Wallet Daemon is available on the\nproject’s [releases page](https://github.com/tari-project/tari-ootle/releases).\nUnzip the binaries, then run:\n\n```shell\ntari_ootle_walletd --network igor -b \u003cyourdesiredconfigfolderpath\u003e\n```\n\nThis will start a wallet connected to the Igor Testnet. You can view the public Nodes here:\n\n- Validator Node: [http://18.217.22.26:12006](http://18.217.22.26:12006)\n- Indexer: [http://18.217.22.26:12502](http://18.217.22.26:12502)\n\nNavigate to http://127.0.0.1:5100 to create an account, claim test tokens and start testing features.\n\n## Running a Small Ootle Network Locally (Localnet)\n\nNOTE: This repository is under heavy development. We'll try to keep instructions up to date, but they may become\noutdated.\n\nConfirm you have installed all the prerequisites listed in the **Prerequisites** section (Rust, Node.js, npm, linux\ndependencies)\n\nThe easiest way to test out the Ootle is to use the `tari_swarm_daemon`. This will spin up all necessary MinoTari and\nOotle applications for a _localnet_ network.\n\nClone both the `tari` and `tari-ootle` repositories in the same folder:\n\n```shell\nmkdir \u003ccontainerfolder\u003e\ncd \u003ccontainerfolder\u003e\ngit clone https://github.com/tari-project/tari.git\n# Checkout the tag on the L1 repo that is recently tested. Check the workspace Cargo.toml in this repo for the correct tag if this one is outdated.\ncd tari \u0026\u0026 git checkout v5.2.0-pre.5 \u0026\u0026 cd ..\ngit clone https://github.com/tari-project/tari-ootle.git ootle\n```\n\n```shell\ncd tari\ngit checkout development\ncd ../ootle\nrustup target add wasm32-unknown-unknown\n# Creates an initial \"swarm\" config in data/swarm/config.toml\ncargo run --bin tari_swarm_daemon --release -- -c data/swarm/config.toml init\n# Build all the necessary binaries (this may take a while) and starts the swarm\ncargo run --bin tari_swarm_daemon --release -- -c data/swarm/config.toml start\n```\n\n\u003e Note: For subsequent runs, you only need to run the third command with the `-k` argument to avoid trying to\n\u003e re-register the Validator Nodes: `cargo run --bin tari_swarm_daemon --release -- -c data/swarm/config.toml start -k`\n\nThis will get you an instance of the `tari_swarm_daemon`, starting a Minotari base node, a Minotari console wallet, an\nOotle validator node, an Ootle wallet and an Indexer.\nAdditionally, it will automatically submit the validator node registration and mine blocks until the validator node is\nactive.\n\nOpen `http://localhost:8080` where you can administer the running instances, get links to the various web UIs and\nJSON-RPC endpoints, view logs and more.\n\nNOTE: `tari_swarm_daemon` is specifically for development/debugging and runs a complete local test network. Instructions\nfor running a wallet, indexer, or validator node, the feature is still in development.\n\n## Tari Validator node\n\nSee the dedicated [README](./applications/tari_validator_node/README.md) for installation and running guides.\n\n#### Creating a smart contract template\n\nSee the [tari-cli](https://github.com/tari-project/tari-cli) tool for details.\n\n## AI Coding Agent Skills\n\nThe [`docs/skills/`](docs/skills/) folder contains comprehensive development guides for building Tari Ootle templates and client applications. These skills are now published on the [documentation site](https://ootle.tari.com/skills/) and discoverable by AI agents via the standard Agent Skills endpoint.\n\n### Automatic Discovery\n\nAll skills are exposed via the standard Agent Skills Discovery endpoint:\n\n```\nhttps://ootle.tari.com/.well-known/skills/\n```\n\nAI agents that support Agent Skills can automatically discover and load your skills using this URL. No manual setup required!\n\n### Manual Installation (Optional)\n\nIf your tool doesn't support automatic discovery, copy the appropriate skill file to your agent's expected location:\n\n| Agent | Source File | Copy To |\n|-------|------------|---------|\n| [Claude Code](https://claude.ai) | `docs/skills/claude-code/SKILL.md` | `CLAUDE.md` (project root or `.claude/`) |\n| [Cursor](https://cursor.com) | `docs/skills/cursor/SKILL.md` | `.cursor/rules/tari-ootle.md` or `AGENTS.md` |\n| [GitHub Copilot](https://github.com/features/copilot) | `docs/skills/github-copilot/SKILL.md` | `.github/copilot-instructions.md` |\n| [Windsurf](https://windsurf.com) | `docs/skills/windsurf/SKILL.md` | `.windsurfrules` or `AGENTS.md` |\n| [Aider](https://aider.chat) | `docs/skills/aider/SKILL.md` | Load via `aider --read docs/skills/aider/SKILL.md` |\n| [OpenAI Codex](https://openai.com/codex) | `docs/skills/openai-codex/SKILL.md` | `AGENTS.md` (project root) |\n| [Amp](https://ampcode.com) | `docs/skills/amp/SKILL.md` | `AGENTS.md` (project root) |\n| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `docs/skills/google-gemini/SKILL.md` | `AGENTS.md` (project root) |\n| [Antigravity](https://antigravity.dev) | `docs/skills/antigravity/SKILL.md` | Per Antigravity docs |\n\nThese guides cover template authoring, resource management, access rules, client-side interaction with `ootle-rs`, testing with `tari_template_test_tooling`, the wallet CLI, and complete working examples.\n\n### Get airdropped base layer (Mino)Tari tokens to pay for fees\n\nThis is built into the testnet wallet, and faucet tokens can be obtained from the wallet web UI.\n\n### Claiming L1 burn Tari on the Ootle\n\nL1 Minotari coins are able to be burnt and claimed, the user may convert (1:1) these to Tari coins on the layer-2\nnetwork.\n\nThe easiest way to do this is in a test environment to click a button in the `tari_swarm_daemon` web UI.\n\nAfter creating an account in the Ootle wallet. Provide the account name and the amount of Tari to burn to the swarm\ndaemon. This creates the burn transaction on the Minotari wallet and provides a \"burn proof\".\nYou can then copy and paste that burn proof into the Ootle wallet web UI using the \"Claim Burn\" dialog.\n\nFor other environments, the \"manual\" process is as follows:\n\n\u003e **Note:** These steps will likely be simplified in future releases.\n\n1. **Run the Ootle wallet**  \n   Start the Ootle wallet application in your environment.\n\n2. **Generate a claim key**\n    - Use the Ootle wallet web UI **or** the `tari_ootle_wallet_cli` tool.\n    - If using the Ootle wallet, claim keys are derived from your wallet seed. Ensure you claim from the same\n      seed/account later.\n    - Record which claim public key you used for the burn. Keep your wallet seed/private key secure and never share it.\n\n3. **Open the L1 console wallet**\n    - Navigate to the **`burn`** tab.\n\n4. **Burn the desired amount of Tari**\n    - Include the claim public key you generated in step 2.\n    - ⚠ **WARNING:** You must claim using the same claim public key that was included in the burn. If you don’t have\n      access to the wallet/seed that can derive that key, you will not be able to claim the funds.\n\n5. **Copy the claim proof JSON** from the L1 console wallet.\n\n6. **Wait for the burn to be mined**.\n    - Validator nodes scan the L1 network for burnt UTXOs with special flags.\n    - Depending on the network configuration, this may take **tens to hundreds of blocks** before the burn is picked up.\n\n7. **Claim the burn**.  \n   Use the Ootle wallet web UI or the `tari_ootle_wallet_cli` tool to claim the burn using the burn proof via the **\"\n   Claim Burn\"** dialog.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftari-project%2Ftari-ootle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftari-project%2Ftari-ootle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftari-project%2Ftari-ootle/lists"}