Overview
Complete guide for integration partners building frontends to connect users with Coinchange Vaults.
Overview
Coinchange is a regulated digital asset platform purpose-built for fintechs, wallets, platforms, and institutional allocators. We deliver compliant, risk-adjusted digital asset rewards engineered to meet the legal, custody, and reporting needs of complex financial entities.
How We Help Partners:
- Launch white-labeled or embedded Earn offerings in weeks
- Offer passive rewards on stablecoins, BTC, ETH, and more
- Retain full control over user experience
- Seamlessly manage treasury or idle user balances
- Access CeFi + DeFi strategies with institutional-grade risk controls
Who this documentation was built for:
Audience: Frontend developers integrating Boring Vault into their applications Purpose: Enable your users to view vaults, deposit assets, see reporting, and request withdrawals Deployment: Coinchange handles all vault deployment and asset management
Overview
What is Coinchange Vault?
Coinchange Vault is technology & liquidity infrastructure that automates routing of digital assets into curated on-chain and exchange venues. It’s built on a Veda-style vault architecture (forked and extended) and exposed through a React SDK for fast partner integrations. Rewards are variable and derived from blockchain protocol incentives and CeFi/DeFi strategies across CEX/DEX venues.
Core contracts (per vault)
- BoringVault — ERC-4626-style share accounting (1 share = claim on the vault’s base asset).
- TellerWithMultiAssetSupport — handles supplying supported tokens, allowance checks, and share minting.
- AccountantWithRateProviders — provides asset/share exchange rates with standardized decimals and slippage helpers.
- DelayedWithdraw — non-instant redemptions via a request → maturity → completion flow (T+1 to T+5 business days).
- Lens — batched read endpoints (TVL, share price, user positions) to minimize RPC calls.
See Contract Addresses for network-specific addresses and share-lock settings.
React SDK at a glance
We expose a light React layer so you can drop in a Provider and call high-level hooks.
Read helpers
isBoringV1ContextReady()fetchTotalAssets()→ vault TVL (base asset units, human-readable)fetchShareValue()→ value of one share in the base assetfetchUserShares(address)→ user share balance (human-readable)fetchUserUnlockTime(address)→ unlock timestamp
Supply / redeem helpers
deposit(options)withdepositStatus(initiated, loading, success, error, tx_hash)delayWithdraw(options)fetchActiveDelayWithdraws(address)delayWithdrawCancel(options)delayWithdrawComplete(options)withwithdrawStatus(initiated, loading, success, error, tx_hash)
In prose we say supply and redeem. Function names like
depositandrequestWithdrawremain as in the ABI.
Redemption timelines
Redemption requests are processed on a T+1 to T+5 business-day basis through the DelayedWithdraw flow. The SDK surfaces maturity so your UI can enable “Complete” at the right time.
Integrator responsibilities
- Wallet & RPC: Provide an Ethers signer and a stable RPC for the target network.
- KYC/allowlist: Some vaults are allowlisted. Check allowlist state before enabling supply.
- UX states: Show status for approvals, supply, requests, cancellations, and completions.
- Decimals & slippage: Use SDK helpers; avoid hand-rolled rate/scale math.
- Compliance language: Position as technology-powered DeFi automation and non-custodial liquidity routing.
Security posture
- Fully on-chain share accounting; keys remain with users.
- Independent audits linked on the Code Audits page.
- Share-lock periods (if any) are documented per vault.
- Partners should perform their own smart-contract and operational due diligence.
Versioning
- Contracts: versioned per deployment (see Contract Addresses).
- SDK: semver (
boring-vault-ui). See SDK Examples for imports and usage.
FAQ for Integrators
Q: Do I need to deploy any contracts?
A: No. Coinchange deploys and manages all vault contracts. You only interact with them from your frontend.
Q: What networks are supported?
A: Ethereum Mainnet, Arbitrum, Optimism, Base, and Avalanche. Check Contract Addresses for specific deployments.
Q: Can users withdraw instantly?
A: Most vaults use delayed withdrawals (one to five business days). Some may support instant withdrawals. Check your specific vault configuration.
Q: What wallet libraries should I use?
A: We recommend wagmi or viem for React apps. Any library that supports standard Web3 interactions works.
Q: How do I handle native ETH deposits?
A: Most vaults require WETH (wrapped ETH). You can auto-wrap ETH to WETH in your UI, or use the Teller's native ETH support if available.
Q: What about gas fees?
A: Users pay their own gas fees. Make sure they have enough ETH for gas in addition to their deposit amount.
Q: How do I calculate APY to display?
A: Coinchange typically provides APY data via API or you can calculate based on historical share price changes. Contact your partnership manager for APY data source.
Q: Can vault strategies lose money?
A: Yes. Share price can decrease if strategies lose value. Always show risk disclosures and never guarantee returns.
Q: What if a transaction fails?
A: Common reasons: insufficient gas, slippage too low, user not whitelisted, shares locked. Check error messages and provide user guidance.
Q: Do I need to integrate all contracts?
A: At minimum: BoringVault (shares), Teller (deposit), Accountant (rate).
Updated 25 days ago
