Quickstart

The whole process consists of:

1

Authentication

Get an API key to authenticate your requests.

2

Fetching bridge configs

Retrieve supported chains and tokens.

3

Getting a bridge quote

Obtain transaction details, including fees.

4

Committing the quote

Confirm the transaction.

5

Executing the bridge transaction

Interact with the smart contract to complete the transfer.


1. Authentication

All non-public API endpoints are authenticated using a bearer token. To authenticate your requests, include the token in the Authorization header.

The authentication token can be obtained by reaching out to us. We’ll provide you with a unique API key that you can use to access our API.

Use the form below to get in touch with us:

Reach out to us for an API key

We’ll get back to you as soon as possible!

2. Fetch Bridge Configs

Retrieve available chains and supported tokens to ensure your transaction uses the correct parameters.

getBridgeConfigs.js
export const getBridgeConfigs = async () => {
  const request = await fetch('https://api.rhino.fi/bridge/configs')
  return request.json()
}

For the exact response format and more details, see the API Reference.

3. Get a Bridge Quote

Before executing a bridge transaction, you must generate a quote that provides transaction details, including fees and amounts.

getBridgeUserQuote.js
export const getBridgeUserQuote = async (payload, apiKey) => {
  const request = await fetch(`https://api.rhino.fi/bridge/quote/user`, {
    headers: {
      "content-type": "application/json",
      "authorization": apiKey
    },
    method: "POST",
    body: JSON.stringify(payload)
  })

  return request.json()
}

For the exact request / response format and more details, see the API Reference.

4. Commit the Quote

Once you have a quote, you must commit it to confirm the transaction before execution.

commitBridgeUserQuote.js
export const commitBridgeUserQuote = async (quoteId, apiKey) => {
  const request = await fetch(`https://api.rhino.fi/bridge/quote/commit/${quoteId}`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'authorization': apiKey
    }
  })

  return request.json()
}

For the exact request / response format and more details, see the API Reference.

5. Execute the Bridge Transaction

Now, you can execute the bridge transaction by interacting with the smart contract.

See examples for interacting with the bridge smart contracts across different blockchain environments.

6. Full Example

Here’s the complete implementation combining all the steps above:

index.js
import { getBridgeUserQuote } from "./getBridgeUserQuote";
import { getBridgeConfigs } from "./getBridgeConfigs";
import { commitBridgeUserQuote } from "./commitBridgeUserQuote";

const API_KEY = 'your_api_key'; // Replace with your API key -- see step 1

const amount = '3';
const chainIn = 'BASE';
const chainOut = 'SOLANA';
const token = 'USDT';
const depositorAddress = '0x0000000000000000000000000000000000000000'; // Replace with your depositor address
const recipientAddress = '0x0000000000000000000000000000000000000000'; // Replace with your recipient address

const bridge = async () => {
  // Get bridge configs to determine supported chains and tokens or later use for the contract call
  const configs = await getBridgeConfigs();

  // Get a bridge quote for the transaction
  const quote = await getBridgeUserQuote({
    amount,
    chainIn,
    chainOut,
    token,
    mode: 'receive',
    depositor: depositorAddress,
    recipient: recipientAddress,
    amountNative: '0'
  }, API_KEY);

  if (!quote?.quoteId) throw new Error('Failed to generate user quote.');

  // Commit the quote to confirm the transaction when you are ready to send on-chain
  const commitResult = await commitBridgeUserQuote(quote.quoteId, API_KEY);

  if (!commitResult?.quoteId) throw new Error('Failed to commit user quote.');

  const chainConfig = configs[chainIn];

  // Execute the bridge transaction by interacting with the smart contract -- see above on exact implementation
  await callBridgeContract({
    chainConfig,
    amount: quote.payAmount,
    token,
    commitmentId: commitResult.quoteId,
    callback: (hash) => console.info('Transaction hash:', hash)
  });
};

bridge();

For a detailed breakdown of API endpoints and parameters, check the API Reference.

Next steps

For the smart contract integration see - contract examples

To track your bridge transaction status, see Bridge Status & History.