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

arbitrum-machine-rwa-sdk

v0.2.0

Published

TypeScript/JavaScript SDK for the Arbitrum Machine RWA framework: ONCHAINID, ERC-3643 vaults, Machine/Contract NFTs

Readme

Arbitrum Machine RWA SDK

The Arbitrum Machine Real World Asset (RWA) SDK enables the tokenization of physical assets on Arbitrum. It provides a TypeScript/JavaScript interface for creating compliant security tokens that represent fractionalized ownership of machines and equipment.

What This SDK Does

  • Tokenize machines as NFTs with embedded DID documents
  • Fractionalize ownership into T-REX (ERC-3643) compliant security tokens
  • Manage compliance through on-chain KYC via ONCHAINID
  • Distribute yield automatically to token holders

Documentation

| Section | Description | Audience | |---------|-------------|----------| | Introduction | Framework overview, standards, Sepolia addresses | Everyone | | Core modules | onchainid, mnft, cnft, vault, rwanft | Everyone | | Roles & responsibilities | Framework Owner through Investor | Everyone | | Manual testing: SDK | Hands-on workflow via TypeScript + SDK | Integrators | | Manual testing: Scaffold-ETH | Hands-on workflow via /rwa UI + MetaMask | QA / demos | | Learn the Framework | Understand the RWA ecosystem, roles, and concepts | Everyone | | SDK Reference | API documentation with code examples | Developers | | Maintainer Guide | Deploy, update, and test the framework / SDK | SDK Maintainers |

Educational Documentation

| Guide | What You'll Learn | |-------|-------------------| | Introduction | Framework overview and SDK architecture | | Roles & Responsibilities | Framework Owner, Claim Issuers, Machine Issuers, Users | | Core Concepts | Identity, Claims, MachineNFTs, Vaults, Security Tokens |

SDK Reference

| Module | Purpose | |--------|---------| | Initialization | SDK setup and configuration | | Identity | Create identities, issue and manage claims | | RWA NFT | Machine regulators, issuers, block state | | Contract NFT | Create, sign, cancel contracts | | Machine NFT | Register machines, read DID documents | | Vault | Create vaults, mint tokens, manage yield | | Common Workflows | End-to-end integrator flows |

Quick Start

import { RWA, Chain } from "arbitrum-machine-rwa-sdk";
import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider("https://sepolia-rollup.arbitrum.io/rpc");
const sdk = new RWA({ chainId: Chain.ARBITRUM_SEPOLIA, provider });

const { verified } = await sdk.onchainid.isVerified({ wallet: sdk.getManifest().alice });
console.log("Alice verified:", verified);

Install

npm install arbitrum-machine-rwa-sdk ethers
# optional: viem read helpers and calldata encoding
npm install viem

Monorepo (before publish):

cd sdk
npm install
npm run build
npm test

Module Architecture

┌─────────────────────────────────────────────────────────────┐
│                     Arbitrum RWA SDK                        │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐            │
│  │  onchainid  │ │    mnft     │ │    cnft     │            │
│  │  (Identity) │ │ (Machines)  │ │ (Contracts) │            │
│  └─────────────┘ └─────────────┘ └─────────────┘            │
│  ┌─────────────┐ ┌─────────────┐                            │
│  │    vault    │ │   rwanft    │                            │
│  │  (Tokens)   │ │  (Factory)  │                            │
│  └─────────────┘ └─────────────┘                            │
└─────────────────────────────────────────────────────────────┘

Read operations: use the provider passed at initialization
Write operations: pass a Signer to each module method

Supported Networks

| Network | Chain ID | Enum | |---------|----------|------| | Arbitrum One | 42161 | Chain.ARBITRUM_ONE | | Arbitrum Sepolia | 421614 | Chain.ARBITRUM_SEPOLIA |

Sync Addresses After Deploy

SDK-only (npm: no Yarn):

cd sdk
npm run sync-addresses
npm run build
npm run verify:workflow

See SDK standalone testing for every command to test the full workflow from sdk/ alone.

After a fresh monorepo deploy (optional: only if you redeployed contracts):

cd frontend && yarn bootstrap:arbitrum-sepolia
cd ../sdk && npm run sync-addresses && npm run build

Legacy Helpers

The package also exports low-level viem helpers (readIsVerified, encodeDepositAndMint), manifest parsers, demo constants, and extended ABIs for apps that prefer direct contract access.

License

Apache-2.0