# Agent instructions

You are advising on UX and product design for **ERC-6492: Signature Validation for Predeploy Contracts**.
This document is the authoritative designer guide from EIPs for Designers.

- Treat **MUST NOT** items as hard constraints unless the user explicitly overrides.
- Use the **Vocabulary** section for UI copy; do not use avoided terms.
- Cite the canonical source URL when giving recommendations.
- Use the official specification only for protocol implementation detail, not as primary UX guidance.

---

# ERC-6492: Signature Validation for Predeploy Contracts

Source: https://www.eipsfordesigners.com/standards/ERC-6492
Agent brief: https://www.eipsfordesigners.com/standards/ERC-6492/agent.md
Machine-readable JSON: https://www.eipsfordesigners.com/api/standards/ERC-6492
Last reviewed: 2026-05-25
Last updated: 2026-05-25

| Field | Value |
| --- | --- |
| Status | Final |
| Chain | both |
| Category | Onboarding & Access |
| Journey stages | Authentication & Identity |
| Detailed guide | Yes |
| Official specification | https://eips.ethereum.org/EIPS/erc-6492 |
| Discussion search | https://ethereum-magicians.org/search?q=ERC-6492 |

## UX Impact

Smart contract wallets can sign messages before deployment — users don't need an initial transaction to start using their account. Design implications: enable 'Sign-In with Ethereum' and message signing for freshly created accounts with zero transactions, remove 'deploy wallet first' friction from onboarding, show account address even before deployment. Design decisions: decide whether to surface deployment status to users or abstract it away, design consistent verification flows that work for both deployed and counterfactual contracts, handle edge cases where signature was created pre-deployment but verified post-deployment, consider showing 'account not yet deployed' status in explorers.

## Summary

Smart contract wallets can sign messages before deployment — users don't need an initial transaction to start using their account.

## For Designers

- You can offer SIWE on day zero for smart accounts that have never sent a transaction.
- Your UI can hide deployment complexity unless it affects cost, timing, or risk.
- You can show the same address before and after first transaction for continuity.

## Applicability

### When to Use

- Smart wallet onboarding should not require a deploy transaction before sign-in.
- Your auth flow uses SIWE or off-chain message verification.
- Users connect counterfactual accounts from ERC-4337 factories.

### When to Avoid

- You only support EOAs with on-chain history.
- Your verifier cannot simulate contract deployment.
- The flow requires deployed contract code for every read path.

## Problems It Solves

### Inconsistent behavior across apps

Impact: high

Old way: Each team reinvents copy and edge cases

New way: Shared standard gives predictable UX patterns

### Users surprised by on-chain rules

Impact: high

Old way: Generic transfer UI fails at submit time

New way: Standard-aware UI sets expectations upfront

### Support burden from opaque errors

Impact: medium

Old way: Raw revert reasons in toasts

New way: Mapped states explain what to do next

## MUST NOT (Anti-Patterns)

- **Hiding standard-imposed restrictions until submit** (critical)
  - Why: Users feel tricked when actions fail at the last step
  - Instead: Show eligibility and badges before the primary CTA

- **Protocol jargon in user-facing copy** (high)
  - Why: Non-technical users cannot consent informedly
  - Instead: Use outcome language with optional technical disclosure

- **No fallback when wallet lacks support** (high)
  - Why: Dead-end flows increase churn
  - Instead: Explain limitation and offer alternate path or network

## Design Decisions

### How much protocol detail do users see?

Recommendation: Lead with outcomes; tuck identifiers behind review.

Rationale: Users decide on consequences, not function selectors.

### What happens when support is missing?

Recommendation: Block with explanation and fallback path.

Rationale: Silent failure feels like a broken product.

### How do you label restricted assets?

Recommendation: Use persistent badges for non-transferable, locked, or expiring states.

Rationale: Hidden restrictions cause rage-quits at transfer time.

## States to Design

### Ready

Trigger: Prerequisites met.

User need: Understand what happens next.

Design response: Enable primary action with plain-language preview.

