Someone setting up a hardware wallet for the first time, packaging on desk, laptop with wallet interface, afternoon home office light, casual unboxing moment.
Protocols

ARC-1 Wallet Transaction Signing API

Security-critical integration page for the standard dApp-to-wallet transaction signing interface. Tracks evolution of the API, transaction parsing security considerations, and how it underpins the WalletConnect-compatible ecosystem.
introduction
TRANSACTION SIGNING API STANDARD

What is ARC-1?

The foundational specification defining how Algorand wallets and decentralized applications communicate to securely construct and sign transactions.

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.

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.

WALLET TRANSACTION SIGNING API

ARC-1 Quick Facts

Operational facts for wallet and dApp teams integrating the standard Algorand transaction signing interface.

AreaWhat changesWho is affectedAction

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

technical-context
SECURITY-CRITICAL INTERFACE

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.

IMPACT ANALYSIS

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_sign method 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.

implementation-impact
SIGNING API SECURITY

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.

01

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.

02

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.

03

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.

04

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.

05

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.

WALLET TRANSACTION SIGNING SECURITY

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 AreaFailure ModeAffected ActorsSeverityMitigation 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

ARC-1 SIGNING FLOW READINESS

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.

Chains We Build On

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 logo
    Ethereum
  • Arbitrum logo
    Arbitrum
  • Optimism logo
    Optimism
  • Polygon logo
    Polygon
  • Avalanche logo
    Avalanche
  • Cronos logo
    Cronos

Non-EVM ecosystems

  • Solana logo
    Solana
  • Sui logo
    Sui
  • Aptos logo
    Aptos
  • Hedera logo
    Hedera
  • Stellar logo
    Stellar
  • NEAR logo
    NEAR

Additional ecosystems

  • Polkadot logo
    Polkadot
  • Cosmos logo
    Cosmos
  • TON logo
    TON
  • Cardano logo
    Cardano
  • Algorand logo
    Algorand
  • Tempo logo
    Tempo

Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.

INTEGRATION AND SECURITY FAQ

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_signTxn method 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.

Trusted by Industry Leaders

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

ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
“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.”
L
Lee Erswell
CEO, Telos Foundation
how to get started

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.

01

Exploration & Strategy

Define your product goals and choose the right blockchain architecture for your use case.

02

Architecture & Design

Design the smart contracts, tokenomics, and security parameters of your system.

03

Development & Integration

Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.

04

Security & Launch

Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.

Start a build

Need a blockchain engineering team?

Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.