Wasmkit
Cosmwasm dev tooling framework
Install / Use
/learn @kubiklabs/WasmkitREADME
WasmKit
<p align="center" width="100%"> <img src="./assets/wasm_kit_logo_light.png" width=25% height=25%> </p>WasmKit is a development framework for building the CosmWasm contracts. The aim of the project is to make CosmWasm contracts development process simple, efficient and scalable. Users can focus on the logic of CosmWasm contracts and not much about further steps in development.
It facilitates features such as initiating project repo from contract templates, easy compilation of contracts, deployment, Interacting with contracts using schema and contract testing framework.
Support
Join WasmKit's discord chat for support, feedback, and general chatter.
Features
✅ Bootstrap contract boilerplate<br/> ✅ Contract compilation made simple<br/> ✅ Typescript based interaction scripts<br/> ✅ Abstractions over networks, accounts and contracts<br/> ✅ Typescript based intergation tests<br/> ✅ Easily spin up local networks<br/> ✅ Autogenerate web based contract playgrounds with type safety<br/> 🏗️ Network state forking<br/>
Requirements
- Node
v14+ - Yarn
v1.22+or NPMv6.0+
Setup rust environment
WasmKit requires a Rust environment installed on a local machine to work properly. This Rust environment can be installed with the help of WasmKit in just a command.
wasmkit install
Install wasmkit
Installation from released version
To install WasmKit globally in your system you can use:
yarn global add @kubiklabs/wasmkit
or
npm install -g @kubiklabs/wasmkit
Installation from source
git clone https://github.com/kubiklabs/wasmkit.git
cd wasmkit
yarn install
yarn build
cd packages/wasmkit
yarn link
chmod +x $HOME/.yarn/bin/wasmkit
Install dependencies
Setup Rust compiler:
cd infrastructure
make setup-rust
Follow our infrastructure README for instructions on how to set up a private network.
Usage
Initialize a project
wasmkit init <project-name>
This will create a directory <project-name> inside the current directory with boiler-plate code. The contracts/ directory has all the rust files for the contract logic. scripts/ directory contains .js scripts that users can write according to the use case, a sample script has been added to give some understanding of how a user script should look like. test/ directory contains .js scripts to run tests for the deployed contracts.
Listing tasks
To see the possible tasks (commands) that are available, go to the project's folder.
wasmkit
This is the list of built-in tasks. This is your starting point to find out what tasks are available to run.
Compile the project
To compile the contracts, Go to project directory:
cd <project-name>
wasmkit compile
This command will generate compiled .wasm files in artifacts/contracts/ directory and schema .json files in artifacts/schema/ directory.
Cleanup artifacts
To clear artifacts data, use
wasmkit clean
This will remove the artifacts/ directory completely. To clean artifacts for only one contract, use:
wasmkit clean <contract-name>
Running user scripts
User scripts are a way to define the flow of interacting with contracts on some network in the form of a script. These scripts can be used to deploy a contract, query/transact with the contract. A sample script scripts/sample-script.ts is available in the boilerplate.
wasmkit run scripts/sample-script.ts
Run tests
yarn run test
License
This project is forked from hardhat, and just base on the hardhat-core part then modify it under MIT license.
Thanks
Hardhat - Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software. Get Solidity stack traces & console.log.
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
