1
CONNECT
2
COMPILE
3
STORE
4
INIT
✓
DONE
Connect Your Wallet
Connect Keplr to compile and deploy CosmWasm contracts.
Compilation is free via GitHub Actions. Gas fees ~0.5–3 ATOM.
STEP 2A — SETUP YOUR REPO
Add the build workflow to your GitHub repo first. One-time setup. After that you can compile any branch with one click.
1
Create the workflow file in your repo
Create .github/workflows/build.yml with this content:
name: Build CosmWasm Contract
on:
workflow_dispatch:
inputs:
contract_path:
description: "Path to contract directory (leave blank for root)"
required: false
default: "."
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles(\'**/Cargo.lock\') }}
- name: Build optimized WASM
run: |
cd ${{ github.event.inputs.contract_path }}
docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="$(basename $(pwd))_cache",target=/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/optimizer:0.16.0
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: contract-wasm
path: |
${{ github.event.inputs.contract_path }}/artifacts/*.wasm
retention-days: 7
2
Create a GitHub Personal Access Token
Go to github.com → Settings → Developer Settings → Personal Access Tokens → Tokens (classic)
Required scopes: repo and workflow
3
Enter your details below and click Compile
STEP 2B — TRIGGER COMPILATION
Full URL to your public or private repo
e.g. contracts/my-contract for a workspace repo
Never stored or sent anywhere except directly to GitHub API from your browser
COMPILATION STATUS
● Queued
UPLOAD PRE-COMPILED .WASM
Drop your compiled .wasm file here
or browse · Must be optimized with cosmwasm-check
—
—
—
—
STEP 3 — CONTRACT CONFIGURATION
Human readable name stored on-chain
Can migrate the contract. Leave blank to make immutable.
Must match your contract's InstantiateMsg schema exactly
STORING CODE ON-CHAIN
CODE STORED
Code ID—
Store TX—
STEP 4 — INSTANTIATE
Code ID—
Label—
INSTANTIATING