ARC-1 is the Algorand Request for Comments that defines a standard API for transaction signing between a dApp and a wallet. It establishes a communication channel where a dApp can request that a wallet sign one or more Algorand transactions without exposing the user's private keys to the application. This standard is the bedrock of the Algorand dApp ecosystem, enabling every core user interaction—from token swaps and NFT purchases to governance votes and DeFi deposits—to occur in a secure, interoperable manner. It is the direct predecessor and conceptual foundation for the WalletConnect-compatible algorand provider interface, making it essential for any team building wallet or dApp infrastructure.

ARC-1 Wallet Transaction Signing API
What is ARC-1?
The foundational specification defining how Algorand wallets and decentralized applications communicate to securely construct and sign transactions.
Operationally, ARC-1 defines a JSON-based request and response schema over a secure transport. A dApp sends a SignTxnRequest containing one or more serialized, canonical Algorand transactions. The wallet must decode and present these transactions to the user in a human-readable format for approval, a process critical to preventing blind-signing attacks. The wallet then signs the transactions with the user's private key and returns the signed stxn blobs in a SignTxnResponse. The standard's security model places a heavy burden on wallets to correctly parse every transaction field—including rekey-to, close-remainder-to, and asset clawback addresses—and display their implications clearly. Any parsing failure or UI omission by a wallet implementation creates a vulnerability where a malicious dApp can trick a user into signing a destructive transaction.
For builders and operators, ARC-1 is not just a legacy spec but a live integration surface. Wallet developers must audit their signing flow against this standard to ensure they are not introducing blind-signing risks, particularly when handling complex atomic transaction groups. dApp teams must ensure they construct transactions correctly and handle user rejections gracefully. Chainscore Labs provides protocol impact assessments and integration reviews for teams implementing or upgrading their ARC-1 flows, helping to verify that transaction parsing is secure and that the user consent mechanism is robust against the most common attack patterns in the Algorand ecosystem.
ARC-1 Quick Facts
Operational facts for wallet and dApp teams integrating the standard Algorand transaction signing interface.
| Area | What changes | Who is affected | Action |
|---|---|---|---|
Signing flow | Standardizes how dApps request and wallets approve transaction signing | Wallet developers, dApp frontend teams | Audit signing flow against the canonical ARC-1 spec |
Transaction parsing | Wallets must parse and display unsigned transactions before user approval | Wallet developers, end users | Verify that all transaction fields are decoded and displayed to prevent blind-signing |
Wallet discovery | Defines how dApps discover compatible wallets via browser extension or mobile deep link | dApp developers, wallet providers | Test discovery across all supported platforms and wallet implementations |
Error handling | Specifies error codes for user rejection, invalid transactions, and network mismatch | dApp developers | Implement graceful error handling for all specified rejection and failure modes |
Network matching | Requires wallet and dApp to agree on the active Algorand network (MainNet, TestNet, BetaNet) | dApp and wallet developers | Validate network genesis hash in session to prevent cross-network replay attacks |
WalletConnect compatibility | Serves as the foundation for WalletConnect-based Algorand integrations | Wallet developers, dApp teams using WalletConnect | Ensure ARC-1 implementation is compatible with the WalletConnect Algorand chain namespace |
Multisig accounts | Wallets must support signing for multisig accounts and LogicSig accounts | Wallet developers, multisig users | Test signing flows for rekeyed accounts, multisig, and stateless smart contracts |
Transaction Signing Flow and Security Model
The ARC-1 signing flow defines the trust boundary between a dApp and a user's wallet, making its correct implementation the primary defense against blind-signing attacks on Algorand.
ARC-1 establishes a standard interface for Algorand wallets to receive, parse, and present transaction payloads from decentralized applications before a user authorizes signing. The flow begins when a dApp constructs one or more algosdk.Transaction objects and passes them to the wallet via a provider bridge, typically through a browser extension, mobile deep link, or WalletConnect session. The wallet is responsible for decoding every field—receiver, amount, asset ID, note, and application call arguments—and displaying them in a human-readable format. This decoding step is the critical security control: if the wallet fails to parse or display a field correctly, the user may approve a transaction whose effects they do not understand.
The security model relies on the wallet as the sole trusted display surface. The dApp is an untrusted actor that can construct arbitrary transaction payloads, including rekeying transactions, asset clawbacks, or smart contract calls that delegate authority. ARC-1-compatible wallets must therefore implement rigorous transaction inspection logic that goes beyond simple field display. This includes detecting rekey-to addresses, flagging close-remainder-to fields, decoding application arguments against a known ABI when available, and warning users when a transaction group contains an unexpected combination of operations. Wallets that treat ARC-1 as a simple pass-through signing interface introduce systemic blind-signing risk across the entire Algorand ecosystem.
For dApp developers, the operational responsibility is to construct minimal, auditable transaction groups and to avoid patterns that make wallet-side inspection difficult, such as encoding complex logic in opaque application arguments without providing an ARC-32 application spec. For wallet teams, the implementation burden is high: the signing flow must handle atomic transaction groups, simulate application calls to preview state changes, and maintain a continuously updated registry of known contract addresses and their ABIs. Chainscore Labs reviews both sides of this interface—auditing dApp transaction construction for unnecessary authority grants and evaluating wallet parsing logic for display-completeness gaps that could allow a malicious dApp to obscure the true intent of a transaction.
Who Is Affected by ARC-1
Wallet Implementers
Wallet teams are the primary implementers of ARC-1. The standard defines the interface that a wallet must expose to receive and sign transactions from dApps. Non-compliance creates immediate user-facing failures.
Critical actions:
- Implement the
algorand_signmethod to parse and present transaction payloads to users for approval. - Ensure transaction decoding logic handles all AVM transaction types and fields correctly to prevent blind-signing vulnerabilities.
- Validate that the wallet's session management and origin-binding align with the security model expected by dApps.
A faulty implementation can lead to users approving malicious transactions they cannot read. Chainscore Labs can audit your wallet's signing flow against the ARC-1 specification to identify parsing gaps and UI spoofing risks.
Integration Impact and Audit Surface
The ARC-1 API is the primary interface between dApps and wallets. Its security model directly determines whether users can be tricked into signing malicious transactions.
Blind-Signing Attack Surface
The core risk of the ARC-1 flow is that a dApp can request a user to sign a transaction they cannot fully parse. Wallets must decode and display all transaction fields—especially receiver, amount, asset ID, and application arguments—in a human-readable format before prompting for authorization. A wallet that displays raw base64 or omits key fields creates a blind-signing vulnerability. Audit your wallet's transaction rendering logic against the exact fields defined in the Algorand transaction specification to ensure no critical parameter is hidden from the user during the signing ceremony.
WalletConnect Session Trust Boundary
The ARC-1 standard underpins the WalletConnect-compatible session layer. A session established between a dApp and a wallet carries implicit trust that the dApp's origin is authentic. Teams must review how session proposals are validated, how session keys are stored, and whether a malicious dApp could request a session reconnection without user re-approval. The trust boundary between the dApp's transaction construction and the wallet's signing module is the single most important security perimeter in the Algorand application stack.
Transaction Group Atomicity Risks
ARC-1 supports signing atomic transaction groups where multiple transactions succeed or fail together. A dApp can construct a group where a harmless-looking transaction is grouped with a malicious asset transfer or application call. Wallets must display the full group context to the user, not just individual transactions in isolation. Integration teams should audit that their wallet UI clearly indicates group membership and summarizes the net effect of the entire atomic group before the user approves the signing request.
Application Call Argument Parsing
When a dApp requests signing of an application call transaction, the arguments array can contain arbitrary data that encodes a malicious action. Wallets must decode ABI-encoded arguments using the application's ARC-4 or ARC-32 specification to display the intended method and parameters. Signing an application call without ABI-based decoding is functionally equivalent to blind-signing. Protocol teams should ensure their application specifications are published and accessible so wallets can perform this decoding automatically.
Replay and Nonce Mismanagement
The ARC-1 flow does not inherently protect against transaction replay if the wallet does not enforce proper nonce or lease management. A dApp could request signing of a valid transaction, then resubmit it later under different network conditions. Wallets must implement first-valid and last-valid round enforcement and consider lease fields for idempotency. Integration reviews should verify that the wallet's transaction construction logic prevents an approved transaction from being executed outside its intended validity window.
ARC-1 Risk Matrix
Operational risks and failure modes for dApps and wallets implementing the ARC-1 transaction signing interface. Teams should audit their signing flow against these vectors to prevent blind-signing vulnerabilities and transaction parsing errors.
| Risk Area | Failure Mode | Affected Actors | Severity | Mitigation Action |
|---|---|---|---|---|
Blind Signing | Wallet displays opaque binary blobs instead of decoded transaction fields, causing users to approve malicious transactions | Wallet users, Wallet developers, dApp teams | Critical | Verify wallet UI renders all transaction fields per ARC-1 spec; audit against canonical AVM type definitions |
Transaction Group Replay | Attacker replays a signed transaction group in a different context or with altered group composition | DeFi protocols, Exchanges, Custodians | High | Validate group ID binding and enforce strict nonce/replay protection; review group construction logic |
Fee Malleability | Wallet or dApp allows fee field modification after user approval, enabling transaction stuffing or denial-of-service | Node operators, dApp backends | Medium | Ensure wallet signs the exact fee amount displayed; dApps should verify fee bounds before submission |
Note Field Injection | Malicious dApp injects unexpected data into the note field that wallet does not display, misleading users about transaction intent | Wallet users, Compliance teams | Medium | Wallet must decode and display note field content; dApps should validate note field against expected schema |
Rekeying Surprise | Transaction includes a rekey-to field that transfers account control without clear wallet warning | Account holders, Custodians, Exchanges | Critical | Wallet must prominently flag rekey transactions; exchanges should monitor for unauthorized rekey events on hot wallets |
ARC-1 URI Parsing | Malformed ARC-1 URI causes wallet to crash, misinterpret parameters, or expose private keys through error handling | Mobile wallets, QR code systems | High | Fuzz-test URI parser against malformed inputs; validate all parameters against AVM constraints before constructing transaction |
Multisig Account Confusion | Wallet signs a multisig transaction without indicating the signing threshold or other signers, leading to partial execution assumptions | Multisig account operators, DAO treasuries | Medium | Display multisig threshold and signer list during signing flow; verify against on-chain account state before broadcast |
State Proof Compatibility | Signed transactions intended for cross-chain verification via state proofs lack required fields or use incompatible encoding | Bridge operators, Cross-chain dApp teams | Medium | Validate transaction format against state proof verification requirements on target chain; test round-trip serialization |
Wallet and dApp Implementation Checklist
A practical checklist for wallet and dApp teams to validate their implementation of the ARC-1 transaction signing API. Each item focuses on a specific security or compatibility property that prevents blind-signing vulnerabilities and ensures reliable user interactions.
What to check: Does the wallet verify that all transactions in a group are present and correctly ordered before displaying them for user approval?
Why it matters: ARC-1 allows dApps to submit transaction groups where the user's action in one transaction may depend on another. If the wallet displays or signs transactions in isolation, a user might approve a harmless-looking transfer that is part of a group executing a malicious asset clawback or reconfiguration.
Readiness signal: The wallet's signing flow must reconstruct the full atomic group, validate group IDs, and present the complete set of transactions together. Test with groups containing both a payment and an asset config transaction to confirm the UI shows the full context.
Canonical Resources and References
Use these references to validate ARC-1 wallet transaction signing behavior, transaction parsing, WalletConnect-compatible flows, and Algorand protocol semantics before shipping a wallet or dApp integration.
Security review inputs for ARC-1 integrations
Before production release, collect the ARC-1 spec version reviewed, SDK versions, wallet UI screenshots for each transaction type, rejection cases, group transaction fixtures, and any WalletConnect method mappings. Security teams should specifically test blind-signing paths, transaction substitution between preview and signing, misleading app-call arguments, rekey abuse, close-out drains, excessive fees, and mixed benign/malicious groups. Chainscore Labs can use this evidence set for an implementation review or targeted wallet signing-flow assessment.
Looking to build on a specific blockchain?
We build smart contracts, DeFi applications, wallets, tokenization platforms, and blockchain infrastructure across the major ecosystems teams choose today. That includes Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Solana, Sui, Aptos, Hedera, Stellar, and NEAR, with support for additional EVM and non-EVM networks based on your product requirements.
EVM ecosystems
- Ethereum
- Arbitrum
- Optimism
- Polygon
- Avalanche
- Cronos