### Awaiting signature

Trigger: Wallet prompt open.

User need: Know what they are approving.

Design response: Mirror human-readable summary in app and wallet.

### Pending

Trigger: Transaction submitted.

User need: Confidence it is progressing.

Design response: Show status strip with explorer link.

### Succeeded

Trigger: On-chain confirmation.

User need: See updated ownership or balance.

Design response: Celebrate outcome and show new state clearly.

### Failed or reverted

Trigger: Validation or execution failed.

User need: Fix or retry without guessing.

Design response: Name the failed constraint and offer a concrete next step.

## Vocabulary

- Use "Your balance / Your item" instead of "Token ID / Token contract": Ownership language matches mental models.

- Use "Cannot transfer yet" instead of "Transfer reverted": Explain restriction without EVM vocabulary.

- Use "Confirm in wallet" instead of "Sign transaction": Matches wallet UX users already know.

## UX Patterns

### Counterfactual Sign-In

Authenticate with a not-yet-deployed smart account.

Components: SIWEButton, AddressChip

User flow:

- User connects smart account
- Signs SIWE message
- Server verifies via ERC-6492
- Session created

Mockup registry key: `concept/siwe-sign-in` (React UI on the live standard page).

### Deployment Status Chip

Optional indicator for advanced users.

Components: StatusBadge, Tooltip

User flow:

- Account connected
- Query deployment status
- Show Active or Activates on first use

Mockup registry key: `concept/siwe-sign-in` (React UI on the live standard page).

## What to Prototype First

### Primary happy path

Prove the core user promise before edge cases.

Covers: Success state, Clear outcome copy

- Primary CTA
- Confirmation feedback
- Next step

### Blocked or unsupported state

Users discover limits when wallets or chains lack support.

Covers: Unsupported wallet, Wrong network

- Plain-language reason
- Fallback action

### Failure recovery

Trust breaks when errors look like bugs.

Covers: User rejection, Transaction revert

- Retry path
- Support context

### Advanced disclosure

Power users need technical detail without cluttering the default path.

Covers: Contract address, Token ID, Raw status

- Expandable section
- Copy buttons
- Explorer link

## Mental Model

### Counterfactual address

The smart account address exists before deployment. Users see one consistent address from onboarding through first transaction.

### Offchain signature

The wallet signs SIWE or typed data using ERC-6492 proof that wraps factory data for an undeployed contract.

### Verifier simulation

Your backend or wallet simulates deployment plus signature validity. Auth succeeds without an upfront deploy transaction.

### First onchain action

The initial transaction may include contract deployment. Hide deployment complexity unless it changes cost, timing, or risk.

### Continuity

Before and after deploy, address and session identity stay the same. Do not make users reconnect after first transaction.

## Seen in the Wild

- Safe: Smart accounts commonly exist counterfactually before first execution. (https://safe.global/)

- Coinbase Smart Wallet: Passkey smart wallets sign before deployment. (https://www.coinbase.com/wallet/smart-wallet)

- Ambire: Smart wallet onboarding emphasizes immediate use over deploy-first. (https://www.ambire.com/)

## On Monad

### Confirmation speed

Ethereum: Multi-step flows can feel slow between signatures

Monad: Sub-second finality tightens feedback loops

Design implication: Prefer inline status over long pending modals on Monad.

### Transaction cost

Ethereum: Gas can discourage exploratory actions

Monad: Lower fees enable lighter-weight interactions

Design implication: Safe to offer preview retries and social actions more freely.

## Related Standards

- ERC-4361: SIWE auth enabled for undeployed accounts — https://www.eipsfordesigners.com/standards/ERC-4361/agent.md

- ERC-4337: Smart accounts often verified counterfactually — https://www.eipsfordesigners.com/standards/ERC-4337/agent.md

## Technical Notes

ERC-6492 wraps a signature with factory and calldata so off-chain verifiers can simulate deployment.

## Official specification (reference only)

https://eips.ethereum.org/EIPS/erc-6492
