{"id":33043861,"url":"https://github.com/gnolang/tm2-js-client","last_synced_at":"2026-04-27T15:00:49.170Z","repository":{"id":154635672,"uuid":"622859728","full_name":"gnolang/tm2-js-client","owner":"gnolang","description":"The Tendermint2 JS/TS client (SDK)","archived":false,"fork":false,"pushed_at":"2026-03-30T14:23:57.000Z","size":1765,"stargazers_count":11,"open_issues_count":8,"forks_count":5,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-03-30T16:10:23.675Z","etag":null,"topics":["client","gno","hacktoberfest","js","sdk","tendermint2","tm2","ts"],"latest_commit_sha":null,"homepage":"https://gno.land","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gnolang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-03T07:59:23.000Z","updated_at":"2026-02-05T16:23:07.000Z","dependencies_parsed_at":"2023-12-04T10:30:58.592Z","dependency_job_id":"24c9be4e-19c8-4d87-a64b-490f6e01a6ff","html_url":"https://github.com/gnolang/tm2-js-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gnolang/tm2-js-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnolang%2Ftm2-js-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnolang%2Ftm2-js-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnolang%2Ftm2-js-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnolang%2Ftm2-js-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnolang","download_url":"https://codeload.github.com/gnolang/tm2-js-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnolang%2Ftm2-js-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32341455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","gno","hacktoberfest","js","sdk","tendermint2","tm2","ts"],"created_at":"2025-11-13T23:00:42.710Z","updated_at":"2026-04-27T15:00:49.165Z","avatar_url":"https://github.com/gnolang.png","language":"TypeScript","funding_links":[],"categories":["SDKs \u0026 Clients"],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e⚛️ Tendermint2 JS/TS Client ⚛️\u003c/h2\u003e\n\n## Overview\n\n`@gnolang/tm2-js-client` is a JavaScript/TypeScript client implementation for Tendermint2-based chains. It is designed\nto make it\neasy for developers to interact with TM2 chains, providing a simplified API for account and transaction management. By\ndoing all the heavy lifting behind the scenes, `@gnolang/tm2-js-client` enables developers to focus on what really\nmatters -\nbuilding their dApps.\n\n## Key Features\n\n- JSON-RPC and WebSocket client support via a `Provider`\n- Simple account and transaction management API with a `Wallet`\n- Designed for easy extension for custom TM2 chains, such as [Gnoland](https://gno.land)\n\n## Installation\n\nTo install `@gnolang/tm2-js-client`, use your preferred package manager:\n\n```bash\npnpm add @gnolang/tm2-js-client\n```\n\n```bash\nnpm install @gnolang/tm2-js-client\n```\n\n## Common Terminology\n\n### Provider\n\nA `Provider` is an interface that abstracts the interaction with the Tendermint2 chain, making it easier for users to\ncommunicate with it. Rather than requiring users to understand which endpoints are exposed, what their return types are,\nand how they are parsed, the `Provider` abstraction handles all of this behind the scenes. It exposes useful API methods\nthat users can use and expects concrete types in return.\n\nCurrently, the `@gnolang/tm2-js-client` package provides support for two Provider implementations:\n\n- `JSON-RPC Provider`: executes each call as a separate HTTP RPC call.\n- `WS Provider`: executes each call through an active WebSocket connection, which requires closing when not needed\n  anymore.\n\n### Signer\n\nA `Signer` is an interface that abstracts the interaction with a single Secp256k1 key pair. It exposes methods for\nsigning data, verifying signatures, and getting metadata associated with the key pair, such as the address.\n\nCurrently, the `@gnolang/tm2-js-client` package provides support for two `Signer` implementations:\n\n- `Key`: a signer that is based on a raw Secp256k1 key pair.\n- `Ledger`: a signer that is based on a Ledger device, with all interaction flowing through the user's device.\n\n### Wallet\n\nA `Wallet` is a user-facing API that is used to interact with an account. A `Wallet` instance is tied to a single key\npair and essentially wraps the given `Provider` for that specific account.\n\nA wallet can be generated from a randomly generated seed, a private key, or instantiated using a Ledger device.\n\nUsing the `Wallet`, users can easily interact with the Tendermint2 chain using their account without having to worry\nabout account management.\n\n## Documentation\n\nFor the sake of keeping the README short and sweet, you can find the documentation and usage examples\nfor the package [here](https://docs.gno.land/reference/tm2-js-client/).\n\n## Acknowledgements\n\n`@gnolang/tm2-js-client` is, and will continue to be, [licensed under Apache 2](LICENSE).\n\nIt is made by the community, for the community, and any contribution is greatly appreciated.\n\nA special thank-you goes out to the [Onbloc](https://github.com/onbloc) team, building\n[Adena wallet](https://github.com/onbloc/adena-wallet) and other gno projects, whose extended supported\nmade this package possible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnolang%2Ftm2-js-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnolang%2Ftm2-js-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnolang%2Ftm2-js-client/lists"}