Developer docs
Tari Ootle Playground
Build on-chain applications on the Tari L2 network. Agent-first documentation for tapplet development.
One of the key use cases for Tari (and the Ootle) that will emerge is agentic payments. To that end, while this documentation is here for humans, this page has been designed with an “agent-first” mindset. If you use any coding agent, point them at this page, and they will be able to begin developing Tari applets for you.
What You’ll Learn
- Set up a wallet: Connect a wallet to the
esmeraldatestnet. - Template Development Basics: Understand the abstractions and structure of the Ootle template library.
- Build Your First Template: Follow a step-by-step code walkthrough to create a functional template (smart contract).
- Publish to the Network: Learn the process of publishing your templates to the Ootle network.
- Execute Transactions: Use your published templates by executing them within transactions.
What You’ll Achieve
By the end of this guide, you will have a solid foundation in Tari Ootle development. You’ll be able to write, test, and publish Rust-based smart contracts, interact with the Ootle network, and understand how to manage digital assets and state on-chain.
Key Sections
Set up a Wallet
Download and install a wallet. You’ll need this to publish templates. Wallet Setup
Guides
Step-by-step tutorials and practical examples to help you build, test, and publish your Ootle Templates. Learn how to write templates, manage resources, handle events, and implement access control. Explore the Guides
Reference
Detailed API documentation for all the types, macros, and modules provided by the tari_template_lib and
tari_template_lib_types crates.
View the Reference
Crate Docs
Indexer API docs
What is an Ootle Template?
In the Tari ecosystem, an “Ootle Template” is analogous to a smart contract on other blockchain platforms. It is compiled into WebAssembly (WASM) and defines the logic and state transitions for on-chain applications.
Key Features
- Rust-Native Development: Leverage the power and safety of Rust to write your on-chain logic.
- Ergonomic: Simplified interfaces for interacting with the Tari Ootle engine, including resource management, component creation, and event emission.
- Interoperability: Designed to integrate seamlessly within the broader Tari ecosystem.
- Security-Focused: Built with security best practices in mind, providing tools to help developers write secure code.