Awesome-omni-skill wirex-baas-overview
Wirex BaaS platform overview and getting started guide — start here for integration basics. Covers what Wirex BaaS is, the 5-step integration flow, API environments (sandbox and production URLs), sandbox test credentials, required headers (Authorization, X-Chain-Id), error handling, blockchain networks (Base, Stellar), canonical token and contract registry addresses, MCP server setup, and supported countries (77) with SEPA/ACH bank availability.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/wirex-baas-overview" ~/.claude/skills/diegosouzapw-awesome-omni-skill-wirex-baas-overview && rm -rf "$T"
skills/development/wirex-baas-overview/SKILL.mdWirex BaaS Platform Overview
Introduction
Wirex BaaS (Banking-as-a-Service) is a blockchain-native financial services platform that enables partners to embed comprehensive financial capabilities into their applications through REST APIs. The platform bridges traditional finance and decentralized infrastructure, providing a unified interface for:
- Account Abstraction (AA) Wallets -- Smart contract wallets deployed on-chain with gasless transactions, social recovery, and multi-signature support. Each user gets a deterministic wallet address derived from their identity.
- KYC Verification -- Identity verification flows supporting document checks, liveness detection, and regulatory compliance across 88+ countries. Powered by third-party providers with webhook-based status updates.
- Visa Card Issuance -- Virtual and physical Visa card provisioning, lifecycle management, transaction controls, and Apple Pay / Google Pay tokenization. Cards are funded from user wallets.
- Crypto Asset Management -- Multi-chain token support (USDC, USDT, EURC, WUSD, WEUR) with on-chain balances, transfers, and exchange operations across Base and Stellar networks.
- Fiat Banking (SEPA/ACH) -- Bank account creation, inbound/outbound transfers, and currency conversion. SEPA covers 28 European countries; ACH covers 34+ countries including all US states.
All services are accessed through a consistent REST API layer with OAuth2 authentication, standardized error handling, and blockchain transaction management.
Integration Flow
Integrating with Wirex BaaS follows five sequential steps:
Step 1: Partner Setup
Wirex provisions your partner account and issues credentials:
- client_id -- UUID identifying your application
- client_secret -- Secret string for OAuth2 token exchange
- partner_id -- 16-byte hex identifier used in on-chain operations (e.g.,
)0x00000000000000000000000000000007
You receive access to the Sandbox environment for development and testing.
Step 2: Authentication
Establish server-to-server authentication using OAuth2 client credentials:
POST /api/v1/token Content-Type: application/json { "client_id": "<your-client-id>", "client_secret": "<your-client-secret>", "grant_type": "client_credentials" }
The returned
access_token is valid for 48 hours and is required as a Bearer token on all subsequent API calls.
Step 3: On-Chain Configuration
Configure your on-chain environment:
- Query the Contract Registry to discover deployed contract addresses (Accounts, FundsManagement, ExecutionDelayPolicy, TokensRegistry).
- Verify token addresses and decimals from the TokensRegistry contract.
- Set up webhook endpoints for asynchronous event notifications (transaction confirmations, KYC status changes, card events).
Step 4: API Registration
Register your first user through the API:
- Call
orPOST /api/v1/user
to create a user record.POST /api/v2/user - The platform deploys an Account Abstraction wallet on the configured chain.
- Obtain a user-scoped token via
for user-specific operations.POST /api/v1/user/authorize
Step 5: Operations
With authentication and user registration complete, you can:
- Initiate KYC verification flows
- Issue virtual or physical Visa cards
- Execute crypto transfers and exchanges
- Create bank accounts and process fiat transfers
- Query balances, transactions, and account status
Environments
Wirex BaaS provides separate environments for development and production use.
Core API Environments
| Environment | Base URL | Purpose |
|---|---|---|
| Sandbox | | Development and testing with test data |
| Production | | Live operations with real funds |
PCI-Compliant Card Environments
Card-related operations that handle sensitive PAN data use dedicated PCI DSS-compliant endpoints, specifically for card tokenization in push-to-card transfers:
| Environment | Base URL | Purpose |
|---|---|---|
| PCI Sandbox | | Card testing |
| PCI Production | | Live card operations |
Helper API
| Environment | Base URL | Purpose |
|---|---|---|
| Helper API | | Utility services and auxiliary operations |
Blockchain Networks
Wirex BaaS operates on the following blockchain networks:
Production Networks:
| Network | Chain ID | Description |
|---|---|---|
| Base | | Ethereum L2 (Coinbase) -- primary EVM chain |
| Stellar | | Stellar network for cross-border payments |
Sandbox Networks:
| Network | Chain ID | Description |
|---|---|---|
| Base Sepolia | | Base testnet for development |
| Stellar Testnet | | Stellar testnet (same chain ID as production) |
Note: The Stellar chain ID is the same value (
) in both sandbox and production. The environment base URL determines which Stellar network is used.9223372036854775806
Credentials
Partners receive three credentials upon onboarding:
| Credential | Format | Description |
|---|---|---|
| client_id | UUID string | Uniquely identifies your partner application. Passed in the token request body. |
| client_secret | Opaque string | Used alongside to authenticate token requests. Must be stored securely and never exposed in client-side code. |
| partner_id | 16-byte hex string | On-chain identifier for your partner account (e.g., ). Used as the parameter when registering user wallets in the Accounts smart contract, and in some API headers. Not secret but should be validated against expected value. Can be stored in application configuration. |
Security Requirements
- Store
in a secrets manager or encrypted environment variable. Never commit it to source control.client_secret - Rotate credentials immediately if a compromise is suspected.
- Use separate credentials for Sandbox and Production environments.
API Basics
Protocol and Security
- HTTPS only -- All API communication uses HTTPS with TLS 1.2 or higher. Plain HTTP requests are rejected.
- Content-Type -- All request and response bodies use
.application/json - Timeout -- A 30-second timeout is recommended for all API calls. Some blockchain operations may take longer; use webhooks for async confirmation.
Required Headers
Every API request must include the following headers:
| Header | Required | Description |
|---|---|---|
| Yes | Bearer token from (e.g., ) |
| Yes | Blockchain network identifier. Must match your target chain (e.g., for Sandbox Base Sepolia, for Production Base). Required for all requests. |
| Yes (for POST/PUT) | |
Additional headers for user-specific operations:
| Header | When Required | Description |
|---|---|---|
| User-specific calls | User's EOA (Externally Owned Account) address — NOT the Smart Wallet address |
| User-specific calls | Email address of the user |
| User-specific calls | Internal user identifier |
Exactly one of
,X-User-Address, orX-User-Emailis required for endpoints that operate on a specific user. Providing multiple user identity headers in the same request is rejected with an error. User-agnostic endpoints (token, config, user creation) do not require these headers.X-User-Id
User-Agnostic Endpoints
The following endpoints do not require user identity headers:
-- AuthenticationPOST /api/v1/token
-- User creationPOST /api/v1/user
-- User creation (v2)POST /api/v2/user
-- Platform configurationGET /api/v1/config
-- Validation rulesGET /api/v1/validation/rules
MCP Server
Wirex BaaS provides a Model Context Protocol (MCP) server for AI-assisted development. The MCP server gives AI tools direct access to API documentation, endpoint specifications, and code generation assistance.
MCP Server URL:
https://docs.wirexapp.com/mcp
The MCP server supports:
- API Documentation Access -- Query endpoint specifications, request/response schemas, and usage examples.
- Documentation Search -- Search across the full Wirex BaaS documentation corpus.
- Real-Time Data -- Access current API status, supported tokens, and configuration values.
- Code Generation Assistance -- Generate integration code snippets for common workflows.
For detailed setup instructions across different tools (Claude Code, Cursor, Claude Desktop, Windsurf), see the MCP Setup Reference.
Supported Countries
Wirex BaaS supports operations in 77 countries across five regions:
| Region | Country Count | Examples |
|---|---|---|
| Europe | 35 | United Kingdom, Germany, France, Spain, Italy, Netherlands, Sweden, Switzerland, Poland, Austria, and 25 more |
| Asia-Pacific | 10 | Singapore, Japan, Hong Kong, Australia, Indonesia, Malaysia, Taiwan, Thailand, Vietnam, and more |
| Latin America | 7 | Brazil, Mexico, Argentina, Chile, Colombia, Peru, Ecuador |
| Rest of World | 24 | UAE, South Africa, Israel, Turkey, Nigeria, Saudi Arabia, South Korea, and 17 more |
| United States | 1 | Full coverage across all 50 states + DC |
For the complete list with ISO country codes, see the Supported Regions Reference.
Bank Account Availability
Fiat banking services are available through two networks:
- SEPA (Single Euro Payments Area) -- 28 European countries. Supports EUR-denominated transfers with T+1 settlement.
- ACH (Automated Clearing House) -- 34+ countries including all US states and territories. Supports USD-denominated transfers.
Availability depends on the user's country of residence and completed KYC level.
Error Handling
All API errors follow a consistent JSON format:
{ "error_reason": "ErrorInvalidField", "error_description": "The provided X-Chain-Id header value is not supported.", "error_category": { "category": "CategoryValidationFailure", "http_status_code": 400 }, "error_details": [ { "key": "field", "details": "X-Chain-Id" }, { "key": "issue", "details": "unsupported_value" } ] }
Error Fields
| Field | Type | Description |
|---|---|---|
| string | PascalCase error code (e.g., , , , , , , , ) |
| string | Human-readable explanation of the error |
| object | Error classification object containing (string) and (integer) |
| array | Array of objects, each with (string) and (string) providing additional context |
Error Categories
| Category | HTTP Status | Description | Recommended Action |
|---|---|---|---|
| 400 | Invalid request parameters, missing headers, malformed data | Fix the request and retry |
| 401 | Invalid or expired token, insufficient permissions | Re-authenticate and retry |
| 500 | Server-side error | Retry with exponential backoff; contact support if persistent |
| 429 | Rate limit exceeded or temporary service degradation | Retry after the delay indicated in header |
Error Handling Best Practices
- Always check the
to determine retry strategy.error_category - Implement exponential backoff for
andCategoryTransientFailure
errors.CategoryInternalFailure - Do not retry
errors without modifying the request.CategoryValidationFailure - Refresh tokens proactively -- cache tokens and refresh 5 minutes before expiry to avoid
errors.CategoryUnauthorized - Log
anderror_reason
for debugging and support escalations.error_description
References
- Environments Reference -- Full environment URLs, chain IDs, contract addresses, and token configurations
- MCP Setup Reference -- MCP server configuration for all supported AI tools
- Supported Regions Reference -- Complete country list with ISO codes and bank availability