README.md

August 2, 2026 · View on GitHub

⚛️ GNO JS/TS Client ⚛️

Overview

@gnolang/gno-js-client is a JavaScript/TypeScript client implementation for Gno chains. It is an extension of the tm2-js-client, but with Gno-specific functionality.

Key Features

  • Provides the ability to interact with Gno Realms / Packages
  • Easy interaction with VM-specific ABCI queries

Installation

To install @gnolang/gno-js-client, use your preferred package manager:

yarn add @gnolang/gno-js-client
npm install @gnolang/gno-js-client

Error handling

VM queries that the node refuses come back as a successful HTTP response with an error inside it, so the provider raises them as typed errors. Branch on the class — or on type, which holds the amino type URL — instead of matching on messages:

import { GnoJSONRPCProvider, NoRenderDeclError } from "@gnolang/gno-js-client";

const provider = await GnoJSONRPCProvider.create("https://rpc.gno.land");

try {
  await provider.getRenderOutput("gno.land/p/demo/ufmt", "");
}
catch (err) {
  if (err instanceof NoRenderDeclError) {
    // the package is there, it just declares no Render function
  }
}

Every error extends GnoABCIError (itself a TM2Error) and keeps the node's raw log under log.

Documentation

For the sake of keeping the README short and sweet, you can find the documentation and usage examples for the package here.