This guide uses a testing app ID. Planning to build a production app with our API? Reach out to us in the Townhall.
1

Get Quote

Let’s get a quote to trade 0.0005 BTC on Bitcoin Testnet4 to WBTC on Base Sepolia.
curl -X 'GET' 'https://testnet.api.garden.finance/v2/quote?from=bitcoin_testnet:btc&to=base_sepolia:wbtc&from_amount=50000' \
-H 'garden-app-id: f242ea49332293424c96c562a6ef575a819908c878134dcb4fce424dc84ec796' \
-H 'accept: application/json'                
Response
{
    "status": "Ok",
    "result": [
        {
        "source": {
            "asset": "bitcoin_testnet:btc",
            "amount": "50000",
            "display": "0.00050000",
            "value": "58.8200"
        },
        "destination": {
            "asset": "base_sepolia:wbtc",
            "amount": "49850",
            "display": "0.00049850",
            "value": "58.6435"
        },
        "solver_id": "0x9dd9c2d208b07bf9a4ef9ca311f36d7185749635"
        }
    ]
}
2

Submit Order

Once a quote is received, we can submit the order:
curl --location 'http://testnet.api.garden.finance/v2/orders' \
    --header 'garden-app-id: f242ea49332293424c96c562a6ef575a819908c878134dcb4fce424dc84ec796' \
    --header 'Content-Type: application/json' \
    --data '{
        "source": {
            "asset": "bitcoin_testnet:btc",
            "owner": "tb1p4pr78swsn60y4ushe05v28mqpqppxxkfkxu2wun5jw6duc8unj3sjrh4gd"
            "amount": "50000"
        },
        "destination": {
            "asset": "base_sepolia:wbtc",
            "owner": "0x004Cc75ACF4132Fc08cB6a252E767804F303F729"
            "amount": "49850"
        }
    }'
Response
{
    "status": "Ok",
    "result": {
        "order_id": "f8a12d1320fce93c5888b6014abeb5f5de85ecc8c0eef8133f3da03822592121",
        "to": "tb1ptt49v22dcst7mquwfsmcu2t56xjg07whtcgufvhjuj5zu89y6q0qn8fvfp",
        "amount": "50000"
    }
}
Send 0.0005 BTC to tb1ptt49v22dcst7mquwfsmcu2t56xjg07whtcgufvhjuj5zu89y6q0qn8fvfp. You can use our faucet on testnet.
3

Check Order Status

