Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.blink.cash/llms.txt

Use this file to discover all available pages before exploring further.

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>;
}
FieldTypeRequiredDescription
amountnumberYesUSD amount to deposit. Must be > 0.
chainIdnumberYesDestination chain ID (for example, 8453 for Base or 792703809 for Solana).
addressstringYesDestination wallet address. In the web SDK this can be an EVM address or a Solana address, depending on the destination chain.
tokenstringYesDestination token identifier. Use an EVM token contract address on EVM chains or an SPL mint address on Solana.
callbackSchemestring | nullNoCustom URL scheme for native app deep-link callbacks. Always null for browser.
referencestringNoMerchant order or invoice ID for reconciliation.
metadataRecord<string, string>NoArbitrary key-value pairs forwarded to the signer.
Choose chainId and token from Blink’s active routing catalog. See Supported Networks and Wallets for the current support matrix and fee behavior.

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>;
}
FieldTypeDescription
amountnumberUSD amount to deposit.
chainIdnumberDestination chain ID.
addressstringDestination wallet address.
tokenstringDestination token identifier for that chain.
callbackSchemestring | nullnull for browser integrations.
urlstringBase webview URL. Provided for logging/validation only.
version'v1'Protocol version.
referencestring?Merchant order or invoice ID.
metadataRecord<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;
  };
}
FieldTypeDescription
merchantIdstringYour merchant UUID.
payloadstringBase64url-encoded payment payload.
signaturestringBase64url-encoded ECDSA signature of the payload string.
expiresAtstring?ISO 8601 expiration timestamp. Optional. Swype enforces expiry server-side via signatureTimestamp in the payload.
previewobjectEcho of payment parameters for client-side display.

SignerFunction

Custom async function for full control over the signer call.
type SignerFunction = (data: SignerRequest) => Promise<SignerResponse>;