一键导入
aiken-smart-contracts
"Aiken workflows: validators, building, blueprints, .plutus generation. Safe guidance for smart contract development."
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
"Aiken workflows: validators, building, blueprints, .plutus generation. Safe guidance for smart contract development."
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Read-only wallet state via cardano MCP: balances, addresses, and UTxOs. Requires a configured cardano MCP server.
Retrieve ADAHandle identities ($handle) for the connected wallet via cardano MCP. Read-only.
Query staking delegation status and available rewards via cardano MCP. Read-only, no delegation changes.
Sign and submit pre-built Cardano transactions via cardano MCP. High-risk: requires structured preview and explicit user confirmation.
"Diagnose cardano-cli: version, era-prefixed vs legacy syntax, network flags. Produces compatibility report."
Manual-only operator command for Cardano CLI: dispatches directly to OpenClaw Exec Tool (no model) so you can run deterministic, approval-gated cardano-cli commands (native or Docker fallback).
| name | aiken-smart-contracts |
| description | Aiken workflows: validators, building, blueprints, .plutus generation. Safe guidance for smart contract development. |
| allowed-tools | ["Bash(aiken:*)","Bash(cardano-cli:*)","Read","Write"] |
| context | ["!aiken --version 2>&1 | head -3","!aiken --help 2>&1 | head -20"] |
| metadata | {"openclaw":{"emoji":"🧰","requires":{"anyBins":["cardano-cli","docker"]},"install":[{"id":"brew","kind":"brew","formula":"colima docker docker-compose curl","bins":["colima","docker","docker-compose","curl"],"label":"Install Docker runtime (Colima) + Docker CLI + Compose + curl (brew)","os":["darwin","linux"]}]}} |
aiken new my-project
cd my-project
my-project/
├── aiken.toml # Project config
├── lib/ # Reusable modules
├── validators/ # Validator entry points
│ └── my_validator.ak
└── plutus.json # Generated blueprint
// validators/my_validator.ak
use aiken/transaction.{ScriptContext}
validator {
fn spend(datum: Data, redeemer: Data, ctx: ScriptContext) -> Bool {
// Your validation logic
True
}
}
# Build all validators
aiken build
# Run tests
aiken check
# Format code
aiken fmt
# Blueprint is auto-generated at plutus.json
# Extract .plutus for cardano-cli:
aiken blueprint convert > my_validator.plutus
# Get script hash
cardano-cli conway transaction policyid \
--script-file my_validator.plutus
cardano-cli conway address build \
--payment-script-file my_validator.plutus \
--testnet-magic 1 \
--out-file script.addr
User request: "Create a validator that only allows spending by a specific pubkey"
Response:
// validators/pubkey_lock.ak
use aiken/hash.{Blake2b_224, Hash}
use aiken/transaction.{ScriptContext, Spend}
use aiken/transaction/credential.{VerificationKey}
type Datum {
owner: Hash<Blake2b_224, VerificationKey>
}
type Redeemer {
// Could be unit if no redeemer data needed
}
validator {
fn spend(datum: Datum, _redeemer: Redeemer, ctx: ScriptContext) -> Bool {
let ScriptContext { transaction, purpose } = ctx
expect Spend(_) = purpose
// Check if owner signed the transaction
list.has(transaction.extra_signatories, datum.owner)
}
}
# Build
aiken build
# Test
aiken check
# Generate .plutus
aiken blueprint convert > pubkey_lock.plutus
User request: "Create a time-locked validator"
Response:
// validators/time_lock.ak
use aiken/interval.{Finite, Interval, IntervalBound}
use aiken/transaction.{ScriptContext, ValidityRange}
type Datum {
lock_until: Int // POSIX time in milliseconds
}
validator {
fn spend(datum: Datum, _redeemer: Data, ctx: ScriptContext) -> Bool {
let valid_range: ValidityRange = ctx.transaction.validity_range
// Check if current time is past lock_until
when valid_range.lower_bound.bound_type is {
Finite(tx_earliest_time) -> tx_earliest_time > datum.lock_until
_ -> False
}
}
}
aiken build --plutus-version v3 if targeting V3shared/PRINCIPLES.mdcardano-cli-plutus-scripts (for deployment)