smithery/sablier-labs

evm-deployment

Deploy Sablier EVM contracts (Comptroller, ERC20 Faucet, Flow, Lockup, Airdrops) with full workflow automation.

Installation

$ npx skills add smithery/sablier-labs --skill evm-deployment

Summary

  • Deploy Sablier EVM contracts (Comptroller, ERC20 Faucet, Flow, Lockup, Airdrops) with full workflow automation.
  • This skill should be used when the user asks to "deploy", "deploy protocol", "deploy to chain", or mentions deployment-related tasks.
  • Handles contract deployment, explorer verification, SDK updates, and sample data creation through Init script.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/sablier-labs.

npx skills add smithery/sablier-labs

Browse all from smithery/sablier-labs

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version0.1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,209 B
  • docs SUMMARY.md 378 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Overview

End-to-end deployment workflow for Sablier EVM contracts. Supports Comptroller, Flow, Lockup, and Airdrops with protocol-specific adaptations.

Prerequisites

Version Check

Before proceeding, verify Foundry version:

forge -V

Stop if version is below 1.3.6.

Protocol Detection

Detect the current EVM protocol from package.json:

Package Name Protocol SDK Path
@sablier/evm-utils Comptroller ../sdk/deployments/comptroller
@sablier/flow Flow ../sdk/deployments/flow
@sablier/lockup Lockup ../sdk/deployments/lockup
@sablier/airdrops Airdrops ../sdk/deployments/airdrops

Extract version from package.json"version": "x.y.z" → SDK version is v<x.y>

Workflow

Execute steps in order, tracking state between each:

Step 1: Deploy Contracts

Reference: ./references/deploy.md | Examples: ./references/examples.md

Deploy protocol contracts using Foundry. Handles:

  • RPC configuration
  • Deterministic (CREATE2) vs non-deterministic (CREATE) deployment
  • Contract verification on block explorer

Step 2: Update SDK (optional)

Reference: ./references/copy-to-sdk.md

Copy broadcast artifacts to SDK repository:

  • Broadcast JSON file
  • Update README.md with deployment info
  • Update deployments.ts with contract addresses

Step 3: Create Test Data (optional)

Reference: ./references/deploy-streams.md

For Flow and Lockup protocols only. Creates sample streams for testing:

  • Mint or verify ERC20 token balance
  • Run Init.s.sol script to create test streams

State Tracking

Track and carry forward between steps:

State Source
Protocol name Detected from package.json
Chain ID From deployment or user input
Chain name Lowercase (e.g., ethereum, arbitrum)
Deployment type deterministic or non-deterministic
Contract addresses From broadcast JSON returns field
Block number From deployment receipt (hex → decimal)
SDK version From package.json version

Protocol-Specific Scripts

Protocol Deterministic Script Non-deterministic Script
Comptroller DeployDeterministicComptrollerProxy.s.sol DeployComptrollerProxy.s.sol
Flow DeployDeterministicProtocol.s.sol DeployProtocol.s.sol
Lockup DeployDeterministicProtocol.s.sol DeployProtocol.s.sol
Airdrops DeployDeterministicFactories.s.sol DeployFactories.s.sol

Output Summary

After completion, provide:

  • Protocol deployed
  • Chain and deployment type
  • Contract addresses (factories + campaigns if applicable)
  • Verification status
  • SDK files updated (if applicable)
  • Test data created (if applicable)

Airdrops Campaign Contracts

When deploying Airdrops test data, campaigns are created via factory:

Factory Campaign Contract
SablierFactoryMerkleInstant SablierMerkleInstant
SablierFactoryMerkleLL SablierMerkleLL
SablierFactoryMerkleLT SablierMerkleLT
SablierFactoryMerkleVCA SablierMerkleVCA

Campaign addresses are returned in broadcast returns field, not contractAddress.