Deposit Status
Once you have sent assets to a deposit address, use this endpoint to follow the transfer until funds land in your Openfish wallet.
Endpoint
Section titled “Endpoint”GET https://bridge.openfish.fun/status/{address}The {address} parameter accepts any of the three deposit address types (EVM, SVM, or BTC) returned by the /deposit or /withdraw endpoints. The server resolves the address to its parent wallet and returns every matching transaction.
Example Request
Section titled “Example Request”curl https://bridge.openfish.fun/status/0x23566f8b2E82aDfCf01846E54899d110e97AC053Response
Section titled “Response”{ "transactions": [ { "from_chain_id": "1", "from_token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "from_amount_base_unit": "1000000000", "to_chain_id": "137", "to_token_address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", "status": "COMPLETED", "tx_hash": "0xabc123...", "created_time_ms": 1697875200000 } ]}Transaction Statuses
Section titled “Transaction Statuses”Every deposit or withdrawal passes through a sequence of states:
| Status | Terminal | Description |
|---|---|---|
DEPOSIT_DETECTED | No | Funds detected on the source chain |
PROCESSING | No | Transfer is being routed and converted |
ORIGIN_TX_CONFIRMED | No | Source chain transaction confirmed |
SUBMITTED | No | Submitted to the destination chain (Polygon) |
COMPLETED | Yes | Funds credited to your wallet |
FAILED | Yes | Transaction encountered an unrecoverable error |
Response Fields
Section titled “Response Fields”| Field | Type | Description |
|---|---|---|
from_chain_id | string | Source chain ID |
from_token_address | string | Token sent on the source chain |
from_amount_base_unit | string | Amount sent in base units |
to_chain_id | string | Destination chain ID (137 for Polygon) |
to_token_address | string | Token received on the destination chain |
status | string | Current transaction status (see table above) |
tx_hash | string | Destination chain transaction hash (when COMPLETED) |
created_time_ms | number | Unix timestamp in milliseconds when processing started |
Empty Response
Section titled “Empty Response”An empty transactions array indicates no deposits have been detected at the specified address:
{ "transactions": []}This is expected right after sending — the bridge may need a few blocks to notice the incoming transfer.
Rust SDK Example
Section titled “Rust SDK Example”use openfish_client_sdk::BridgeClient;use std::time::Duration;use tokio::time::sleep;
#[tokio::main]async fn main() -> anyhow::Result<()> { let bridge = BridgeClient::new("https://bridge.openfish.fun"); let deposit_addr = "0x23566f8b2E82aDfCf01846E54899d110e97AC053";
loop { let status = bridge.status(deposit_addr).await?;
if status.transactions.is_empty() { println!("Waiting for deposit detection..."); } else { for tx in &status.transactions { println!("[{}] {} from chain {}", tx.status, tx.from_amount_base_unit, tx.from_chain_id); if tx.status == "COMPLETED" || tx.status == "FAILED" { println!("Terminal state reached: {}", tx.status); return Ok(()); } } }
sleep(Duration::from_secs(15)).await; }}Polling Recommendations
Section titled “Polling Recommendations”- Poll every 10-30 seconds until you see a terminal status (
COMPLETEDorFAILED). - Most deposits finalize within 2-5 minutes, depending on how quickly the source chain confirms.
- Bitcoin deposits take longer due to the Bitcoin network’s block time (~10 minutes per confirmation).
Address Lookup Behavior
Section titled “Address Lookup Behavior”The status endpoint performs a two-step lookup:
- It searches the deposit address registry for any of the three chain-specific addresses (EVM, SVM, BTC) matching the provided address.
- If a match is found, it returns transactions across all three address types for that wallet.
- If no registry match is found, it performs a direct lookup on the provided address.
This means you can query with any one of your deposit addresses and receive the full transaction history.
Next Steps
Section titled “Next Steps”- Deposit — Generate deposit addresses.
- Supported Assets — Check minimum amounts and supported tokens.