Build on Algorand

SkillWeb & browsing

Build and review TypeScript-only Algorand applications using the AVM, PuyaTs, generated clients, tests, browser wallets, and relevant ARCs. Use for contracts, assets and tokens, client or frontend integration, defensive implementation, migrations, and x402 orientation. Excludes structured security audits and finding reports, Python, project lifecycle, LocalNet, accounts, deployment operations, and VibeKit extension development.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Build on Algorand skill

What this skill tells your AI

The instructions your AI receives, as published by initlabsai/vibekit in skills/build-on-algorand/SKILL.md and read by ahel’s review.

Build Algorand applications with TypeScript on both sides of the compilation boundary:

  • Contract TypeScript is the restricted Algorand TypeScript language that PuyaTs compiles for the AVM. It is not general JavaScript.
  • Client TypeScript runs off-chain and uses generated clients, AlgoKit Utils, algosdk, and wallet signers.

Preserve that boundary. Never copy off-chain libraries, asynchronous code, or ordinary JavaScript data models into a contract.

Start with the project

Read AGENTS.md, package.json, compiler configuration, and existing contract and generated-client patterns before changing code. Use the project's pinned dependencies and npm scripts. Do not introduce Python or the AlgoKit CLI, and do not replace the project's stack or add a dependency when its existing tools cover the task.

When working in a VibeKit-configured project, load use-vibekit for project lifecycle, LocalNet, accounts, signing, network selection, deployment, and on-chain operations. This skill covers the application code and design.

Choose the guide

TaskGuide
Reason about applications, Logic Signatures, execution budgets, resources, fees, or protocol capabilitiesAVM fundamentals
Write or review Algorand TypeScript contract types, methods, control flow, or ABI surfacesPuyaTs contracts
Choose state, use boxes, inspect group transactions, or emit inner transactionsState and transactions
Generate or consume typed clients, test contracts, simulate calls, or debug failuresClients and testing
Connect a browser wallet or pass a wallet signer to a generated clientFrontend wallets
Harden an implementation or perform an ordinary contract-safety reviewSecurity
Move from TEALScript, Algorand TypeScript beta, ARC-32, or older client APIsMigrations
Select an application, ASA, token, NFT, event, or multisig ARCStandards
Orient a TypeScript client or resource server to x402 on Algorandx402

Load only the references needed for the current task.

Load audit-algorand for a structured vulnerability assessment, threat model, exploit analysis, mainnet-readiness review, or security finding report. This skill remains the owner of implementation and routine defensive review.

Contract invariants

  • Do not use the TypeScript number type in contract code. Use AVM-native types such as uint64, biguint, and bytes, or explicit ARC-4 types. Numeric literals still need an AVM type from context or a constructor.
  • Treat arrays, objects, byte strings, storage, and arithmetic according to PuyaTs semantics. Use clone(value) when an independent array or object is required.
  • Prefer ARC-4 ABI methods and an ARC-56 application specification for public applications and generated clients. Accept ARC-32 only where existing tools or artifacts require it.
  • Validate every relevant field of transaction arguments. A transaction's group position or type alone does not prove its sender, receiver, amount, asset, application, close address, or rekey target.
  • Account for opcode budget, program size, transaction fees, app-call resources, box I/O budget, and minimum-balance changes during design.
  • Make update, delete, opt-in, close-out, and clear-state behavior explicit. Default-deny lifecycle actions the application does not need.
  • On a compile error, read the installed @algorandfoundation/algorand-typescript/*.d.ts declaration the error names, or the linked example, before changing the code. Do not iterate from memory. The package is split by topic: state.d.ts (Global/Local state), box.d.ts, arc4/index.d.ts (abimethod, allowActions, ARC-4 types), itxn.d.ts, gtxn.d.ts, op.d.ts (AVM ops), on-complete-action.d.ts.
  • Compile and test the generated TEAL behavior. Use simulate for execution traces and fee/resource diagnosis; do not use removed dryrun or tealdbg workflows.

Canonical starting points

Material adapted from an upstream MIT-licensed skill set is documented in Attribution.

Signals

GitHub stars
27
Forks
10
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
build-on-algorand
Source
github.com/initlabsai/vibekit