npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@strike-options/sdk

v0.11.0

Published

Typed TypeScript client for Strike options vaults on Robinhood Chain and Arbitrum

Readme

@strike-options/sdk

npm

Typed TypeScript client for Strike: weekly options vaults (covered calls and cash-secured puts) on Robinhood Chain stock tokens, paid in USDG, run by mandate-bound AI agents. Built on viem. Unaudited, testnet only.

It reads vaults, series, quotes, agents and risk; dry-runs proposals against a vault's mandate with the contract's own previewProposal; and sends deposits, buys, proposals, settlements and agent registration (v2 and v3, including v3's EIP-712 signer consent). The deployed addresses for Robinhood Chain testnet (46630) and Arbitrum Sepolia (421614) are built in.

Inside the Strike repository this package is the workspace package @strike/sdk; on npm it is @strike-options/sdk.

Install

npm install @strike-options/sdk viem

Node 22 or later, ESM only.

Read a vault and a quote (no wallet)

import { createStrikeClient, formatUsdg, formatWad, getStrikeChain } from "@strike-options/sdk";
import { createPublicClient, http } from "viem";

const publicClient = createPublicClient({ chain: getStrikeChain(46630), transport: http() });
const strike = createStrikeClient({ publicClient, chainId: 46630 }); // Robinhood Chain testnet, read-only

const vault = await strike.getVault("0xADFF7900dbe01E8170a750AB88e1f4eA8D9D1D4e"); // TSLA covered call
console.log(vault.symbol, vault.kind, vault.epoch.state, vault.mandate); // sTSLA-CC covered-call Selling {...}
if (vault.series) {
  const quote = await strike.quoteBuy(vault.series.id, 10n ** 18n); // one option
  console.log(`strike $${formatWad(vault.series.strike, 2)}: ${formatUsdg(quote.premium)} USDG per option`);
}

Reads need only a publicClient. Pass a viem walletClient too and the client can write: every write simulates first (a revert surfaces as a decoded custom error such as MarketClosed), approves tokens when needed, sends, and waits for the receipt.

More

  • listVaults(), getVault(), getSeries(), quoteBuy(), previewProposeByDelta(), seriesRisk(), agentStats(), claimables()
  • deposit, buy, redeemOptions, proposeByDelta, settle, registerAgent, setSigner, postBond, createVault
  • Pricing helpers (blackScholes, strikeForDelta, vaultCapacity), mandate checks (mandateProblems, explainMandateReason), settlement-hint discovery, decision-record anchoring (verifyDecisionAnchor) and every contract ABI
  • deploymentsFor(chainId) lists every deployment of a chain (v2 and v3 on 46630); createStrikeClient({ deployment }) targets one
  • auditMirror({ chainId, symbol? }): the price mirror audit. Every round of the testnet MirrorFeeds is checked against Robinhood Chain mainnet Chainlink (the mainnet round with the same updatedAt must carry the same answer, across proxy phases), with each push's transaction, the deploy-time seed listed apart and the largest gap between pushes; auditSettlement({ chainId, vault }) checks the round each series settled at (or will settle at) and whether it is mainnet's first print after expiry. Read-only, no key; node scripts/verify-mirror.mjs in the repository prints it
  • rpcTransportFor(chainId): a viem transport over Alchemy when ALCHEMY_API_KEY is set (the key in a header, never in a URL), then STRIKE_RPC_URL, then the chain's public RPC, falling back down the list; rpcUrlFor(chainId) gives one URL for tools such as cast (print it only through redactRpcUrl)

Agents that would rather speak MCP can use @strike-options/mcp. How Strike works, the mandate rules and a safe proposal loop: STRIKE_SKILL.md. Source, tests and docs: github.com/Prashant-thakur77/Strike.

MIT licence.