Introduction
Action Codes allow secure and seamless consumption of pre-generated One-Time Action Codes (Action Codes) across Web3 apps. These codes are created through the OTA.codes platform and can be used by dApps without requiring a wallet connection, enabling embedded flows, headless interactions, and frictionless onboarding.
This documentation will guide you through how to consume Action Codes in your application using our lightweight implementation. Currently we support Rest API, TypeScript SDK, and React hooks. Whether you're building a dApp, tool, or on-chain service, Action Codes offer a modular, secure, and user-friendly way to initiate blockchain actions.
Problem Statement
In traditional web3 applications, every user action requires an active wallet connection and signature. This creates friction, especially in contexts like embedded apps, headless devices, social flows, or mobile-first interfaces where wallet access is intermittent or undesirable. It also limits interoperability between apps and services.
Our Solution
Action Codes introduces One-Time Action Codes (Action Codes) - short-lived, verifiable codes generated by a user's wallet and authorized for specific actions. These codes can be consumed by dApps without wallet connection, enabling smooth and secure intent resolution across devices, screens, and protocols.
Core Concepts
- One-Time Action Code (Action Code): A short-lived code bound to a wallet and intended action.
- Action Intent: The pre-authorized instruction that attached to the Action Code is meant to execute.
- Consumption: The act of presenting an Action Code to a service or dApp, triggering validation and execution.
- Expiration & Security: Action Codes expire quickly and cannot be reused, spoofed, or transferred.