How It Works
Overview
Swype is a better way for users to fund and withdraw from app accounts using the stablecoin apps they already have.
From a platform’s point of view, integration is simple:
Create a transfer session (server-to-server) with destination constraints
Open the Swype-hosted browser flow for the user
React to webhook events to update internal state
Responsibilities
Swype is designed with strict responsibility separation. Platforms request transfers; Swype and connected wallets enforce permissions and execute them.
What Swype owns
User authentication to Swype (OTP → passkey)
Stablecoin app connection and approvals
Per-app allowance enforcement (Phase 1)
Routing and execution
Retries and idempotency
Transfer state machine and webhooks
What platforms do not do
Authenticate users to Swype
Handle source wallets or balances
Build chain or asset selection UX
Execute or retry onchain transactions
Actors
Swype sits between platforms, stablecoin wallets, and execution infrastructure. Each actor has a clear, non-overlapping role.
Platform (External App)
Authenticates users to the app (e.g., via Privy)
Creates transfer sessions with destination constraints
Opens the Swype-hosted browser flow
Updates user balances based on Swype webhook events
Swype
Authenticates users to Swype
Manages stablecoin wallet connections
Enforces per-app allowances
Validates destination constraints
Coordinates routing and execution
Emits transfer lifecycle webhooks
Stablecoin Wallet
Holds the user’s stablecoin balance
Presents native approval UI when required
Enforces wallet-side limits and revocations
Acts as sender or receiver of funds
Execution Layer
Executes transfers according to Swype’s validated request
Handles onchain broadcast and settlement
Returns execution results to Swype