Skip to main content
The Utila integration connects your Utila non-custody vaults to the Corsa compliance platform, enabling automated synchronization of wallets, transactions, and corporate client records.

Overview

The integration automatically imports:
  • Blockchain wallets and their addresses across all supported networks
  • Deposits and withdrawals with full transaction details (hash, block number, fees, asset info)
  • Real-time updates via webhooks for transaction state changes, new wallets, and AML screening results

How It Works

  1. Scheduled Sync - Corsa periodically fetches all wallets and transactions from your Utila vault.
  2. Real-Time Webhooks - Utila sends webhook events to Corsa in real time as activity occurs.
  3. Automatic Classification - Transactions are classified as deposits or withdrawals based on address ownership.

Supported Blockchains

NetworkMainnetTestnet
EthereumYesYes (Sepolia)
BitcoinYesYes
PolygonYes-
SolanaYesYes (Devnet)
TronYes-
Avalanche (C-Chain)Yes-
ArbitrumYes-
OptimismYes-
BaseYes-
BNB Smart ChainYes-

Data Synchronization

Wallets

  • Wallets are uniquely identified by a reference ID derived from the Utila wallet address name.
  • Multi-network wallets generate a wallet record per network.
  • Wallets are automatically associated with the corporate client record representing your vault.
  • Utila-specific metadata (wallet ID, additional details) is preserved.

Transactions

Each record includes: transaction hash, block number, amount, mining fees, asset symbol, source/destination addresses, blockchain network, and full status history.
  • Deposits: Transactions where the destination address belongs to your vault.
  • Withdrawals: Transactions where the source address belongs to your vault.

Sync Modes

ModeDescription
Full SyncFetches and imports all wallets and transactions. Use for initial onboarding or reconciliation.
Partial SyncImports only transactions created after the last sync timestamp. Used for regular scheduled syncs.

Real-Time Webhooks

EventDescription
Transaction CreatedCreates a deposit or withdrawal record in Corsa.
Transaction State UpdatedUpdates the corresponding record status.
AML Screening Result ReadySyncs the transaction with screening results.
Wallet CreatedCreates corresponding blockchain wallet records.
Wallet Address CreatedCreates a new blockchain wallet record for that address.

Transaction Status Mapping

Utila StateCorsa Status
CONFIRMED, MINEDSuccess
FAILED, DROPPEDFailed
CANCELLED, EXPIRED, DECLINED, DECLINED_BY_AML_POLICY, REPLACEDCancelled
All other statesPending
The original Utila state is preserved as a sub-status for full auditability.

Setup

Prerequisites

  • A Utila account with permission to generate API credentials and configure webhooks.
  • Owner access to the Corsa application.

Credentials Required

CredentialDescription
Utila RSA Private KeyRSA private key for JWT token generation.
Utila Service Account EmailThe email address of the Utila service account.
Utila Vault IDThe ID of the vault to synchronize.

Steps

  1. Log in to Corsa.
  2. Go to Developers Hub → Integrations.
  3. Click Configure on the Utila card.
  4. Insert your Vault ID from Utila.
  5. Configure the Polling Interval.
Corsa will generate a key pair for the integration. Create a new service account in Utila’s settings with the specified public key and configure the webhook URL with the specified event types. You can always view these configurations by clicking the three-dot menu on the integration card and selecting Third-Party Configuration.
Corsa offers native integrations with leading compliance, blockchain analytics, and custody providers. See all integrations or schedule a demo to see how Corsa fits into your stack.