All types are exported from the main entry point:
import type {
DepositConfig,
DepositStatus,
DepositRequest,
DepositResult,
SignerFunction,
SignerRequest,
SignerResponse,
TransferSummary,
DepositErrorCode,
} from '@swype-org/deposit';
DepositRequest, DepositResult, TransferSummary, SignerRequest, SignerResponse, and SignerFunction are shared between @swype-org/deposit (web) and @swype-org/deposit-mobile (mobile). The type definitions are identical across both SDKs.
DepositStatus
Current phase of the deposit flow.
type DepositStatus =
| 'idle'
| 'signer-loading'
| 'iframe-active'
| 'completed'
| 'error';
DepositConfig
Configuration for a Deposit instance. See Deposit Class for detailed descriptions.
interface DepositConfig {
signer: string | SignerFunction;
webviewBaseUrl?: string;
hostedFlowOrigin?: string;
containerElement?: HTMLElement;
signerTimeoutMs?: number;
flowTimeoutMs?: number;
debug?: boolean;
}
DepositRequest
Parameters for a single deposit request.
interface DepositRequest {
amount: number;
chainId: number;
address: string;
token: string;
callbackScheme?: string | null;
reference?: string;
metadata?: Record<string, string>;
}
| Field | Type | Required | Description |
|---|
amount | number | Yes | USD amount to deposit. Must be > 0. |
chainId | number | Yes | EVM chain ID for the destination (e.g., 8453 for Base). |
address | string | Yes | Destination wallet address (0x-prefixed, 40 hex chars). |
token | string | Yes | Token contract address on the destination chain (0x-prefixed hex). |
callbackScheme | string | null | No | Custom URL scheme for native app deep-link callbacks. Always null for browser. |
reference | string | No | Merchant order or invoice ID for reconciliation. |
metadata | Record<string, string> | No | Arbitrary key-value pairs forwarded to the signer. |
DepositResult
Result returned when a deposit completes successfully.
interface DepositResult {
transfer: TransferSummary;
idempotencyKey?: string;
preview?: {
amount: number;
chainId: number;
address: string;
token: string;
};
}
TransferSummary
Subset of transfer data returned from the hosted flow on completion.
interface TransferSummary {
id: string;
status: string;
amount?: {
amount: number;
currency: string;
};
destinations?: Array<{
chainId: string;
address: string;
token?: { address?: string; symbol?: string };
}>;
}
SignerRequest
Data the SDK passes to the merchant signer.
interface SignerRequest {
amount: number;
chainId: number;
address: string;
token: string;
callbackScheme: string | null;
url: string;
version: 'v1';
reference?: string;
metadata?: Record<string, string>;
}
| Field | Type | Description |
|---|
amount | number | USD amount to deposit. |
chainId | number | EVM chain ID for the destination. |
address | string | Destination wallet address. |
token | string | Token contract address on the destination chain. |
callbackScheme | string | null | null for browser integrations. |
url | string | Base webview URL. Provided for logging/validation only. |
version | 'v1' | Protocol version. |
reference | string? | Merchant order or invoice ID. |
metadata | Record<string, string>? | Arbitrary key-value pairs. |
SignerResponse
Shape the merchant signer must return.
interface SignerResponse {
merchantId: string;
payload: string;
signature: string;
expiresAt?: string;
preview: {
amount: number;
chainId: number;
address: string;
token: string;
idempotencyKey: string;
};
}
| Field | Type | Description |
|---|
merchantId | string | Your merchant UUID. |
payload | string | Base64url-encoded payment payload. |
signature | string | Base64url-encoded ECDSA signature of the payload string. |
expiresAt | string? | ISO 8601 expiration timestamp. Optional — Swype enforces expiry server-side via signatureTimestamp in the payload. |
preview | object | Echo of payment parameters for client-side display. |
SignerFunction
Custom async function for full control over the signer call.
type SignerFunction = (data: SignerRequest) => Promise<SignerResponse>;