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

@chainvue/verus-sdk

v0.16.0

Published

100% offline, fully typed TypeScript SDK for Verus transaction signing

Readme

@chainvue/verus-sdk

npm CI license node

Offline Verus transaction signing. Bring UTXOs and a WIF; get back signed transaction hex — no daemon, no network. Native transfers, token/currency transfers, conversions, currency creation (token / basket / NFT), and the full VerusID lifecycle. Serialization uses VerusCoin's own primitives, so the wire format is the daemon's, not a reimpl.

npm i @chainvue/verus-sdk
import { VerusSDK } from "@chainvue/verus-sdk";

const sdk = new VerusSDK({ network: "testnet" }); // or "mainnet"

const { signedTx, txid, fee } = sdk.transfer({
  wif: "<WIF>",
  to: "R…recipient",
  amount: 100_000_000n, // satoshis (bigint)
  utxos: [{ txid, outputIndex, satoshis: 500_000_000n, script }],
  changeAddress: "R…change",
  expiryHeight: currentBlockHeight + 20, // required; 0 = never expires
});
// broadcast signedTx yourself, e.g. @chainvue/verus-rpc `sendrawtransaction`

Money is bigint satoshis end to end — never a float. Convert at the edges: parseSats("1.5") → 150000000n, toCoins(150000000n) → "1.5".

What it does

  • Transferstransfer, transferToken, convert, and sendCurrency (multi-output / cross-chain sends, conversions, pre-convert, and mint / burn of a centralized currency).
  • VerusIDcreateCommitmentregisterIdentity (incl. sub-IDs), then updateIdentity / lockIdentity / unlockIdentity / revokeIdentity / recoverIdentity, plus signMessage / verifyMessage. Multisig (m-of-n) identities update via buildMultisigIdentityUpdate + addIdentitySignature.
  • Marketplace offers — build and complete fully on-chain atomic swaps: currency↔currency (buildOfferFundingbuildOffercompleteOffer), and VerusID sell / buy / swap (build*IdentityOffer / complete*IdentityOffer). Native coin, tokens, and identities, in every combination — plus buildReclaimOffer to cancel an unaccepted offer and reclaim the funds.
  • Currencies — build and sign a full currency launch offline: buildCurrencyDefinitionScript for the definition output (token, fractional basket, or NFT), buildCurrencyLaunchTransaction for the complete broadcastable transaction (all seven outputs, byte-equivalent to the daemon's definecurrency), and buildReserveTransferOutput to pre-convert / invest in a launching currency. See docs/currency.md.
  • HelpersVerusSDK.generateWif(), await deriveAddress(wif) (async), deriveIdentityAddress(name, parent?), validateAddress / validateWif (→ { valid, error? }); utils.summarizeSignedTransaction(hex, network) decodes a signed tx (txid, spent outpoints, addressed outputs) for your ledger.
  • Typed errors — every boundary failure is a VerusError subclass (InsufficientFundsError, InvalidWifError, InvalidAddressError, InvalidNameError, InvalidAmountError, TransactionBuildError), so you can branch on the error type instead of parsing messages.

Every built transfer is re-validated against its intent — per-currency value conservation, change to the declared address — before the hex is returned. A selection or change bug throws; it never hands you a bad transaction.

Fees follow the daemon's rule, not a byte estimate. Verus charges 10,000 satoshis per non-change output — plus 10,000 for each output script over 2,000 bytes, and 10,000 per 128 serialized bytes of an identity's contentMultiMap. Transaction size and input count cost nothing. So a one-recipient send pays 10,000 and a three-recipient send pays 30,000, whatever their byte counts. estimateMinerFee(outputScripts) quotes it before you build, and every builder asserts offline that the fee it chose clears the daemon's acceptance floor.

Good to know

  • Self-contained bundle: the VerusCoin forks (utxo-lib, primitives, bitcoin-ops) are inlined — no github: deps or install-time patches in your tree. Regular npm deps install normally.
  • TypeScript: self-contained declarations — no skipLibCheck needed and no fork packages to install; the type surface for the bundled forks ships with the package.
  • Signing only: broadcasting, UTXO fetching, and confirmation tracking are yours (see @chainvue/verus-rpc).
  • Node ≥ 18. Wire format proven against a live VRSCTEST daemon.

Docs

Per-area guides, plus runnable offline examples in examples/:

| Guide | What's in it | |---|---| | seed phrases | using a Verus Mobile / Verus Desktop seed phrase — the exact derivation, why Verus is not HD, and the security caveat | | amounts | the money model — bigint satoshis, parseSats/toCoins, the one float64 boundary | | transfers | transfer / transferToken / convert / sendCurrency, conversions, pre-convert, mint / burn, UTXOs, change, re-validation | | VerusID lifecycle | commit → register, update, lock/unlock, revoke/recover, sign/verify messages | | marketplace offers | atomic-swap model, the maker/taker halves, currency↔currency and VerusID sell/buy/swap | | currencies | define + launch a currency offline (token / fractional basket / NFT), the full seven-output launch transaction, and pre-converting into a launching currency | | signing & wire format | why the bytes are the daemon's, the self-contained bundle, the proof rings | | architecture | the fork boundary, the two assemblers, what's unrepresentable vs checked, the differential harness | | fees | the daemon's output-count fee rule, what it charges for, and what it does not | | testing | the gate, the plain-node rule, the live-proof ring model |

Contributing

Issues and PRs welcome — start with CONTRIBUTING.md for the setup, the gate, and the two invariants that keep it trustworthy: amounts stay bigint, and the wire bytes are proven against a real daemon. Security issues (wrong bytes, amount precision, key handling): SECURITY.md.

Apache-2.0 · see NOTICE for the bundled forks.