How It Works
Payout Processing
Once a user links their stablecoin app and the platform stores the opaque destination_id, a payout is initiated by calling POST /payouts with destination_id and a payout amount in fiat (USD).
From there, the payout moves through two steps: routing and execution.
1. Routing + Abstraction
Routing is where Swype translates a platform-level instruction (destination_id + USD amount) into the concrete delivery plan required to pay the user correctly.
Given destination_id + payout amount (USD), Swype:
Resolves the destination’s stored payout rails internally (supported assets, supported networks, destination addresses, tags/limits)
Decides what asset and network to send
Selects the best route based on reliability, cost, partner availability, liquidity/limits, and compliance constraints
Example:
If the destination supports USDC on Base, Swype routes there.
If the destination supports multiple options, Swype chooses the best route using the criteria above.
This is the step that converts “pay this user $100” into “deliver this asset on this network to this destination,” without exposing chains, tokens, or addresses to the platform.
2. Execution
Execution begins once the route is chosen. Swype turns the routing decision into an executable job and hands it off to a regulated execution partner (for example, an onramp provider).
In this step:
Swype creates a payout job and submits an execution request to the chosen partner
The execution partner acts as the sender of record and performs the regulated money movement and executes the onchain transfer
Throughout execution, Swype tracks payout lifecycle and reports status back to the platform via:
Webhooks for
payout.processing,payout.completed,payout.failedOptional polling for current status
Swype as the System of Record
During payout execution, Swype serves as the system of record for each payout, even though execution partners perform the actual transfer.
Specifically, Swype is the source of truth for:
Payout Routing
Swype maintains the authoritative mapping from destination_id to the verified payout rails (chains, assets, addresses). Platforms never see or store blockchain-specific details, and routing can change internally without requiring platform updates.
Payout Lifecycle and Status
Swype tracks each payout end to end using a consistent state machine, from creation through execution to completion or failure, and exposes status via APIs and webhooks.
Verifiable Proof of Execution
Swype stores execution partner payout IDs, blockchain transaction hashes (when available), timestamps, and final outcomes, enabling reconciliation, auditability, and support without platforms coordinating directly with execution partners or becoming blockchain-native.