Skip to main content

API Integrations

Overview

The iBnk API provides a RESTful interface for stablecoin conversions on supported blockchain networks. The API follows a secure transaction flow where private keys never leave your application.

Base URL: https://api.ibnk.xyz

Version: 2.1.0

Authentication

All API requests require an API key passed in the X-API-Key header:

curl -H "X-API-Key: your_api_key" https://api.ibnk.xyz/api/v1/pools

To request an API key, contact: ying@ibnk.xyz

Supported Networks

NetworkChain IDStatus
Base Sepolia84532Testnet
Arbitrum Sepolia421614Testnet

Transaction Flow

  1. Preview - Get expected output and exchange rate
  2. Check Approval - Verify token approval status
  3. Build Transaction - API generates unsigned transaction
  4. Sign Locally - Client signs with private key
  5. Broadcast - API broadcasts and returns results

Quick Example

Preview a Conversion

curl -X POST "https://api.ibnk.xyz/api/v1/convert/preview" \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"chainId": 84532,
"poolAddress": "0xEd1FAF5Ed63dA5b47CBc44f7696E701cb613bB57",
"tokenIn": "0xB209B4f21a233751EEd1C11747b1f06850fE6ca2",
"tokenOut": "0xb5dC8d3fcFd2277f2C6ae87e766732c00A7EfbF3",
"amountIn": "100"
}'

Response:

{
"success": true,
"data": {
"amountIn": "100",
"amountOut": "154.752590",
"exchangeRate": "1.547526",
"fee": "0.05%",
"recommendedMinAmountOut": "154.675212"
}
}

Main API Endpoints

CategoryEndpointDescription
PoolsGET /api/v1/poolsGet available liquidity pools
ConvertPOST /api/v1/convert/previewPreview conversion output
OracleGET /api/v1/oracle/prices/:chainIdGet real-time Oracle prices
ApprovalPOST /api/v1/approval/checkCheck token approval status
ApprovalPOST /api/v1/approval/buildBuild approval transaction
TransactionPOST /api/v1/transaction/build/convertBuild convert transaction
TransactionPOST /api/v1/transaction/broadcast/convertBroadcast with slippage analysis
FaucetPOST /api/v1/faucet/build/claim-allClaim test tokens

Contract Addresses (Base Sepolia)

ContractAddress
Router0x9647B25aFf27F1c36f77dFec2560a8696B59dbdE
USDC0xB209B4f21a233751EEd1C11747b1f06850fE6ca2
AUDM0xb5dC8d3fcFd2277f2C6ae87e766732c00A7EfbF3
EURC0x1e00beAf9Db905e1098A8224fa21E93b260DB7eC
AUDM/USDC Pool0xEd1FAF5Ed63dA5b47CBc44f7696E701cb613bB57
Faucet0x432a163B26DaB6D5f386d8C4F70032f670686238

Rate Limits

LimitValue
Requests per 15 minutes100
Burst limit10 requests/second

Error Handling

All responses include a success field:

// Success
{
"success": true,
"data": { ... }
}

// Error
{
"success": false,
"error": "Error message"
}

Next Steps

For complete documentation, see: