implement-arc-standards

Implement Algorand ARC standards for smart contract ABI encoding and application specifications.

Updated Apr 6, 2026
One-click install
npx skills add https://github.com/Rudhrakoushik10/RootNode --skill implement-arc-standards-rudhrakoushik10
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: implement-arc-standards
Source: https://github.com/Rudhrakoushik10/RootNode/tree/main/projects/.opencode/skill/implement-arc-standards
Command: npx skills add https://github.com/Rudhrakoushik10/RootNode --skill implement-arc-standards-rudhrakoushik10

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Algorand smart contract developers often struggle with ARC-4 ABI encoding rules, method selector mismatches, and choosing between ARC-32 and ARC-56 application specifications, leading to failed method calls and broken typed clients. ## Core Features & Use Cases - ARC-4 ABI Guidance: Explains method signatures, selector calculation, type encoding rules, tuple head/tail layout, and boolean packing for contract methods in Algorand Python and TypeScript. - Application Specification Handling: Covers generating, structuring, and converting ARC-32 and ARC-56 app specs, including named structs, state schemas, events, and template variables. - Typed Client Generation: Shows how to build typed clients from app specs with AlgoKit Utils in both Python and TypeScript. - Use Case: When a contract call fails with "method selector not matching", use this Skill to verify the method signature format, recompute the selector, and confirm the argument encoding matches ARC-4 rules. ## Quick Start Ask the AI to explain how to encode ARC-4 method arguments or generate a typed client from an ARC-56 app spec for your Algorand contract.

Frequently Asked Questions about implement-arc-standards

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I calculate an ARC-4 method selector?

An ARC-4 method selector is the first 4 bytes of the SHA-512/256 hash of the method signature, formatted as name(arg_types)return_type with no spaces. For example, add(uint64,uint64)uint128 produces the selector 8aa3b61f.

What is the difference between ARC-32 and ARC-56 app specs?

ARC-56 is the current standard supporting named structs, full default argument values, source maps, and ARC-28 events, while ARC-32 is deprecated with only partial method hints. Use ARC-56 for all new projects and convert legacy ARC-32 specs with AlgoKit Utils.

How do I generate a typed client from an Algorand app spec?

Compile the contract with PuyaPy or PuyaTs to produce an ARC-56 JSON file, then run algokit generate client or puyapy-clientgen on it. The generated client provides type-safe method calls and typed state access in Python or TypeScript.

Why does my ARC-4 method call fail with selector not matching?

Selector mismatches occur when the signature string differs from the compiled method, such as wrong type names, extra spaces, or changed argument order. Verify the exact signature format name(arg_types)return_type and recompute the SHA-512/256 hash.

Can ARC-4 methods return account or asset reference types?

No, reference types like account, asset, and application can only be used as arguments, encoded as uint8 indexes into the foreign arrays. Return an arc4.Address or the raw uint64 ID instead.

What happens when an ARC-4 method has more than 15 arguments?

Methods with 16 or more arguments encode the remaining arguments as a tuple in the 15th application argument slot. The first 14 arguments occupy their own slots after the 4-byte method selector.