App Identity

Get yours free at cloud.walletconnect.com

Appearance
UI Labels

The primary action function that will be called on your contract.

Supported Chains
Wallet Thresholds

Show a warning if the connected wallet balance is below this value. Set 0 to disable.

Options
Single-chain mode
Auto-load scripts
Contract Identity

Checksummed or lowercase — both are accepted.

ABI

Copy the ABI from Remix (Compilation Details → ABI) or your Hardhat/Foundry artifacts.

Auto-populated from the ABI above. Select the function you want to call.

Error Handling

Number of times to retry a failed RPC call before throwing.

Logging
Runtime Options
Session caching
Post-transaction page refresh
Typed data enforcement (EIP-712)

🚀 Compile SDK

Reads your configuration from all tabs, generates a self-contained script.js, and lets you copy or download it instantly. Drop the file into any HTML page with a single <script> tag.

Current Configuration
Click "Generate script.js" to preview.
Generated script.js
How to embed
<!-- 1. Add ethers.js (required for contract interaction) -->
<script src="https://cdn.jsdelivr.net/npm/ethers@6/dist/ethers.umd.min.js"></script>

<!-- 2. Add your compiled script (ES module) -->
<script type="module" src="script.js"></script>

<!-- 3. Use data-waas-* attributes for zero-JS integration -->
<button data-waas-connect>Connect Wallet</button>
<button data-waas-disconnect>Disconnect</button>
<button data-waas-network>Switch Network</button>
<span data-waas-address></span>
<span data-waas-chain></span>
<span data-waas-status></span>

<!-- 4. Or use the JS API -->
<script type="module">
  // Listen for events
  WaaSSDK.events.addEventListener("connect", (e) => {
    console.log("Connected:", e.detail.account);
  });

  // Contract interaction (after connect)
  WaaSSDK.events.addEventListener("contractReady", async (e) => {
    const result = await WaaSSDK.readContract(e.detail.contract, "balanceOf", ["0x..."]);
    const receipt = await WaaSSDK.writeContract(e.detail.contract, "mint", ["0x...", 100]);
  });
</script>