All skills

Builds Algorand dApp frontends with wallet integration and typed contract clients. Supports React, Vue, SolidJS, Svelte, and vanilla JS/TS via @txnlab/use-wallet. Covers the signer handoff pattern, wallet provider setup, network configuration, and calling contract methods from frontend code. Use when creating a dApp UI, connecting wallets, integrating typed app clients with wallet signers, or calling smart contract methods from any JavaScript or TypeScript frontend framework.

Use this Skill: https://skilld.dev/gh/algorand-devrel/algorand-agent-skills/algorand-frontend

This session only. Nothing lands on disk.

SKILL.md

β‰ˆ125 tokens always: the name and description. β‰ˆ1.1k when used: this file. β‰ˆ8.1k more on demand in 2 files.

Algorand Frontends

Build frontend applications that connect to Algorand wallets and interact with smart contracts using typed clients. Works with React, Vue, SolidJS, Svelte, and vanilla JS/TS.

Prerequisites

  1. Smart contract is deployed with a known App ID
  2. ARC-56/ARC-32 app spec exists (e.g., MyContract.arc56.json)
  3. Frontend project is set up (Vite, Next.js, Nuxt, SvelteKit, or any bundler)

Core Pattern: Signer Handoff

Wallet (use-wallet) β†’ transactionSigner
                              ↓
                    AlgorandClient.setSigner()
                              ↓
                    Typed App Client (defaultSender)
                              ↓
                    Contract Method Calls (auto-signed)

Quick Start

# Generate typed client
algokit generate client path/to/MyContract.arc56.json --output src/contracts/MyContractClient.ts

# Install core + framework adapter (pick one)
npm install @algorandfoundation/algokit-utils algosdk @txnlab/use-wallet-react   # React
npm install @algorandfoundation/algokit-utils algosdk @txnlab/use-wallet-vue     # Vue
npm install @algorandfoundation/algokit-utils algosdk @txnlab/use-wallet-solid   # SolidJS
npm install @algorandfoundation/algokit-utils algosdk @txnlab/use-wallet-svelte  # Svelte
npm install @algorandfoundation/algokit-utils algosdk @txnlab/use-wallet         # Vanilla JS/TS

# Install wallet peer dependencies (only for wallets you use)
npm install @perawallet/connect @blockshake/defly-connect

Minimal Integration (React)

import { useWallet } from '@txnlab/use-wallet-react'
import { AlgorandClient } from '@algorandfoundation/algokit-utils'
import { MyContractClient } from './contracts/MyContractClient'

function ContractInteraction() {
  const { transactionSigner, activeAddress } = useWallet()

  const callContract = async () => {
    if (!activeAddress || !transactionSigner) return

    const algorand = AlgorandClient.testNet()
    algorand.setSigner(activeAddress, transactionSigner)

    const appClient = algorand.client.getTypedAppClientById(MyContractClient, {
      appId: 12345n,
      defaultSender: activeAddress,
    })

    const result = await appClient.send.myMethod({ args: { value: 42n } })
    console.log('Result:', result.return)
  }

  return <button onClick={callContract}>Call Contract</button>
}

Important Rules

  1. Always call setSigner() before creating clients β€” signer must be registered first
  2. Check for null activeAddress and transactionSigner β€” null when no wallet connected
  3. Match networks β€” AlgorandClient network must match WalletManager network
  4. Use getTypedAppClientById() for frontends with known App IDs
  5. Check isReady before rendering wallet state β€” prevents SSR hydration mismatches in Next.js, Nuxt, and SvelteKit
  6. Trigger signing from direct user interaction β€” button clicks, not timers or effects. Some wallets (especially mobile) block or silently fail signing from useEffect/onMount/setTimeout
  7. Never use hook-returned clients as effect/callback dependencies β€” client and algorand from custom hooks are new references on every wallet state change. Use refs for data fetching in effects (see Example 11 in frontend-examples.md)

Reference Guide

Canonical Example Repos

Search these repositories for real-world code examples:

  • algorandfoundation/algokit-fullstack-template β€” Fullstack project template (React + contracts)
  • algorandfoundation/algokit-react-frontend-template β€” React frontend template
  • TxnLab/use-wallet β€” UseWallet library source and framework adapters
  • TxnLab/next-use-wallet β€” Next.js + UseWallet example app

Cross-References

  • New to Algorand? Read algorand-core skill first for AVM mental model
  • Smart contracts: See algorand-typescript or algorand-python skills
  • Project scaffolding and CLI: See algorand-project-setup skill

Source: SKILL.md on GitHub

No alerts16d4 checks Β· Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides secure and standard documentation for building Algorand dApp frontends using official ecosystem libraries and best practices. No malicious patterns or security risks were detected.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW Β· No issues

  • ZeroLeaks5mo

    Score: 93/100 Β· 2 sections analyzed

Signed by skilld at 774f8a8. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 weeks ago.

Activeupdated 6 months ago

README badge

README badge for algorand-devrel/algorand-agent-skills/algorand-frontend