Get the order by ID to check the status of the swap.
curl -X 'GET' \
'https://testnet.api.garden.finance/v2/orders/f8a12d1320fce93c5888b6014abeb5f5de85ecc8c0eef8133f3da03822592121' \
-H 'garden-app-id: f242ea49332293424c96c562a6ef575a819908c878134dcb4fce424dc84ec796' \
-H 'accept: application/json'                
Response
{
    "status": "Ok",
    "result": {
        "created_at": "2025-07-09T04:38:18.632122Z",
        "source_swap": {
            "created_at": "2025-07-09T04:38:18.632122Z",
            "swap_id": "tb1ptt49v22dcst7mquwfsmcu2t56xjg07whtcgufvhjuj5zu89y6q0qn8fvfp",
            "chain": "bitcoin_testnet",
            "asset": "bitcoin_testnet:btc",
            "initiator": "tb1p4pr78swsn60y4ushe05v28mqpqppxxkfkxu2wun5jw6duc8unj3sjrh4gd",
            "redeemer": "460f2e8ff81fc4e0a8e6ce7796704e3829e3e3eedb8db9390bdc51f4f04cf0a6",
            "delegate": "8f716d079bd4a6cb5c47a24cd22c352ffb50089e4461043cfe3b1f0f9082eec8",
            "timelock": 144,
            "filled_amount": "500000",
            "asset_price": 108468.0,
            "amount": "500000",
            "secret_hash": "3c4522983261f81e2e679346bbda5dddd8b4ea0367dd4073f73f13320d9dee62",
            "secret": "8cb8a02d5592b0b1556978e1d778b7eff2c23519b8aa65970fa6ac3daa33fb40",
            "instant_refund_tx": "020000000001013a18563d08a2b7d596488a96065466f52a82c221b981492b1f35b999401de1660000000000ffffffff0120a1070000000000225120a847e3c1d09e9e4af217cbe8c51f600802131ac9b1b8a7727493b4de60fc9ca3044107583b76a92f651f9bb3a34189cd1b81b7f98f99d1ebc71ba313e72c441a96270707d0fda5cacb0b1de2daacae318fa8c44b35881dc0ffd92764c8e1ce0a7bef834107583b76a92f651f9bb3a34189cd1b81b7f98f99d1ebc71ba313e72c441a96270707d0fda5cacb0b1de2daacae318fa8c44b35881dc0ffd92764c8e1ce0a7bef8346208f716d079bd4a6cb5c47a24cd22c352ffb50089e4461043cfe3b1f0f9082eec8ac20460f2e8ff81fc4e0a8e6ce7796704e3829e3e3eedb8db9390bdc51f4f04cf0a6ba529c61c02160e11a135f94e536a5b222e5d09fd9db1be5f5f5e753920290c0410cf388f09023174326647e3e2f5e7b7023a678341cd85556bfe7f539cdd369fd2ab1729114a7bc658045926f1b2c0e0e70292c66bda90ddbbee9e2ba771a4e0a57054bbc00000000",
            "initiate_tx_hash": "66e11d4099b9351f2b4981b921c2822af5665406968a4896d5b7a2083d56183a:90249",
            "redeem_tx_hash": "7820a77ecd05f4182a0a5595e8364e221bdb1a440507d53bf20c5f658ae3cd67",
            "refund_tx_hash": "",
            "initiate_block_number": "90249",
            "redeem_block_number": "90259",
            "refund_block_number": "0",
            "required_confirmations": 1,
            "current_confirmations": 1,
            "initiate_timestamp": null,
            "redeem_timestamp": null,
            "refund_timestamp": null
        },
        "destination_swap": {
            "created_at": "2025-07-09T04:38:18.632122Z",
            "swap_id": "3ab702b4db8f9b54f56d4ceeab7811ee02447785605a2c5b8df7dcc071efed91",
            "chain": "base_sepolia",
            "asset": "base_sepolia:wbtc",
            "initiator": "0x661bA32eb5f86CaB358DDbB7F264b10c5825e2dd",
            "redeemer": "0x004Cc75ACF4132Fc08cB6a252E767804F303F729",
            "timelock": 3600,
            "filled_amount": "498500",
            "asset_price": 108468.0,
            "amount": "498500",
            "secret_hash": "3c4522983261f81e2e679346bbda5dddd8b4ea0367dd4073f73f13320d9dee62",
            "secret": "8cb8a02d5592b0b1556978e1d778b7eff2c23519b8aa65970fa6ac3daa33fb40",
            "initiate_tx_hash": "0xfb354436bbd8bd57760d82bfb441442e796e60aa7f8cd9e0978aa94a73eab2b8",
            "redeem_tx_hash": "0x7b3d81b0caddadbb35a9cf717b5f23b2ceddfa7a1a5251b2dbee723247cffdd6",
            "refund_tx_hash": "",
            "initiate_block_number": "28133930",
            "redeem_block_number": "28133933",
            "refund_block_number": "0",
            "required_confirmations": 0,
            "current_confirmations": 0,
            "initiate_timestamp": "2025-07-09T04:42:28Z",
            "redeem_timestamp": "2025-07-09T04:42:34Z",
            "refund_timestamp": null
        },
        "nonce": "1751978328975",
        "order_id": "f8a12d1320fce93c5888b6014abeb5f5de85ecc8c0eef8133f3da03822592121",
        "affiliate_fees": [],
        "version": "v2"
    }
}
The swap is complete once the order.destination_swap.redeem_tx_hash field is populated.
Congratulations, you have successfully completed a cross-chain swap!