{"id":26806967,"url":"https://github.com/CosmWasm/ts-codegen","last_synced_at":"2025-03-30T00:01:58.293Z","repository":{"id":37074851,"uuid":"482346319","full_name":"hyperweb-io/ts-codegen","owner":"hyperweb-io","description":"Convert your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.","archived":false,"fork":false,"pushed_at":"2025-02-18T20:36:25.000Z","size":3235,"stargazers_count":116,"open_issues_count":46,"forks_count":30,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-13T02:03:50.796Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hyperweb.io/stack/ts-codegen","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/hyperweb-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-Apache","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-16T19:44:27.000Z","updated_at":"2025-02-18T20:36:30.000Z","dependencies_parsed_at":"2024-04-16T18:59:10.469Z","dependency_job_id":"382873dc-2112-47d6-9f37-b15c545ad6ae","html_url":"https://github.com/hyperweb-io/ts-codegen","commit_stats":{"total_commits":570,"total_committers":5,"mean_commits":114.0,"dds":"0.15438596491228074","last_synced_commit":"3b9b357f76326cf4f5b4b40b1dbad926d99968be"},"previous_names":["pyramation/cosmwasm-typescript-gen","pyramation/cosmscript","hyperweb-io/ts-codegen","cosmwasm/ts-codegen"],"tags_count":263,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fts-codegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fts-codegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fts-codegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperweb-io%2Fts-codegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperweb-io","download_url":"https://codeload.github.com/hyperweb-io/ts-codegen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246258866,"owners_count":20748573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-03-30T00:01:17.016Z","updated_at":"2025-03-30T00:01:58.283Z","avatar_url":"https://github.com/hyperweb-io.png","language":"TypeScript","readme":"# @cosmwasm/ts-codegen\n\nGenerate TypeScript SDKs for your CosmWasm smart contracts\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"120\" src=\"https://user-images.githubusercontent.com/545047/191621556-6f1baa40-15ff-4465-8d80-63b3ff9bc23a.svg\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003ca href=\"https://github.com/CosmWasm/ts-codegen/actions/workflows/run-tests.yaml\"\u003e\n    \u003cimg height=\"20\" src=\"https://github.com/CosmWasm/ts-codegen/actions/workflows/run-tests.yaml/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/hyperweb-io/lib-count\"\u003e\n  \u003cimg height=\"20\" src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fhyperweb-io%2Flib-count%2Fmain%2Foutput%2Fbadges%2Fproducts%2Fcosmwasm%2Ftotal.json\"/\u003e  \n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/hyperweb-io/lib-count\"\u003e\n  \u003cimg height=\"20\" src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fhyperweb-io%2Flib-count%2Fmain%2Foutput%2Fbadges%2Fproducts%2Fcosmwasm%2Fmonthly.json\"/\u003e  \n  \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://github.com/CosmWasm/ts-codegen/blob/main/LICENSE-MIT\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/CosmWasm/ts-codegen/blob/main/LICENSE-Apache\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/badge/license-Apache-blue.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@cosmwasm/ts-codegen\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/github/package-json/v/CosmWasm/ts-codegen?filename=packages%2Fts-codegen%2Fpackage.json\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n```\nnpm install @cosmwasm/ts-codegen\n```\n\nThe quickest and easiest way to interact with CosmWasm Contracts. `@cosmwasm/ts-codegen` converts your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.\n\n🎥 [Checkout our video playlist](https://cosmology.zone/learn/ts-codegen) to learn how to use `ts-codegen`!\n## Table of contents\n\n- [@cosmwasm/ts-codegen](#cosmwasmts-codegen)\n  - [Table of contents](#table-of-contents)\n- [Usage](#usage)\n    - [Programmatic Usage](#programmatic-usage)\n    - [Types](#types)\n    - [TS Clients](#client)\n    - [React Query](#react-query)\n    - [Recoil](#recoil)\n    - [Message Composer](#message-composer)\n    - [Message Builder](#message-builder)\n    - [Use Contracts Hook](#use-contracts-hooks-usage)\n    - [Bundles](#bundles)\n    - [CLI Usage and Examples](#cli-usage-and-examples)\n    - [Advanced Usage](#advanced-usage)\n- [JSON Schema](#json-schema)\n    - [JSON Schema Generation](#json-schema-generation)\n    - [Exporting Schemas](#exporting-schemas)\n- [Developing](#developing)\n- [Related](#related)\n\n## Usage\n\n### Programmatic Usage\n\nFor production usage, we recommend setting up a build script that uses the main entry point:\n\n```ts\nimport codegen from '@cosmwasm/ts-codegen';\n\ncodegen({\n  contracts: [\n    {\n      name: 'SG721',\n      dir: './path/to/sg721/schema'\n    },\n    {\n      name: 'Minter',\n      dir: './path/to/Minter/schema'\n    }\n  ],\n  outPath: './path/to/code/src/',\n\n  // options are completely optional ;)\n  options: {\n    bundle: {\n      bundleFile: 'index.ts',\n      scope: 'contracts'\n    },\n    types: {\n      enabled: true\n    },\n    client: {\n      enabled: true\n    },\n    reactQuery: {\n      enabled: true,\n      optionalClient: true,\n      version: 'v4',\n      mutations: true,\n      queryKeys: true,\n      queryFactory: true,\n    },\n    recoil: {\n      enabled: false\n    },\n    messageComposer: {\n      enabled: false\n    },\n    messageBuilder: {\n      enabled: false\n    },\n    useContractsHook: {\n      enabled: false\n    }\n  }\n}).then(() =\u003e {\n  console.log('✨ all done!');\n});\n```\n#### Types\n\nTypescript types and interfaces are generated in separate files so they can be imported into various generated plugins.\n\n[see example output code](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/sg721/Sg721.types.ts)\n\n#### Types Options\n\n| option                   | description                                          |\n| ------------------------ | ---------------------------------------------------- |\n| `types.enabled`          | enable type generation                               |\n| `types.aliasExecuteMsg`  | generate a type alias based on the contract name     |\n| `types.aliasEntryPoints` | generate type aliases for the entry points based on the contract name     |\n\n### Client\n\nThe `client` plugin will generate TS client classes for your contracts. This option generates a `QueryClient` for queries as well as a `Client` for queries and mutations.\n\n[see example output code](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/sg721/Sg721.client.ts )\n\n#### Client Options\n\n| option                                  | description                                          |\n| --------------------------------------- | ---------------------------------------------------  |\n| `client.enabled`                        | generate TS client classes for your contracts        |\n| `client.execExtendsQuery`               | execute should extend query message clients          |\n| `client.noImplicitOverride`             | should match your tsconfig noImplicitOverride option |\n| `client.useDeclareKeyword`              | use declare keyword for inherited class fields       |\n\n\n### React Query\n\nGenerate [react-query v3](https://react-query-v3.tanstack.com/) or [react-query v4](https://tanstack.com/query/v4/) bindings for your contracts with the `react-query` command.\n\n[see example output code](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/sg721/Sg721.react-query.ts)\n\n#### React Query Options\n\n| option                      | description                                                                  |\n| --------------------------- | ---------------------------------------------------------------------------- |\n| `reactQuery.enabled`        | enable the react-query plugin                                                |\n| `reactQuery.optionalClient` | allows contract client to be undefined as the component renders              |\n| `reactQuery.queryKeys`      | generates a const queryKeys object for use with invalidations and set values |\n| `reactQuery.queryFactory`   | generates a const queryFactory object for useQueries and prefetchQueries use |\n| `reactQuery.version`        | `v4` uses `@tanstack/react-query` and `v3` uses `react-query`                |\n| `reactQuery.mutations`      | also generate mutations                                                      |\n| `reactQuery.camelize`       | use camelCase style for property names                                       |\n\n\n### Recoil\n\nGenerate [recoil](https://recoiljs.org/) bindings for your contracts with the `recoil` command.\n\n[see example output code](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/sg721/Sg721.recoil.ts)\n\n#### Recoil Options\n\n| option                         | description                                                         |\n| ------------------------------ | ------------------------------------------------------------------- |\n| `recoil.enabled`               | enable the recoil plugin                                            |\n\n### Message Composer\n\nGenerate pure message objects with the proper `utf8` encoding and `typeUrl` configured that you can broadcast yourself via `cosmjs` with the `message-composer` command.\n\n[see example output code](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/sg721/Sg721.message-composer.ts)\n\n#### Message Composer Options\n\n| option                         | description                                                         |\n| ------------------------------ | ------------------------------------------------------------------- |\n| `messageComposer.enabled`      | enable the messageComposer plugin                                   |\n\n### Message Builder\n\nGenerate raw message jsons for use in your application with the `message-builder` command.\n\n[see example output code](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/sg721/Sg721.message-builder.ts)\n\n#### Message Builder Options\n\n| option                   | description                        |\n|------------------------- | ---------------------------------- |\n| `messageBuilder.enabled` | enable the messageBuilder plugin   |\n\n\n### `useContracts` Hook\n\nGenerates `useContracts` hook to easily access contracts, already equipped with a signing client\n\n| option                           | description                             |\n| -------------------------------- | --------------------------------------- |\n| `useContractsHook.enabled`       | enable the `useContracts` plugin        |\n\n#### Example Output\n\n- [Provider](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/builder/bundler_test/contracts/Factory.provider.ts)\n- [Contract Providers](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/builder/bundler_test/contracts/contractContextProviders.ts)\n- [Contract Context](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/builder/bundler_test/contracts/contracts-context.tsx)\n- [Context Base](https://github.com/CosmWasm/ts-codegen/blob/main/__output__/builder/bundler_test/contracts/contractContextBase.ts)\n\n#### Use Contracts Provider Usage\n\n```tsx\nimport { useChain } from '@cosmos-kit/react';\nimport { ContractsProvider } from '../path/to/codegen/contracts-context';\n\nexport default function YourComponent() {\n\n  const {\n    address,\n    getCosmWasmClient,\n    getSigningCosmWasmClient\n  } = useChain(chainName);\n\n  return (\n    \u003cContractsProvider\n      contractsConfig={{\n        address,\n        getCosmWasmClient,\n        getSigningCosmWasmClient,\n      }}\n    \u003e\n        \u003cSomeCoolComponent /\u003e\n    \u003c/ContractsProvider\u003e\n  )\n};\n```\n\n#### Use Contracts Provider Babel/TSC config\n\nIf you're using Babel, please make sure include `'@babel/preset-react'` in devDeps and presets in `.babelrc.js`:\n\n```js\n presets: [\n   '@babel/typescript',\n   '@babel/env',\n   '@babel/preset-react',\n ]\n```\n\nFor `tsc`, you should set the `jsx` option to `'react'` in your `tsconfig.json`.\n\n#### Use Contracts Hooks Usage\n\nOnce enabled, you can get contracts very simply:\n\n```ts\nconst { marketplace } = useContracts();\n```\n\n```ts\nconst marketplaceClient = marketplace.signingClient(marketplaceContract);\nawait marketplaceClient.updateAskPrice({\n  collection: token.collectionAddr,\n  price: {\n    amount,\n    denom,\n  },\n  tokenId,\n});\n```\n\n### Bundles\n\nThe bundler will make a nice package of all your contracts. For example:\n\n```ts\nconst {\n  MinterQueryClient,\n  useMinterConfigQuery\n} = contracts.Minter;\n\nconst { CwAdminFactoryClient } = contracts.CwAdminFactory;\n```\n#### Bundler Options\n\n| option                | description                                                                      |\n| --------------------- | -------------------------------------------------------------------------------- |\n| `bundle.enabled`      | enable the bundler plugin                                                        |\n| `bundle.scope`        | name of the scope, defaults to `contracts` (you can use `.` to make more scopes) |\n| `bundle.bundleFile`   | name of the bundle file                                                          |\n\n#### Coding Style\n\n| option                | description                          | default |\n| --------------------- | ------------------------------------ | ------- |\n| `useShorthandCtor`    |  Enable using shorthand constructor. | true    |\n\nUsing shorthand constructor (Might not be transpiled correctly with babel):\n\n```ts\n  constructor(\n    protected address: string | undefined,\n    protected cosmWasmClient: CosmWasmClient | undefined,\n    protected signingCosmWasmClient: SigningCosmWasmClient | undefined,\n    private TSign?: new (\n      client: SigningCosmWasmClient,\n      sender: string,\n      contractAddress: string\n    ) =\u003e TSign,\n    private TQuery?: new (\n      client: CosmWasmClient,\n      contractAddress: string\n    ) =\u003e TQuery,\n    private TMsgComposer?: new (\n      sender: string,\n      contractAddress: string\n    ) =\u003e TMsgComposer\n  ) {}\n```\n\nWithout using shorthand constructor:\n\n```ts\n  address: string | undefined;\n  ...\n  TMsgComposer?: new (\n    sender: string,\n    contractAddress: string\n  ) =\u003e TMsgComposer;\n\n  constructor(\n    address: string | undefined,\n    ...\n    TMsgComposer?: new (\n      sender: string,\n      contractAddress: string\n    ) =\u003e TMsgComposer\n  ) {\n    this.address = address;\n    ...\n    this.TMsgComposer = TMsgComposer;\n  }\n```\n\n### CLI Usage and Examples\n\nYou can get started quickly using our `cli` by globally installing via npm:\n\n```\nnpm install @cosmwasm/ts-codegen\n```\n\nClone your project and `cd` into your contracts folder\n\n```sh\ngit clone https://github.com/hyperweb-io/launchpad.git\ncd launchpad/contracts/whitelists/whitelist\n```\n\nRun `ts-codegen` or `cosmwasm-ts-codegen` to generate your code.\n\n```sh\nts-codegen generate \\\n          --plugin client \\\n          --schema ./schema \\\n          --out ./ts \\\n          --name Whitelist \\\n          --no-bundle\n```\n\nThe output will be in the folder specified by `--out`, enjoy!\n\n#### Interactive prompt\n\nThe CLI is interactive, and if you don't specify an option, it will interactively prompt you.\n\n```sh\ncosmwasm-ts-codegen generate\n? [plugin] which plugins? (Press \u003cspace\u003e to select, \u003ca\u003e to toggle all, \u003ci\u003e to invert selection)\n❯◯ client\n ◯ recoil\n ◯ react-query\n ◯ message-composer\n ```\n\nIn this example, you can press space bar to select a number of plugins you wish you enable.\n#### Specifying Plugins\n\nAdditionally, it will also show you the name of the field (in this case `plugin`) so you can specify the parameter (for example when using CI/CD) on the comand line. Here is an exampl with `--plugin` set to `client` via CLI:\n\n```sh\nts-codegen generate \\\n    --plugin client\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName\n ```\n\nYou can specify multiple `--plugin` options using the `generate` command:\n\n```sh\nts-codegen generate \\\n          --plugin client \\\n          --plugin recoil \\\n          --schema ./schema \\\n          --out ./ts \\\n          --name SG721\n```\n\n#### Bypassing the Prompt\n\nAll options can be provided so you can bypass the prompt.\n\nFor confirm options, you can pass `--no-\u003cname\u003e` to set the value to false. Here is an example without optional client, using v3 for `react-query`, without mutations:\n\n```sh\nts-codegen generate \\\n    --plugin client \\\n    --plugin react-query \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName \\\n    --version v3 \\\n    --no-optionalClient \\\n    --no-mutations\n```\n\nExample with optional client, using v4, with mutations:\n\n```sh\nts-codegen generate \\\n    --plugin react-query \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName \\\n    --optionalClient \\\n    --version v4 \\\n    --mutations\n```\n\n#### Types Only Option\n\nIf needed, you can generate only the types with the `typesOnly` option;\n\n```sh\nts-codegen generate \\\n          --typesOnly \\\n          --schema ./schema \\\n          --out ./ts \\\n          --name SG721\n```\n\n#### Client via CLI\n\n```sh\nts-codegen generate \\\n    --plugin client\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName\n```\n\n\n#### React Query via CLI\n\nHere is an example without optional client, using v3 for `react-query`, without mutations:\n\n```sh\nts-codegen generate \\\n    --plugin client \\\n    --plugin react-query \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName \\\n    --version v3 \\\n    --no-optionalClient \\\n    --no-mutations\n```\n\nExample with optional client, using v4, with mutations:\n\n```sh\nts-codegen generate \\\n    --plugin react-query \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName \\\n    --optionalClient \\\n    --version v4 \\\n    --mutations\n```\n\n#### Recoil via CLI\n\n```sh\nts-codegen generate \\\n    --plugin recoil \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName\n```\n\n#### Message Composer via CLI\n\n```sh\nts-codegen generate \\\n    --plugin message-composer \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName\n```\n\n#### Message Builder via CLI\n\n```sh\nts-codegen generate \\\n    --plugin message-builder \\\n    --schema ./schema \\\n    --out ./ts \\\n    --name MyContractName\n```\n\n### JSON Schema\n\nWe generate code from the [JSON Schema](https://json-schema.org/) exported from CosmWasm smart contracts.\n### JSON Schema Generation\n\nCurrently you have to have the JSON Schema output. Here is an example to start.\n\nFirst, get the Rust contracts and run `cargo build`:\n\n```sh\ngit clone git@github.com:public-awesome/stargaze-contracts.git\ncd stargaze-contracts\ncargo build\n```\n\nnow build the schema with `cargo schema`\n\n```sh\ncd contracts/sg721/\ncargo schema\n```\n### Exporting Schemas\n#### `cosmwasm v1.1` Example\n\nUsing the new `write_api` method, you can export schemas:\n\n```rs\nuse cosmwasm_schema::write_api;\n\nuse cw4_group::msg::{ExecuteMsg, InstantiateMsg, QueryMsg};\n\nfn main() {\n    write_api! {\n        instantiate: InstantiateMsg,\n        execute: ExecuteMsg,\n        query: QueryMsg,\n    }\n}\n```\n\n#### `cosmwasm_std` Example\n\nHere is a legacy example:\n\n```rs\nuse cosmwasm_std::{Addr, CosmosMsg, Empty};\n\nexport_schema_with_title(\u0026schema_for!(MinterData), \u0026out_dir, \"MinterResponse\");\nexport_schema_with_title(\u0026schema_for!(Addr), \u0026out_dir, \"StakingResponse\");\nexport_schema_with_title(\u0026schema_for!(Addr), \u0026out_dir, \"DaoResponse\");\nexport_schema_with_title(\n      \u0026schema_for!(CosmosMsg\u003cEmpty\u003e),\n      \u0026out_dir,\n      \"CosmosMsg_for_Empty\",\n);\n```\n\n## Developing\n\n### Initial setup\n\n```\nyarn\nyarn bootstrap\n```\n\n### Building\n\n```\nyarn build\n```\n\n### Tests\n\nThen `cd` into a package and run the tests\n\n```\ncd ./packages/ast\nyarn test:watch\n```\n\n### Working with ASTs\n\nSee the [docs](https://github.com/CosmWasm/ts-codegen/blob/main/packages/ast/README.md) in the `@cosmwasm/ts-codegen-ast` package.\n\n## Interchain JavaScript Stack \n\nA unified toolkit for building applications and smart contracts in the Interchain ecosystem ⚛️\n\n| Category              | Tools                                                                                                                  | Description                                                                                           |\n|----------------------|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|\n| **Chain Information**   | [**Chain Registry**](https://github.com/hyperweb-io/chain-registry), [**Utils**](https://www.npmjs.com/package/@chain-registry/utils), [**Client**](https://www.npmjs.com/package/@chain-registry/client) | Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application. |\n| **Wallet Connectors**| [**Interchain Kit**](https://github.com/hyperweb-io/interchain-kit)\u003csup\u003ebeta\u003c/sup\u003e, [**Cosmos Kit**](https://github.com/hyperweb-io/cosmos-kit) | Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface. |\n| **Signing Clients**          | [**InterchainJS**](https://github.com/hyperweb-io/interchainjs)\u003csup\u003ebeta\u003c/sup\u003e, [**CosmJS**](https://github.com/cosmos/cosmjs) | A single, universal signing interface for any network |\n| **SDK Clients**              | [**Telescope**](https://github.com/hyperweb-io/telescope)                                                          | Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules. |\n| **Starter Kits**     | [**Create Interchain App**](https://github.com/hyperweb-io/create-interchain-app)\u003csup\u003ebeta\u003c/sup\u003e, [**Create Cosmos App**](https://github.com/hyperweb-io/create-cosmos-app) | Set up a modern Interchain app by running one command. |\n| **UI Kits**          | [**Interchain UI**](https://github.com/hyperweb-io/interchain-ui)                                                   | The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit. |\n| **Testing Frameworks**          | [**Starship**](https://github.com/hyperweb-io/starship)                                                             | Unified Testing and Development for the Interchain. |\n| **TypeScript Smart Contracts** | [**Create Hyperweb App**](https://github.com/hyperweb-io/create-hyperweb-app)                              | Build and deploy full-stack blockchain applications with TypeScript |\n| **CosmWasm Contracts** | [**CosmWasm TS Codegen**](https://github.com/CosmWasm/ts-codegen)                                                   | Convert your CosmWasm smart contracts into dev-friendly TypeScript classes. |\n\n## Credits\n\n🛠 Built by Hyperweb (formerly Cosmology) — if you like our tools, please checkout and contribute to [our github ⚛️](https://github.com/hyperweb-io)\n\n## Disclaimer\n\nAS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.\n\nNo developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.\n","funding_links":[],"categories":["Tooling"],"sub_categories":["Other Contracts"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCosmWasm%2Fts-codegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCosmWasm%2Fts-codegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCosmWasm%2Fts-codegen/lists"}