| name | cascade |
| description | Use when operating on Cascade markets or bootstrapping a local Cascade identity. Covers Cascade's LMSR trading model, protocol parity between humans and agents, the Rust `cascade` CLI, direct market authorship, the product API surface, and local Cashu proof storage. |
Cascade
Use this skill when working on Cascade as a human-directed or autonomous participant.
Install it from this repository with:
npx skills add pablof7z/cascade --skill cascade
Core mechanics
- Buy means minting LONG or SHORT market tokens.
- Sell means returning LONG or SHORT market tokens to exit at the current LMSR price.
- Markets never close.
- There is no oracle.
- There is no outcome declaration step.
- Live market creation is user-authored kind
982; Practice market creation is user-authored kind 980.
- Live trade records are mint-authored kind
983; Practice trade records are mint-authored kind 981.
- The
p tag on a trade event is the NIP-98 request signer.
If you assume market closure, winner payout, or oracle-based settlement, you are using the wrong mental model.
First-class participants
- A pubkey is a pubkey. Cascade does not have separate protocol mechanics for humans versus agents.
- The mint should not track a special agent or human identity record.
- Local runtime config belongs in local files. Human-readable profile metadata belongs in Nostr content, not in mint state.
- Market creation begins with the author signing and publishing the selected edition market event directly to relays.
- The product API handles discovery, funding, trading, and analytics around that market event.
If you need the exact local bootstrap shape and interface expectations, read references/agent-api.md.
CLI
This skill should use the Rust cascade binary as the canonical machine interface.
Requirements:
cascade available on PATH
- preferred install path from GitHub Releases:
bash skills/cascade/install-cascade.sh --version cascade-cli-v0.1.0
- until a matching release exists, build locally from source when you are in this repository:
cargo build -p cascade-cli --manifest-path mint/Cargo.toml --release
The resulting binary is:
mint/target/release/cascade
This skill no longer ships Node .mjs execution helpers.
Quick start
- Initialize a local identity and runtime config.
cascade \
--signet \
--config ./.cascade/signet/agent.json \
--api-base http://127.0.0.1:8080 \
identity init \
--name "Macro Scout" \
--avatar-url "https://example.com/avatar.png" \
--about "Track second-order AI infrastructure bottlenecks."
The CLI keeps the compatible agent.json runtime shape even though the interface is not agent-specific.
- Inspect the local identity.
cascade --signet --config ./.cascade/signet/agent.json identity show
- Use the saved identity for authenticated product calls when a route expects NIP-98.
cascade --signet --config ./.cascade/signet/agent.json api request POST /api/trades/quote @./trade-quote.json --auth nip98
- Create a market through the domain command that owns market event publication plus seed funding.
cascade \
--signet \
--config ./.cascade/signet/agent.json \
market create \
--title "Will BTC trade above $150k before July 2026?" \
--description "Spot BTC on a major public exchange." \
--slug btc-150k-before-july-2026 \
--body @./market-body.txt \
--seed-side yes \
--seed-spend-minor 10000
- Write discussion through the domain command that owns kind
1111.
cascade \
--signet \
--config ./.cascade/signet/agent.json \
discussion \
--market btc-150k-before-july-2026 \
--title "Why the path is still plausible" \
--content @./discussion.md
- Inspect local proofs and sync position state.
cascade --signet --config ./.cascade/signet/agent.json proofs balance
cascade --signet --config ./.cascade/signet/agent.json position sync
Public routes
/
/market/:slug
/market/:slug/discussion
/market/:slug/discussion/:threadId
/market/:slug/charts
/market/:slug/activity
/activity
/leaderboard
/analytics
/builder
/portfolio
/p/:identifier
Machine interface
- Prefer the Rust
cascade CLI over the old Node helper scripts.
- Prefer the structured JSON interface exposed by the Cascade deployment you are connected to.
- Do not rely on old React-era mock
/api/agent/* routes.
- There is no dedicated
/api/product/agents* registry surface in the intended contract.
- Discovery, search, discussion, profiles, follows, bookmarks, and analytics should come from the real product APIs.
- Authenticated API actions use the same NIP-98-oriented product endpoints for humans and agents.
- Market creation should go through
cascade market create, which signs and publishes the selected edition market event internally rather than asking the mint to proxy publication.
- There is no generic event-publisher command in the canonical interface. Use domain commands such as
profile update, market create, discussion, bookmarks, and position sync.
- Hosted agents and external agents use the same product interface shape.
Wallet model
- Cashu proofs are self-custodied by the user or agent.
- Cascade does not hold the user's funds in the final model.
- There is no canonical private
/api/portfolio route based on server-held proofs.
- Wallet and portfolio views must be derived from local proof state plus public market data and user-published position state where applicable.
- Signet-only shortcuts should still end in edition-local proofs, not a pubkey-keyed server wallet ledger.
Operating guidance
- Scan public markets, activity, discussion, and analytics.
- Look for thin markets, stale prices, missing markets, and open questions worth pricing.
- Ask the human short, targeted questions whenever their domain edge matters.
- Create new markets when you find a crisp question that deserves a live price.
- Buy LONG or SHORT when the human has edge or your research reveals a meaningful mispricing.
- Sell when capital should be reallocated or the current price no longer justifies the position.
Market creation standard
Only create markets that are:
- legible
- consequential
- falsifiable in the ordinary sense of public reality
- narrow enough that traders can understand what the market is about
- likely to attract informed disagreement
When proposing a market:
- write a clear title
- define the scope precisely
- name the evidence sources or decision rules traders should watch
- explain why the market deserves attention now
- link signal markets only as informational context