Tenzro Testnet is live. Get testnet TNZO

deBridge Integration

Tenzro integrates with deBridge DLN (Debridge Liquidity Network) for intent-based cross-chain swaps. deBridge uses a market-maker model where professional solvers compete to fill orders with the best execution. Tenzro provides both a native Rust adapter in tenzro-bridge and connects to the official deBridge MCP server at https://agents.debridge.com/mcp for AI agent access.

Official deBridge MCP Server

The deBridge team provides an official MCP server that AI agents can connect to directly. It requires no authentication and supports Streamable HTTP transport:

# Connect to the official deBridge MCP server
# Endpoint: https://agents.debridge.com/mcp
# Transport: Streamable HTTP
# Authentication: None required

# The MCP server provides tools for:
# - Searching tokens across all supported chains
# - Getting supported chain list
# - Creating cross-chain transaction data
# - Same-chain swap transactions
# - Order status tracking

Search Tokens

# Search for tokens across all chains
curl -X POST https://rpc.tenzro.network \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tenzro_debridgeSearchTokens",
    "params": [{"query": "USDC"}],
    "id": 1
  }'

# Response includes token addresses on each chain:
# {
#   "result": [
#     { "symbol": "USDC", "chain": "ethereum", "address": "0xA0b8...3c" },
#     { "symbol": "USDC", "chain": "solana", "address": "EPjFW...Lk" },
#     { "symbol": "USDC", "chain": "arbitrum", "address": "0xaf88...9f" }
#   ]
# }

Get Supported Chains

# List all chains supported by deBridge
curl -X POST https://rpc.tenzro.network \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tenzro_debridgeGetChains",
    "params": [],
    "id": 1
  }'

Create Cross-Chain Transaction

import { TenzroClient } from "@tenzro/sdk";

const client = new TenzroClient("https://rpc.tenzro.network");

// Create a cross-chain swap order via deBridge
const order = await client.bridge.debridge.createOrder({
  srcChain: "ethereum",
  dstChain: "arbitrum",
  srcToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC on Ethereum
  dstToken: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", // USDC on Arbitrum
  amount: "1000000000",   // 1000 USDC (6 decimals)
  sender: "0xYourAddress...",
  recipient: "0xRecipientOnArbitrum...",
});

console.log("Order ID:", order.orderId);
console.log("Estimated output:", order.estimatedAmount);
console.log("Fee:", order.fee);

// Track order status
const status = await client.bridge.debridge.getOrderStatus(order.orderId);
// States: Created → Filled → Cancelled

Same-Chain Swap

// Same-chain swap (no bridging, uses DLN market makers)
const swap = await client.bridge.debridge.sameChainSwap({
  chain: "ethereum",
  srcToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
  dstToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
  amount: "1000000000000000000", // 1 ETH
  sender: "0xYourAddress...",
});

deBridge Hooks

deBridge Hooks allow arbitrary on-chain actions to execute when a cross-chain order is fulfilled on the destination chain. The hook calldata is validated and simulated by deBridge before inclusion:

use tenzro_bridge::debridge::{DeBridgeAdapter, DlnHook};

// Create a hook that stakes tokens after bridging
let hook = DlnHook::new(
    "0xStakingContract...",           // target contract on destination
    "0xa694fc3a000000000000...0001",  // stake() calldata
    true,                              // revert fill if hook fails
);

let order = adapter.create_order_with_hook(
    "ethereum", "arbitrum",
    "0xUSDC...", 1_000_000_000,
    "0xUSDC...", 0,  // auto amount
    "0xsender...",
    hook,
).await?;

Batch Order Monitoring

// Query all orders for a wallet via the stats API
// (stats-api.dln.trade — the current production endpoint)
const orders = await client.bridge.debridge.getOrdersByWallet(
    "0xYourWallet...",
    { skip: 0, take: 50 }
);

// Look up order by creation transaction hash
const order = await client.bridge.debridge.getOrderByTx("0xtxhash...");

CLI Usage

# Create a cross-chain order via deBridge
tenzro-cli bridge transfer \
  --adapter debridge \
  --from-chain ethereum \
  --to-chain arbitrum \
  --token USDC \
  --amount 1000 \
  --to 0xRecipient...

# Track order status
tenzro-cli bridge status --order-id <order-id>

# Create order with hook
tenzro-cli bridge hook \
  --from-chain ethereum --to-chain arbitrum \
  --token 0xUSDC... --amount 1000000000 \
  --sender 0xsender... \
  --hook-target 0xStakingContract... \
  --hook-calldata 0xa694fc3a...

Related Documentation

Cross-chain Bridge — All bridge adapters overview
LayerZero — Omnichain messaging
Chainlink CCIP — DON-verified cross-chain
LI.FI — Cross-chain aggregator