skills/algorand-frontend/SKILL.md
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.
npx skillsauth add algorand-devrel/algorand-agent-skills algorand-frontendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
MyContract.arc56.json)Wallet (use-wallet) → transactionSigner
↓
AlgorandClient.setSigner()
↓
Typed App Client (defaultSender)
↓
Contract Method Calls (auto-signed)
# 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
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>
}
setSigner() before creating clients — signer must be registered firstactiveAddress and transactionSigner — null when no wallet connectedgetTypedAppClientById() for frontends with known App IDsisReady before rendering wallet state — prevents SSR hydration mismatches in Next.js, Nuxt, and SvelteKituseEffect/onMount/setTimeoutclient 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)Search these repositories for real-world code examples:
algorandfoundation/algokit-fullstack-template — Fullstack project template (React + contracts)algorandfoundation/algokit-react-frontend-template — React frontend templateTxnLab/use-wallet — UseWallet library source and framework adaptersTxnLab/next-use-wallet — Next.js + UseWallet example appalgorand-core skill first for AVM mental modelalgorand-typescript or algorand-python skillsalgorand-project-setup skilltools
Guide for writing TypeScript code with AlgoKit Utils (`@algorandfoundation/algokit-utils`). Use this skill whenever the user is building on Algorand with TypeScript — client setup, account management, payments, asset operations, atomic transaction groups, smart contract deployment and interaction (AppFactory, AppClient, ARC-56/ARC-32 specs), raw app calls, key registration, network management, testing with algorandFixture, error handling, and the low-level crypto primitives under `@algorandfoundation/algokit-utils/crypto` (Ed25519 keygen/signing/verification, SHA-512/256 `hash`, Peikert xHD BIP44 wallets, wrapped-secret patterns). Trigger on imports from `@algorandfoundation/algokit-utils` (incl. `/crypto`, `/testing`, `/transact` subpaths), references to `AlgorandClient`, `AppFactory`, `AppClient`, `AlgoAmount`, `algorandFixture`, `ed25519Generator`, `peikertXHdWalletGenerator`, `hash`, `WrappedEd25519Seed`, or `RawEd25519Signer`. Also on any TypeScript or JavaScript code that builds on Algorand.
tools
Guide for writing Python code with AlgoKit Utils (`algokit-utils`). Use this skill whenever the user is building on Algorand with Python — client setup, account management, payments, ASA operations, atomic transaction groups, smart contract deployment and interaction (AppFactory, AppClient, ARC-56/ARC-32 specs), raw app calls, TEAL compilation, key registration, network management, error handling, and the low-level crypto primitives in `algokit_crypto` (Ed25519 keygen/signing/verification, Peikert xHD BIP44 wallets, wrapped-secret patterns) and `algokit_common` (`sha512_256`). Trigger on imports from `algokit_utils` or `algokit_crypto`, references to `AlgorandClient`, `AppFactory`, `AppClient`, `AlgoAmount`, `ed25519_generator`, `peikert_hd_wallet_generator`, `sha512_256`, `WrappedEd25519Seed`, or `RawEd25519Signer`, or any Python code that builds on Algorand.
tools
Builds x402 HTTP-native payment applications on Algorand using TypeScript. Covers clients (fetch, axios), servers (Express, Hono), facilitators, paywalls, Next.js integration, and the @x402-avm core library. Use when implementing x402 payment flows in TypeScript, creating payment-gated APIs, building x402 facilitators or paywalls, or integrating @x402-avm packages.
tools
Builds x402 HTTP-native payment applications on Algorand using Python. Covers clients (httpx, requests), servers (FastAPI, Flask), facilitators, Bazaar discovery, and the x402-avm core library. Use when implementing x402 payment flows in Python, creating payment-gated APIs, building x402 facilitators, or integrating x402-avm packages.