rue-chialisp
Create Chia blockchain puzzles using Rue, a type-safe language that compiles to CLVM. Use for smart contract development, custom puzzle creation, or when user says "create a coin that...", "build a puzzle", "chialisp", "rue", "timelock", "multisig", "escrow", "atomic swap", or describes coin spending conditions.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- rue-chialisp
- version
- 1.0.0
- description
- Create Chia blockchain puzzles using Rue, a type-safe language that compiles to CLVM. Use for smart contract development, custom puzzle creation, or when user says "create a coin that...", "build a puzzle", "chialisp", "rue", "timelock", "multisig", "escrow", "atomic swap", or describes coin spending conditions.
02 资源文件 25
- 参考文档_meta.json280 B
- 参考文档examples_txt/atomic_swap.rue.txt1.2 KB
- 参考文档examples_txt/block_locked.rue.txt488 B
- 参考文档examples_txt/burn_10_percent.rue.txt689 B
- 参考文档examples_txt/burn.rue.txt467 B
- 参考文档examples_txt/clawback.rue.txt1.2 KB
- 参考文档examples_txt/escrow.rue.txt1.1 KB
- 参考文档examples_txt/main.rue.txt44 B
- 参考文档examples_txt/multisig.rue.txt354 B
- 参考文档examples_txt/password_puzzle.rue.txt505 B
- 参考文档examples_txt/rate_limited.rue.txt1.2 KB
- 参考文档examples_txt/royalty.rue.txt1022 B
- 参考文档examples_txt/sig_puzzle.rue.txt460 B
- 参考文档examples_txt/sim_escrow.rue.txt570 B
- 参考文档examples_txt/sim_timelock.rue.txt458 B
- 参考文档examples_txt/singleton.rue.txt871 B
- 参考文档examples_txt/subscription.rue.txt1.8 KB
- 参考文档examples_txt/timelock.rue.txt519 B
- 参考文档references/conditions.md4.5 KB
- 脚本scripts/compile_puzzle.sh243 B
- 脚本scripts/create_puzzle.sh374 B
- 脚本scripts/rue-check.sh2.1 KB
- 脚本scripts/rue-init.sh1.9 KB
- 脚本scripts/rue-new.sh2.7 KB
- 脚本scripts/test_puzzle.sh344 B
03 SKILL.md 正文
Rue Chialisp Skill
Build type-safe Chia puzzles using Rue. Compile to CLVM bytecode for on-chain deployment.
Setup
# Check dependencies
scripts/rue-check.sh
# Initialize project
scripts/rue-init.sh my-project
Quick Build
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
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<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: Timelock
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
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
# 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
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.