Non-EVM ecosystems
- Solana
- Sui
- Aptos
- Hedera
- Stellar
- NEAR
Additional ecosystems
- Polkadot
- Cosmos
- TON
- Cardano
- Algorand
- Tempo
Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.
Frequently Asked Questions
Common questions from wallet and dApp teams implementing or auditing their ARC-1 transaction signing flow.
ARC-1 defines the Algorand-specific transaction signing API that wallets expose to dApps. WalletConnect provides the transport layer for this API. A wallet implementing ARC-1 over WalletConnect must:
- Expose the
algo_signTxnmethod as defined in the ARC-1 specification. - Correctly serialize and deserialize Algorand transactions in the WalletConnect session payloads.
- Handle multi-transaction atomic groups as a single signing request to prevent partial execution.
Teams should verify their implementation against the canonical ARC-1 test vectors and the WalletConnect chain-agnostic CAIP standards for Algorand. A mismatch in transaction parsing between the dApp, wallet, and network can lead to failed transactions or, worse, blind-signing vulnerabilities where the user approves a transaction they cannot interpret.
Delivering blockchain solutions for 5+ years.
We have partnered with 50+ leading DeFi protocols, NFT ecosystems, and fintech innovators to build secure, scalable, and capital-efficient blockchain products.
Selected Partners & Clients
“I've been working with Chainscore Labs for last 3+ years, they've consistently delivered with strong ownership across multiple projects. The team is reliable and detail-oriented.”
How to get started?
If you're looking for blockchain integration, ChainScore Labs has 5+ years of experience helping teams build and integrate exchanges, wallets, smart contracts, tokenization solutions, and protocol-connected products, we can help you choose the right path, integrate securely, and get to production faster. Our team consists of experienced blockchain developers and architects who can help you with your blockchain integration needs.
Exploration & Strategy
Define your product goals and choose the right blockchain architecture for your use case.
Architecture & Design
Design the smart contracts, tokenomics, and security parameters of your system.
Development & Integration
Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.
Security & Launch
Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.
Discover our
blockchain development services.
We build production-grade blockchain solutions for top-tier projects across DeFi and Web3.
Need a blockchain engineering team?
Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.


