✓ Verified
📁 File Management
✓ Enhanced Data
Rue Chialisp
Create Chia blockchain puzzles using Rue, a type-safe language that compiles to CLVM.
- Rating
- 4.1 (269 reviews)
- Downloads
- 2,934 downloads
- Version
- 1.0.0
Overview
Create Chia blockchain puzzles using Rue, a type-safe language that compiles to CLVM.
Complete Documentation
View Source →
Rue Chialisp Skill
Build type-safe Chia puzzles using Rue. Compile to CLVM bytecode for on-chain deployment.
Setup
bash
# Check dependencies
scripts/rue-check.sh
# Initialize project
scripts/rue-init.sh my-project
Quick Build
bash
cd my-project
rue build # Compile all puzzles
rue build puzzles/x.rue # Compile one
brun "$CLVM" "(args)" # Simulate execution
Natural Language → Puzzle
When user describes a puzzle in plain language, map to these patterns:
| User Says | Pattern | Example File |
|---|---|---|
| "only spend after block X" | Timelock | examples/timelock.rue |
| "requires N signatures" | Multisig | examples/multisig.rue |
| "burn X%" | Partial Burn | examples/burn_10_percent.rue |
| "split payment" | Royalty | examples/royalty.rue |
| "escrow with arbiter" | Escrow | examples/escrow.rue |
| "atomic swap / HTLC" | Atomic Swap | examples/atomic_swap.rue |
| "reversible / clawback" | Clawback | examples/clawback.rue |
| "spending limit" | Rate Limited | examples/rate_limited.rue |
| "recurring payment" | Subscription | examples/subscription.rue |
| "password protected" | Password | examples/password_puzzle.rue |
| "signature required" | Signature | examples/sig_puzzle.rue |
Core Syntax
rue
fn main(curried_arg: Type, solution_arg: Type) -> List<Condition> {
assert condition;
let x = expression;
if cond { a } else { b }
[item1, item2, ...rest]
}
Types
| Type | Description |
|---|---|
| Int | Signed integer |
| Bool | true/false |
| Bytes32 | 32-byte hash |
| PublicKey | BLS G1 (48 bytes) |
| List | Nil-terminated list |
| Condition | CLVM condition |
Key Conditions
| Condition | Opcode | Purpose |
|---|---|---|
| CreateCoin { puzzle_hash, amount, memos } | 51 | Create output |
| AggSigMe { public_key, message } | 50 | Require signature |
| AssertHeightAbsolute { height } | 83 | Min block height |
| AssertBeforeHeightAbsolute { height } | 87 | Max block height |
| AssertMyAmount { amount } | 73 | Verify coin value |
| ReserveFee { amount } | 52 | Transaction fee |
references/conditions.md for full list (30+ conditions).Built-in Functions
| Function | Use |
|---|---|
| sha256(data) | Hash data |
| tree_hash(value) | CLVM tree hash |
| coinid(parent, puzzle_hash, amount) | Compute coin ID |
Example: Timelock
rue
fn main(unlock_height: Int, dest: Bytes32, amount: Int) -> List<Condition> {
let wait = AssertHeightAbsolute { height: unlock_height };
let output = CreateCoin { puzzle_hash: dest, amount, memos: nil };
[wait, output]
}
Example: 2-of-2 Multisig
rue
fn main(pk1: PublicKey, pk2: PublicKey, conditions: List<Condition>) -> List<Condition> {
let msg = tree_hash(conditions);
let sig1 = AggSigMe { public_key: pk1, message: msg };
let sig2 = AggSigMe { public_key: pk2, message: msg };
[sig1, sig2, ...conditions]
}
Simulation
bash
# Compile
CLVM=$(rue build puzzles/my_puzzle.rue 2>&1 | grep -v Warning | head -1)
# Execute with test inputs
brun "$CLVM" "(arg1 arg2 arg3)"
# Output is list of conditions: ((51 <hash> <amount>) (83 <height>) ...)
Security Notes
- Password puzzles are educational only — use signatures for real value
- Always validate input types with
assert value is Type - Use
tree_hash(conditions)as signature message to bind signatures to outputs
Installation
Terminal bash
openclaw install rue-chialisp
Copied!
💻Code Examples
brun "$CLVM" "(args)" # Simulate execution
brun-clvm-args--simulate-execution.txt
## Natural Language → Puzzle
When user describes a puzzle in plain language, map to these patterns:
| User Says | Pattern | Example File |
|-----------|---------|--------------|
| "only spend after block X" | Timelock | `examples/timelock.rue` |
| "requires N signatures" | Multisig | `examples/multisig.rue` |
| "burn X%" | Partial Burn | `examples/burn_10_percent.rue` |
| "split payment" | Royalty | `examples/royalty.rue` |
| "escrow with arbiter" | Escrow | `examples/escrow.rue` |
| "atomic swap / HTLC" | Atomic Swap | `examples/atomic_swap.rue` |
| "reversible / clawback" | Clawback | `examples/clawback.rue` |
| "spending limit" | Rate Limited | `examples/rate_limited.rue` |
| "recurring payment" | Subscription | `examples/subscription.rue` |
| "password protected" | Password | `examples/password_puzzle.rue` |
| "signature required" | Signature | `examples/sig_puzzle.rue` |
## Core Syntax}
.txt
## Types
| Type | Description |
|------|-------------|
| `Int` | Signed integer |
| `Bool` | true/false |
| `Bytes32` | 32-byte hash |
| `PublicKey` | BLS G1 (48 bytes) |
| `List<T>` | Nil-terminated list |
| `Condition` | CLVM condition |
## Key Conditions
| Condition | Opcode | Purpose |
|-----------|--------|---------|
| `CreateCoin { puzzle_hash, amount, memos }` | 51 | Create output |
| `AggSigMe { public_key, message }` | 50 | Require signature |
| `AssertHeightAbsolute { height }` | 83 | Min block height |
| `AssertBeforeHeightAbsolute { height }` | 87 | Max block height |
| `AssertMyAmount { amount }` | 73 | Verify coin value |
| `ReserveFee { amount }` | 52 | Transaction fee |
See `references/conditions.md` for full list (30+ conditions).
## Built-in Functions
| Function | Use |
|----------|-----|
| `sha256(data)` | Hash data |
| `tree_hash(value)` | CLVM tree hash |
| `coinid(parent, puzzle_hash, amount)` | Compute coin ID |
## Example: Timelockexample.sh
# Check dependencies
scripts/rue-check.sh
# Initialize project
scripts/rue-init.sh my-projectexample.sh
cd my-project
rue build # Compile all puzzles
rue build puzzles/x.rue # Compile one
brun "$CLVM" "(args)" # Simulate executionexample.txt
fn main(curried_arg: Type, solution_arg: Type) -> List<Condition> {
assert condition;
let x = expression;
if cond { a } else { b }
[item1, item2, ...rest]
}example.txt
fn main(unlock_height: Int, dest: Bytes32, amount: Int) -> List<Condition> {
let wait = AssertHeightAbsolute { height: unlock_height };
let output = CreateCoin { puzzle_hash: dest, amount, memos: nil };
[wait, output]
}example.txt
fn main(pk1: PublicKey, pk2: PublicKey, conditions: List<Condition>) -> List<Condition> {
let msg = tree_hash(conditions);
let sig1 = AggSigMe { public_key: pk1, message: msg };
let sig2 = AggSigMe { public_key: pk2, message: msg };
[sig1, sig2, ...conditions]
}example.sh
# Compile
CLVM=$(rue build puzzles/my_puzzle.rue 2>&1 | grep -v Warning | head -1)
# Execute with test inputs
brun "$CLVM" "(arg1 arg2 arg3)"
# Output is list of conditions: ((51 <hash> <amount>) (83 <height>) ...)Tags
#pdf_and-documents
Quick Info
Category File Management
Model Claude 3.5
Complexity One-Click
Author koba42corp
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
Ready to Install?
Get started with this skill in seconds
openclaw install rue-chialisp
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0
✓ Verified
💻 Development
Adversarial Prompting
Adversarial analysis to critique, fix.
🧠 Claude-Ready
)}
★ 4.6 (372)
↓ 28,222
v1.0.0