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

plugin-signalpulse

v0.1.1

Published

ElizaOS plugin for SignalPulse: trade-signal scanners and natural-language market analysis across FX, metals, indices, equities, futures, crypto, 35+ sports, racing, golf, F1, fantasy, and prediction markets — quote-first x402 paid calls (USDC on Base) wi

Readme

plugin-signalpulse

ElizaOS plugin for SignalPulse — trade-signal scanners and natural-language market analysis for agents, paid per call with x402 USDC on Base (or a prepaid sp_ credit key). Coverage: FX, metals, indices, equities, futures, crypto, 35+ sports, horse & greyhound racing, golf, F1, fantasy, and prediction markets (Polymarket weather / politics / macro / attention ladders) — the only sports/racing/prediction-market data seller in the x402 agent economy.

Actions

| Action | Cost | What it does | | --- | --- | --- | | SEARCH_SIGNALPULSE_CATALOG | free | Search the machine catalog (/api/preflight): every paid endpoint with its exact per-call price, drift-locked server-side to what the handler actually charges. | | SIGNALPULSE_SCAN | quotes | Quote a scan by name (crypto, forex, futures, market, sports, polymarket, racing, golf, F1, equities, crypto-lite) or by a catalog URL. Nothing is paid at quote time. | | SIGNALPULSE_ANALYSIS | quotes | Quote a Market Analysis: your natural-language question is POSTed to /api/analysis ($1.49) — and hashed into the confirmation, so the authorization pays for exactly that question. | | SIGNALPULSE_CONFIRM_PAYMENT | pays | The ONLY action that moves money: executes a pending quote when the user replies pay <CODE>. |

The money rules (inherited from plugin-pulsenetwork 0.2.0, registry-reviewed)

  • Quote-first, content-bound confirm. Every paid call is first quoted (exact price, asset, recipient — and for analysis, the exact question). The confirmation code is derived from a hash over those exact operation bytes; agent-authored text can never trigger a payment, a code never authorizes anything but its own quote, and quotes expire in 10 minutes.
  • Pinned payment policy. The plugin will only ever sign: exact-scheme USDC on Base (eip155:8453) to SignalPulse's published wallet 0x50ab2018c06c6E4eAA9BA52057Eb55eD284912fc, at or under the per-call cap. Any other challenge — different recipient, asset, network, amount, or EIP-712 domain — is refused in code before a signature exists. (SignalPulse also advertises Solana-USDC and USD1-on-BSC lanes; this plugin deliberately ignores them.)
  • Whole-message confirmation. Only a message that is pay <CODE> authorizes a charge — after trimming, collapsing internal whitespace, and dropping one trailing ./!. Nothing else is normalized: do not pay ABC123, why should I pay ABC123?, he said "pay ABC123", and pay ABC123 and buy more are all refused (regression-tested).
  • Per-call cap (SIGNALPULSE_MAX_PAYMENT_USD, default $2.60) and a daily budget (SIGNALPULSE_BUDGET_USD_PER_DAY, default $5.00, UTC; debited before payment, credited back only when the client proves no signature was created). The budget is exact for one runtime process per wallet and advisory across processes — see Deployment assumptions.
  • Execute-once, enforced on-chain. The EIP-3009 nonce of every signed transfer is the authorization hash (sha256 over the confirmed operation bytes). USDC records used nonces per payer, so one confirmed quote can settle at most once — even if two hosts sharing the wallet both act on it, the second signature fails at verification/settlement instead of moving money. The cache-backed charge ledger remains as the fast in-process check. On the host that loses that race the plugin sees a created-but-unsettled signature, records the charge as failed, and keeps the budget debit (over-counting its own spend is the fail-safe direction).
  • Single host. Free or paid, every request goes to signalpulse.theaslangroupllc.com — a prompt-injected URL cannot route a request (let alone a payment) anywhere else.
  • Server verdicts. Every paid 200 carries agent_action: allow | warn | skip | block (derived server-side; model-emitted values are overwritten there). skip bodies are refund-honest: x402 buyers are never settled for a no-play. The plugin leads every paid reply with this verdict so downstream logic can branch without parsing prose.
  • Replay-protected retries. Server-side, a transport retry of an already-settled payment for the same URL is served as already-paid — buyers are never double-charged for a dropped response.

Settings

| Setting | Required | Meaning | | --- | --- | --- | | EVM_PRIVATE_KEY | for x402 | Base-mainnet key holding a few dollars of USDC (same setting the official EVM plugin uses). Not needed with an API key; the free catalog needs neither. | | SIGNALPULSE_API_KEY | optional | An sp_ credit-pack key — paid calls deduct server-side credits instead of paying on-chain; no wallet involved. | | SIGNALPULSE_MAX_PAYMENT_USD | optional | Per-call ceiling (default 2.60). Invalid/non-positive values disable paid calls (fail closed). | | SIGNALPULSE_BUDGET_USD_PER_DAY | optional | Daily cumulative ceiling (default 5.00, UTC). Same fail-closed semantics. | | SIGNALPULSE_AUTOPAY | optional | The string "true" skips the confirm step (headless agents). Unsafe in shared rooms; caps/budget/ledger still apply, and non-human triggers are still refused. |

Example

User:  what crypto endpoints does signalpulse have?
Agent: SignalPulse endpoints matching "crypto" (price = exact per-call x402 charge, USDC on Base):
       • GET /api/scan/crypto — $2 — Crypto scanner — Top-25 by market cap, ETF flows, funding, on-chain, GEX
       • GET /api/scan/crypto-lite — $0.05 — deterministic BTC/ETH/SOL snapshot …
User:  run the crypto scan
Agent: 💸 Payment required — nothing has been paid yet.
       • Purpose: SignalPulse crypto scan
       • Endpoint: GET https://signalpulse.theaslangroupllc.com/api/scan/crypto
       • Price: $2.00 (2000000 atomic USDC) … Recipient: 0x50ab…12fc (SignalPulse wallet)
       Reply "pay A91C04" within 10 minutes to authorize exactly this charge — nothing else.
User:  pay A91C04
Agent: Paid $2.00 … ✅ agent_action: allow — the endpoint returned an actionable result. …

Deployment assumptions

getCache/setCache are durable but not compare-and-swap. Two runtime processes sharing one wallet therefore cannot double-pay a confirmed quote (the on-chain nonce guarantee above does not depend on the cache), but they can each count the daily budget independently — the SIGNALPULSE_BUDGET_USD_PER_DAY ceiling is exact per process, not per wallet. Run one agent per key, or point multiple agents at separate wallets/budgets, if the budget must be global.

Development

npm install
npm run typecheck && npm test   # 71 tests
npm run build

EVIDENCE.md holds live capture of the built plugin quoting real production 402s (catalog, GET quote, POST quote) with the policy pins filtering the real multi-lane challenge.

Informational only — not financial, investment, or betting advice. Markets carry risk of loss.