AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Sablier Cancel Vesting

skill-sablier-labs-sablier-skills-sablier-cancel-vesting · by sablier-labs

This skill should be used when the user asks to "cancel a vesting stream", "cancel Sablier vesting", "stop vesting for X", "revoke a Sablier stream", "claw back unvested tokens", "refund unvested tokens", "kill a Sablier Lockup stream", or wants an agent to cancel one or more Sablier Lockup vesting streams as the stream sender on Ethereum or any EVM-compatible chain on their behalf.

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add skill-sablier-labs-sablier-skills-sablier-cancel-vesting

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-sablier-labs-sablier-skills-sablier-cancel-vesting)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Sablier Cancel Vesting? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Sablier Vesting Stream Cancellation

Overview

Cancel one or more Sablier Lockup vesting streams on the user's behalf as the stream sender. The skill discovers the user's sender-side streams through the Sablier indexer, drops non-cancelable and zero-refundable streams, and executes one cancel(uint256) transaction per selected stream on the resolved chain.

The function signature cancel(uint256) is unified across the full range of Lockup releases (v1.0 → v4.0), so the runbook does not dispatch on version for the call itself. The recipient still receives every token that has already vested at the moment of cancellation; only the unvested remainder returns to the sender.

This skill charges no markup. Cancellation is free at the protocol level — cancel(uint256) is non-payable on every Lockup version, so MSG_VALUE = 0 always.

This skill is a coordinator for vesting cancellation and execution routing.

Arguments

| Argument | Description | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | chain_name | EVM chain where the streams live (e.g. "Ethereum", "Base", "Polygon"). One chain per invocation. | | wallet_address | The user's wallet. Must be the streams' sender — only senders can call cancel. The skill never surfaces streams where the wallet is not the sender. | | token_symbol | Token symbol to narrow the search (e.g. "USDC", "SABL"). If omitted, every token the wallet has an active sender-side stream in is shown. |

Workflow

1. Confirm product fit

  1. Verify the user wants to cancel existing Sablier vesting streams as the sender.
  1. If the user wants to create a vesting stream instead, route to sablier-create-vesting. If that skill is unavailable, recommend installing it with:

``bash npx skills add sablier-labs/sablier-skills --skill sablier-create-vesting ``

  1. If the user wants to withdraw vested tokens (recipient action), route to sablier-withdraw-vesting. If that skill is unavailable, recommend installing it with:

``bash npx skills add sablier-labs/sablier-skills --skill sablier-withdraw-vesting ``

  1. If the user wants to cancel a Flow open-ended stream instead of a vesting stream, route to sablier-cancel-open-ended-stream. If that skill is unavailable, recommend installing it with:

``bash npx skills add sablier-labs/sablier-skills --skill sablier-cancel-open-ended-stream ``

2. Check requested features

Stop and call out unsupported requests before selecting an execution path.

  • Cross-chain batching is not supported. This skill cancels streams on a single chain per invocation. If the user has streams on multiple chains, run the skill again per chain.
  • One stream per transaction. This skill does not use cancelMultiple. Selecting N streams produces N separate cancel(uint256) transactions and N wallet approvals — one per stream. This keeps each cancellation isolated: a revert on one stream never affects the others.
  • Sender-only access. Only the stream's sender can call cancel. The runbook restricts the indexer query to streams where sender == wallet, so the wallet is always the authorized caller.
  • Non-cancelable streams cannot be canceled. A stream created with cancelable: false reverts on cancel(...). The runbook drops these at discovery via isCancelable(streamId) (Multicall3-batched). If every surfaced stream is non-cancelable, stop with the message: "None of these vesting streams are cancelable — refunding is not possible. Cancellation was disabled at stream creation."
  • Already-canceled or depleted streams cannot be canceled. The indexer query filters canceled: { _eq: false } and depleted: { _eq: false }.
  • Withdrawing native tokens (ETH, POL, etc.) is not supported. Sablier streams only hold ERC-20 tokens. If the user mentions "ETH from my stream", they most likely mean WETH — confirm the token symbol before proceeding.

3. Clarify the required inputs

Use the AskUserQuestion tool to fill any missing inputs. Ask only for what is missing — never re-ask for values the user already provided.

  • Wallet address. A 0x-prefixed EVM address — case is not enforced; the runbook lowercases it before querying the indexer. This is the sender that will sign each cancel transaction. Ask for this first — both chain and token can be inferred from the indexer once the wallet is known.
  • Chain name. Optional. If the user does not know which chain, do not send them to an external UI — query the Sablier Streams indexer for every non-canceled, non-depleted stream where the wallet is the sender across all chains, collect the distinct chainId values, map them to chain names via the [Supported Chains](references/cli.md#supported-chains) table, and offer them as AskUserQuestion options. If exactly one chain has streams, auto-select it and tell the user. See [references/cli.md § Chain discovery](references/cli.md#chain-discovery).
  • Token symbol. Optional. If the user does not know which token, query the indexer for every non-canceled, non-depleted stream on the resolved chain where the wallet is the sender, and offer the distinct token symbols as AskUserQuestion options (see [references/cli.md § Stream discovery](references/cli.md#stream-discovery)).

Do not guess or silently apply defaults for these parameters. Only proceed once all inputs are confirmed.

4. Validate chain support

  1. Check whether the resolved chain is listed in the [Supported Chains](references/cli.md#supported-chains) table in the execution runbook.
  2. If a chain surfaced by the indexer is not in the table, check Sablier Lockup deployments and ask the user for an RPC URL. If still unresolved, stop execution of this skill.

5. Route to execution

Hand off to [references/cli.md](references/cli.md) for stream discovery, multi-select, preview, confirmation, and per-stream broadcast. The discovery step pipes the indexer response through [scripts/filter-cancelable.sh](scripts/filter-cancelable.sh), which Multicall3-batches isCancelable(streamId) and refundableAmountOf(streamId) across every candidate into a single round trip — this drops non-cancelable streams, drops streams with nothing left to recover, and stamps .refundable (base-unit string) onto every survivor.

Resources

Support

If you encounter any issues or unexpected errors with this skill, please file an issue at sablier-labs/sablier-skills.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.