---
title: "radix-web3.js"
url: "https://radix-wiki.miow.me/developers/tools/radix-web3-js"
updated: 2026-10-03
description: "radix-web3.js is a community TypeScript monorepo that publishes nine npm packages for building on Radix: a core client, a wallet-connect client, an…"
---

# radix-web3.js

|  |  |
| --- | --- |
| **Type** | TypeScript package suite (monorepo) |
| **Author** | [xstelea](https://github.com/xstelea) |
| **Packages** | 9 published on [npm](https://www.npmjs.com/package/radix-web3.js) |
| **Runtime** | Node.js ≥ 20 and browser |
| **Built on** | [Effect](https://effect.website/) |
| **Licence** | MIT in `package.json`; no `LICENSE` file in the repository |
| **First commit** | 26 January 2025 |
| **Last release** | 20 June 2026 |
| **Docs** | [xstelea.github.io/radix-web3.js](https://xstelea.github.io/radix-web3.js/) |
| **Repository** | [GitHub](https://github.com/xstelea/radix-web3.js) |

# radix-web3.js

## Introduction

[radix-web3.js](https://github.com/xstelea/radix-web3.js) is a community TypeScript monorepo that publishes nine npm packages for building on Radix: a core client, a wallet-connect client, an [Effect](https://effect.website/)-based [Gateway](/developers/frontend/02-gateway-sdk) client, transaction and streaming helpers, an [SBOR](https://docs.radixdlt.com/docs/sbor) schema builder, an agent toolkit, and the `rdx` command-line tool. It is the work of [xstelea](https://github.com/xstelea), who described himself in the [Radix DLT Official Telegram](https://t.me/radix_dlt/997291) on 6 August 2026 as previously "lead of the dApp engineering team", and who also maintains [Radix Context](/developers/ai-agents/radix-context), [Radix Skills](/developers/ai-agents/radix-skills) and [Hookah](/developers/tools/hookah).

It is not an official [radixdlt](https://github.com/radixdlt) project and does not replace the [Radix dApp Toolkit](/developers/frontend/01-radix-dapp-toolkit), which remains the recommended front-end integration path. Its relevance is narrower and specific: it is the largest community-maintained TypeScript surface for Radix, it is the reference implementation the [radix-skills](/developers/ai-agents/radix-skills) agent skill clones as one of its two required source checkouts, and it carries an agent-first transaction CLI that has no official counterpart.

## The Packages

All nine packages are published from a single [pnpm](https://pnpm.io/workspaces) workspace and versioned together with [Changesets](https://github.com/changesets/changesets); the most recent release published all of them on 20 June 2026. Versions and monthly download counts below were read from the npm registry on 21 September 2026, over the thirty days to 20 September. The versions are still those of the 20 June release, so the download column is the only thing that has moved – and against the previous reading on 23 August it moved down, from 916 downloads across the nine packages to 750.

|  |  |  |  |
| --- | --- | --- | --- |
| **Package** | **Version** | **Downloads/mo** | **Purpose** |
| [`radix-web3.js`](https://www.npmjs.com/package/radix-web3.js) | 0.6.3 | 323 | Core client: accounts, keypairs, [manifests](/developers/transactions/01-manifest-language), balances, submission |
| [`@radix-effects/gateway`](https://www.npmjs.com/package/@radix-effects/gateway) | 0.6.4 | 61 | Effect-based [Gateway API](/developers/infrastructure/02-radix-apis) client for Node and browser |
| [`radix-connect`](https://www.npmjs.com/package/radix-connect) | 0.3.3 | 123 | Encrypted [Radix Wallet](/contents/tech/core-protocols/radix-wallet) interaction over [Radix Connect](/contents/tech/core-protocols/radix-connect) Relay |
| [`radix-agent-toolkit`](https://www.npmjs.com/package/radix-agent-toolkit) | 0.1.11 | 35 | [GOAT SDK](https://github.com/goat-sdk/goat) wallet integration exposing account and transaction tools to agents |
| [`rdx-cli`](https://www.npmjs.com/package/rdx-cli) | 0.2.4 | 33 | The `rdx` executable — agent-first [Manifest](/contents/tech/core-protocols/transaction-manifests) V2 workflows |
| [`@radix-effects/tx-tool`](https://www.npmjs.com/package/@radix-effects/tx-tool) | 0.2.4 | 66 | Build, analyse, preview, sign, submit and track transactions |
| [`@radix-effects/transaction-stream`](https://www.npmjs.com/package/@radix-effects/transaction-stream) | 0.1.11 | 41 | Stream utilities for polling Gateway transaction history |
| [`@radix-effects/sbor`](https://www.npmjs.com/package/@radix-effects/sbor) | 0.3.3 | 21 | Schema builder for parsing SBOR-shaped values |
| [`@radix-effects/shared`](https://www.npmjs.com/package/@radix-effects/shared) | 0.0.5 | 47 | Shared Effect schemas and branded Radix domain types |

The SBOR package is explicitly a continuation rather than a new idea. The repository's own [tribute note](https://github.com/xstelea/radix-web3.js#tribute) credits `sbor-ez-mode` and [gateway-ez-mode](https://github.com/CalamariRadix/gateway-ez-mode) by daan_xrd as the origin of the developer-friendly decoding API, rebuilt here around Effect Schema, branded types and explicit encode/decode transforms.

## rdx: An Agent-First Transaction CLI

The most distinctive package is [rdx-cli](https://www.npmjs.com/package/rdx-cli), which installs an `rdx` binary for driving [Transaction Manifest V2](/developers/transactions/02-transaction-lifecycle) workflows from files. Its [README](https://github.com/xstelea/radix-web3.js/blob/main/packages/cli/README.md) is unambiguous that it is not a wallet: it "never stores, accepts, or derives private keys", and participants sign the generated `hash.hex` values out of band and return signature files. Commands are non-interactive and print JSON by default, which is the point — the intended caller is a coding agent or a script, not a person.

A run moves through prepare → add signatures → notarize → submit → status, leaving artefacts on disk at each step (`prepared.json`, `transactionIntent.json`, `staticAnalysis.json`, `notarizedTransaction.hex`, `submitResult.json`). Direct child [subintents](/contents/tech/core-concepts/subintents-and-pre-authorizations) are supported by passing a subintents workflow file at preparation. Read-only account and history commands query the Gateway and require no signing at all, and `rdx llm` prints an embedded Markdown guide written for coding agents.

The scope is deliberately narrow, and the README states the limits plainly: Manifest V2 only, one root intent plus direct child subintents, Ed25519 keys and signatures only, out-of-band signing only, and no browser or hardware wallet pairing. Two operational cautions carry real risk — `rdx` defaults to **Mainnet**, and prepared artefacts are network-bound, so a transaction prepared against one network must not be submitted to another.

Alongside the CLI the package ships a draft specification, [Radix Agent Protocol (RAP/1)](https://github.com/xstelea/radix-web3.js/blob/main/packages/cli/Radix%20Agent%20Protocol%20(RAP)%20V1.md), which describes the same workflow as a finite-state protocol — states, JSON payload shapes, transitions, validation rules and error shapes — in normative `MUST`/`SHOULD` language. RAP/1 is written to be implementable by an HTTP endpoint, a queue worker or an in-process SDK rather than only a CLI, and it is marked "Draft… not a final external standard"; it has no adopters outside this repository.

## Effect as the Design Choice

The packages under the `@radix-effects` scope are built on [Effect](https://effect.website/), a TypeScript library that models errors, dependencies and [resources](/contents/tech/core-concepts/resources) in the type system rather than in `try`/`catch` and ad-hoc wiring. The practical consequence for Radix work is that the failure modes a dApp actually hits — a Gateway timeout, a rejected intent, a transaction that never commits — become typed values a caller must handle, and services such as the Gateway client are injected rather than constructed inline.

That choice is also the main adoption cost. Effect is a substantial dependency with its own idioms, and a team already using the official [Radix dApp Toolkit](/developers/frontend/01-radix-dapp-toolkit) and [Gateway API SDK](https://www.npmjs.com/package/@radixdlt/babylon-gateway-api-sdk) takes on a second, unfamiliar programming model to use these packages. The repository's own agent instructions reflect how much of the design leans on it: they direct an agent to read the vendored Effect source for idiomatic usage before implementing anything.

## Adoption and Caveats

Three things are worth checking before depending on it.

- **Usage is small, and the comparison is instructive.** Over the thirty days to 20 September 2026 the core package recorded **323 downloads** and `rdx-cli` **33**, against **33,540** for the official [@radixdlt/radix-dapp-toolkit](https://www.npmjs.com/package/@radixdlt/radix-dapp-toolkit) – a ratio of roughly 104 to 1. That gap narrowed from 190 to 1 a month earlier, but read the two columns before taking it as adoption: the official toolkit fell by about a quarter over the same window, and the nine packages together drew **750** downloads against 916 on 23 August. The GitHub repository carried **8 stars, 4 forks and 23 open issues** – one fork and three issues more than in August, and the same eight stars. This is a personal project of substance, not an ecosystem standard.
- **The licence is inconsistent.** Eight of the nine packages declare `"license": "MIT"` in their `package.json`, and `@radix-effects/sbor` declares none — but the repository itself carries no `LICENSE` file. Under [GitHub's stated default](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service), publishing source without a licence grants no rights beyond viewing and forking, so the npm declaration and the repository disagree about what a user may do with the code. The author's [Hookah](https://github.com/xstelea/hookah), by contrast, ships an MIT `LICENSE` file.
- **It is effectively one maintainer.** Of the repository's contributors, [xstelea](https://github.com/xstelea) accounts for 172 commits; the remainder are release bots and a single three-commit outside contributor. Development has also been quiet — the last release was 20 June 2026 and the last commit of any kind 21 June 2026 ("Add radix-web3 agent skill"), so as of 21 September 2026 nothing has been pushed for thirteen weeks.

The point about the licence matters beyond this repository, because [radix-skills](/developers/ai-agents/radix-skills) instructs an agent to clone radix-web3.js as one of its two authoritative source checkouts. An agent grounding Radix answers in this code is grounding them in a community library whose reuse terms are ambiguous, and — unlike its companion checkout [radixdlt/radixdlt-scrypto](https://github.com/radixdlt/radixdlt-scrypto) — one that does not describe official protocol behaviour.

## External Links

- [xstelea/radix-web3.js – GitHub Repository](https://github.com/xstelea/radix-web3.js)
- [Documentation site](https://xstelea.github.io/radix-web3.js/)
- [radix-web3.js on npm](https://www.npmjs.com/package/radix-web3.js)
- [rdx-cli on npm](https://www.npmjs.com/package/rdx-cli)
- [Radix Agent Protocol (RAP/1) draft](https://github.com/xstelea/radix-web3.js/blob/main/packages/cli/Radix%20Agent%20Protocol%20(RAP)%20V1.md)
- [Effect – the TypeScript library the packages are built on](https://effect.website/)
- [gateway-ez-mode – the SBOR package's acknowledged predecessor](https://github.com/CalamariRadix/gateway-ez-mode)
