Deposit
Openfish settles all prediction market trades in USDC.e on Polygon. The Bridge API lets you send tokens from EVM chains, Solana, or Bitcoin. Incoming assets are converted to USDC.e automatically and credited to your Openfish balance.
How It Works
Section titled “How It Works”- Call
POST /depositwith your Openfish wallet address. - Receive three deposit addresses: one each for EVM chains, Solana, and Bitcoin.
- Transfer tokens to the address that matches your source chain.
- The bridge picks up the incoming transfer, swaps it to USDC.e, and credits your wallet.
Endpoint
Section titled “Endpoint”POST https://bridge.openfish.fun/depositRequest Body
Section titled “Request Body”| Field | Type | Required | Description |
|---|---|---|---|
address | string | Yes | Your Openfish wallet address (0x) |
Response
Section titled “Response”{ "address": { "evm": "0x23566f8b2E82aDfCf01846E54899d110e97AC053", "svm": "CrvTBvzryYxBHbWu2TiQpcqD5M7Le7iBKzVmEj3f36Jb", "btc": "bc1q8eau83qffxcj8ht4hsjdza3lha9r3egfqysj3g" }, "note": "Send supported assets to these addresses to deposit into your Openfish wallet."}Address Types
Section titled “Address Types”| Address | Use For |
|---|---|
evm | Ethereum, Arbitrum, Base, Optimism, Polygon, BSC |
svm | Solana |
btc | Bitcoin |
Each address is deterministically derived from your wallet and stays the same across calls. You can reuse these deposit addresses for multiple transfers.
Rust SDK Example
Section titled “Rust SDK Example”use openfish_client_sdk::BridgeClient;
#[tokio::main]async fn main() -> anyhow::Result<()> { let bridge = BridgeClient::new("https://bridge.openfish.fun");
let resp = bridge .deposit("0x56687bf447db6ffa42ffe2204a05edaa20f55839") .await?;
println!("EVM deposit address: {}", resp.address.evm); println!("Solana deposit addr: {}", resp.address.svm); println!("Bitcoin deposit addr: {}", resp.address.btc);
Ok(())}Deposit Flow
Section titled “Deposit Flow”- Generate Deposit Addresses — Call
POST /depositwith your wallet address. - Verify Supported Assets — Confirm your token meets the minimum via
GET /supported-assets. - Send Tokens — Transfer from your external wallet to the correct deposit address.
- Monitor Progress — Poll
GET /status/{address}until the transaction reachesCOMPLETED.
Chain-Specific Address Derivation
Section titled “Chain-Specific Address Derivation”Openfish generates one deposit address per chain family:
- EVM addresses are computed from your Openfish wallet through a deterministic salt, yielding a unique Polygon-compatible address that accepts tokens from any EVM-compatible chain.
- Solana addresses are created as associated program derived addresses (PDAs) tied to your wallet, supporting SOL and SPL token deposits.
- Bitcoin addresses follow a P2WPKH (SegWit) scheme mapped to your wallet for reduced on-chain costs.
Minimum Deposits
Section titled “Minimum Deposits”Every asset enforces a minimum USD-equivalent deposit. Transfers below the threshold are not processed. Always check GET /supported-assets before sending funds.
Handling USDC vs USDC.e
Section titled “Handling USDC vs USDC.e”If you deposit native USDC (not USDC.e), the bridge automatically swaps it to USDC.e through a low-slippage DEX route. No additional action is required on your part.
Large Deposits
Section titled “Large Deposits”For deposits exceeding $50,000, consider using a third-party bridge to minimize slippage and settle directly to your Openfish EVM deposit address:
Openfish is not affiliated with any third-party bridge provider.
Deposit Recovery
Section titled “Deposit Recovery”Sending an unsupported token to a deposit address may result in permanent loss. Always verify your token is listed in the Supported Assets response before initiating a transfer.
Next Steps
Section titled “Next Steps”- Supported Assets — View all chains, tokens, and minimum amounts.
- Check Status — Track deposit progress in real time.
- Get a Quote — Preview fees before depositing.