v1 → v2 migration
@secondlayer/workflows, workflow-runner, and sentries are deprecated. Push semantics for chain events live on Subscriptions. Durable execution isn't our edge — Inngest, Trigger.dev, and Cloudflare Workflows already nailed it. We deliver typed signed events into your runtime.
Mapping
workflow trigger → Subscription filter on a subgraph table
workflow steps → your runtime handler (inngest/trigger/cloudflare/node)
sentry → Subscription with a narrow filter + your alerting code
workflow signer → AI SDK calls + @secondlayer/stacks for chain ops
tx_confirmed_notify → subscribe to your subgraph's transactions tableTranslate
// v1 (deprecated)
import { defineWorkflow } from "@secondlayer/workflows";
export default defineWorkflow({
trigger: { contract: "SP1...usdc", event: "transfer" },
steps: [async ({ event }) => {
if (event.amount < 1_000_000n) return;
await notify(event.recipient, event.amount);
}],
});
// v2
// 1. sl subscriptions create large-usdc --runtime node
// 2. provision the subscription:
import { on } from "@secondlayer/stacks";
await sdk.subscriptions.create({
...on.sip010Transfer({ subgraph: "mine", table: "transfers" }, "SP1...usdc::usdc-token"),
filter: { amount: { gte: "1000000" } },
name: "large-usdc",
url: "https://my-app.com/webhook",
});
// 3. handler in your runtime verifies the standard-webhooks signature
// and acts on the typed payload.Removed
@secondlayer/workflows — gone
@secondlayer/workflow-runner — gone
@secondlayer/sentries — gone
@secondlayer/signer-node — gone
@secondlayer/workflows/ai — gone (use AI SDK + @secondlayer/stacks tools)
sl workflows * — removed CLI surface
/platform/workflows, /platform/sentries — removed dashboard pages