# Cardano CLI Plutus Scripts Operator

> Execute Plutus script transactions: script spends, datum/redeemer submission. Manual invoke only.

- Skill: `majiayu000/cardano-cli-plutus-scripts-operator` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/cardano-cli-plutus-scripts-operator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/cardano-cli-plutus-scripts-operator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/cardano-cli-plutus-scripts-operator

---


# cardano-cli-plutus-scripts-operator

> **OPERATOR SKILL**: Executes Plutus script transactions. Requires explicit human invocation due to collateral risk.

## When to use

- When ready to spend from a script address
- After reviewing guidance from `cardano-cli-plutus-scripts`

## Operating rules (must follow)

- **ALWAYS verify collateral UTxO is ADA-only**
- Confirm script hash matches expected
- Validate datum/redeemer JSON before use
- **REQUIRE explicit confirmation before submit**
- Test on preprod/preview before mainnet

## Pre-flight checklist

```
[ ] Network: ___________
[ ] Script file (.plutus) verified
[ ] Script hash matches on-chain
[ ] Datum JSON validated
[ ] Redeemer JSON validated
[ ] Collateral UTxO selected (ADA-only!)
[ ] Protocol parameters fresh
```

## Execution workflow

### Step 1: Verify script

```bash
# Get script hash
cardano-cli conway transaction policyid \
  --script-file script.plutus

# Derive script address
cardano-cli conway address build \
  --payment-script-file script.plutus \
  --testnet-magic 1 \
  --out-file script.addr
```

### Step 2: Query script UTxO

```bash
cardano-cli conway query utxo \
  --address $(cat script.addr) \
  --testnet-magic 1
```

### Step 3: Prepare collateral

```bash
# Must be ADA-only UTxO at your payment address
cardano-cli conway query utxo \
  --address <payment-addr> \
  --testnet-magic 1

# Select one with only ADA (no tokens)
```

### Step 4: Build script spend

```bash
cardano-cli conway transaction build \
  --testnet-magic 1 \
  --tx-in <script-utxo>#<index> \
  --tx-in-script-file script.plutus \
  --tx-in-inline-datum-present \
  --tx-in-redeemer-file redeemer.json \
  --tx-in-collateral <collateral-utxo>#<index> \
  --tx-out <recipient>+<amount> \
  --change-address <payment-addr> \
  --out-file tx.unsigned
```

### Step 5: Sign and submit

```bash
# Sign (collateral signer required)
cardano-cli conway transaction sign \
  --tx-file tx.unsigned \
  --signing-key-file payment.skey \
  --testnet-magic 1 \
  --out-file tx.signed

# ⚠️ CONFIRM before submit
echo "=== SCRIPT SPEND CONFIRMATION ==="
echo "Script: $(cat script.addr | head -c 20)..."
echo "Spending UTxO: <script-utxo>"
echo "Collateral: <collateral-utxo>"
echo "Output to: <recipient>"

cardano-cli conway transaction submit \
  --testnet-magic 1 \
  --tx-file tx.signed
```

## Debugging failed scripts

```bash
# If script fails, check execution units
cardano-cli conway transaction build \
  ... \
  --calculate-plutus-script-cost cost.json

# Review cost.json for budget issues
cat cost.json | jq .
```

## Safety / key handling

- Collateral is at risk if script fails unexpectedly
- Use minimal collateral (1-5 ADA typically sufficient)
- Keep datum/redeemer free of secrets
- Verify script logic on testnet first

## References

- `cardano-cli-plutus-scripts` (guidance skill)
- `shared/PRINCIPLES.md`

