Overview
Suiquencer is a visual DeFi flow builder for Sui. Drag nodes to create multi-step sequences, export flows to JSON, and execute them atomically from your wallet.
What you can build
- Swap → Lend loops
- Cross-chain bridges with LI.FI
- Conditional logic flows
- Custom Move contract calls
Execution model
Flow order is computed from the graph. Sui operations execute in one transaction and show a success modal with the explorer link.
How It Works
Add nodes from the toolbar (Wallet, Swap, Lend, Bridge, Logic, Selector, Custom).
Connect edges to define execution order and branches.
Run the flow. Approve the transaction in your wallet.
Flow JSON
Export flows as JSON to version control or share with your team. Use this schema to understand how nodes, edges, and settings are stored.
{
"name": "flow-name",
"nodes": [
{ "id": "wallet", "type": "wallet" },
{ "id": "swap", "type": "swap", "provider": "cetus", "from": "SUI", "to": "USDC" }
],
"edges": [
{ "from": "wallet", "to": "swap" }
],
"atomic": true,
"settings": {
"slippage": "1%",
"deadlineMinutes": 5
}
}Examples
Explore simple starter flows you can copy or download to import into the app. Use the screenshots as references, then build more complex sequences from these foundations.
Swap → Lend
Swap SUI to USDC and deposit into Scallop in a single run.
Swap → Lend
Swap SUI to USDC and deposit into Scallop in a single run.

{
"nodes": [
{
"id": "wallet-1",
"type": "wallet",
"position": { "x": 242.6674989231081, "y": 415.7145243377569 },
"data": { "label": "Your Wallet", "type": "wallet" },
"deletable": false,
"measured": { "width": 263, "height": 321 },
"selected": false,
"dragging": false
},
{
"id": "node-1",
"type": "swap",
"position": { "x": 639.9102692801583, "y": 150.181353577296 },
"data": {
"label": "Swap",
"type": "protocol",
"protocol": "swap",
"amount": "10",
"fromAsset": "USDC",
"toAsset": "SUI",
"estimatedAmountOut": "10.1277",
"estimatedAmountOutSymbol": "SUI"
},
"measured": { "width": 280, "height": 366 },
"selected": false,
"dragging": false
},
{
"id": "node-2",
"type": "swap",
"position": { "x": 640.0069709190633, "y": 581.8293617098878 },
"data": {
"label": "Swap",
"type": "protocol",
"protocol": "swap",
"amount": "10",
"fromAsset": "USDT",
"toAsset": "SUI",
"estimatedAmountOut": "10.1205",
"estimatedAmountOutSymbol": "SUI"
},
"measured": { "width": 280, "height": 402 },
"selected": false,
"dragging": false
},
{
"id": "node-3",
"type": "lend",
"position": { "x": 1044.5503434039217, "y": 317.190707032739 },
"data": {
"label": "Lend / Borrow",
"protocol": "lend",
"amount": "",
"lendAmount": "30"
},
"measured": { "width": 320, "height": 518 },
"selected": true,
"dragging": false
}
],
"edges": [
{
"id": "ewallet-1-node-1",
"source": "wallet-1",
"target": "node-1",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"id": "ewallet-1-node-2",
"source": "wallet-1",
"target": "node-2",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"id": "enode-2-node-3",
"source": "node-2",
"target": "node-3",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"type": "smoothstep",
"animated": false,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" },
"source": "node-1",
"target": "node-3",
"id": "xy-edge__node-1-node-3"
}
],
"name": "Suiquence_04-DUAL-Swap-Stake"
}Bridge → DeFi
Bridge to Base using LI.FI and route into a destination protocol.
Bridge → DeFi
Bridge to Base using LI.FI and route into a destination protocol.

{
"nodes": [
{
"id": "wallet-1",
"type": "wallet",
"position": { "x": 400.43313608526086, "y": 15.32705302849638 },
"data": { "label": "Your Wallet", "type": "wallet" },
"deletable": false,
"measured": { "width": 262, "height": 320 },
"selected": false,
"dragging": false
},
{
"id": "node-1",
"type": "bridge",
"position": { "x": 779.3259962384799, "y": -20.53994578239613 },
"data": {
"label": "Bridge",
"type": "protocol",
"bridgeChain": "ethereum",
"bridgeAsset": "SUI",
"bridgeOutputAsset": "USDC",
"bridgeAmount": "5",
"bridgeProtocol": "aave",
"ethereumAddress": "vitally.eth",
"lifiRoute": {
"id": "264d2390-1d78-4b4f-9438-2363688e999c",
"fromChainId": 9270000000000000,
"fromAmountUSD": "4.9722",
"fromAmount": "5000000000",
"fromToken": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"fromAddress": "0xa2f298f4f41b575006404c215287f3b1cbbe98e393b2475e1b855da83d886a7a",
"toChainId": 1,
"toAmountUSD": "3.9419",
"toAmount": "3942542",
"toAmountMin": "3922829",
"toToken": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"chainId": 1,
"symbol": "USDC",
"decimals": 6,
"name": "USD Coin",
"coinKey": "USDC",
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
"priceUSD": "0.99983",
"tags": [
"stablecoin"
]
},
"toAddress": "0x641AD78BAca220C5BD28b51Ce8e0F495e85Fe689",
"gasCostUSD": "0.2288",
"containsSwitchChain": false,
"steps": [
{
"type": "lifi",
"id": "264d2390-1d78-4b4f-9438-2363688e999c:0",
"tool": "mayanMCTP",
"toolDetails": {
"key": "mayanMCTP",
"name": "CCTP + Mayan",
"logoURI": "https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/bridges/mayan.svg"
},
"action": {
"fromToken": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"fromAmount": "5000000000",
"toToken": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"chainId": 1,
"symbol": "USDC",
"decimals": 6,
"name": "USD Coin",
"coinKey": "USDC",
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
"priceUSD": "0.99983",
"tags": [
"stablecoin"
]
},
"fromChainId": 9270000000000000,
"toChainId": 1,
"fromAddress": "0xa2f298f4f41b575006404c215287f3b1cbbe98e393b2475e1b855da83d886a7a",
"toAddress": "0x641AD78BAca220C5BD28b51Ce8e0F495e85Fe689"
},
"estimate": {
"tool": "mayanMCTP",
"approvalAddress": "0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE",
"toAmountMin": "3922829",
"toAmount": "3942542",
"fromAmount": "5000000000",
"feeCosts": [
{
"name": "LIFI Fixed Fee",
"description": "Fixed LIFI fee, independent of any other fee",
"token": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"amount": "12500000",
"amountUSD": "0.0124",
"percentage": "0.0025",
"included": true,
"feeSplit": {
"integratorFee": "0",
"lifiFee": "12500000"
}
}
],
"gasCosts": [
{
"type": "SEND",
"price": "535",
"estimate": "430000",
"limit": "430000",
"amount": "230050000",
"amountUSD": "0.2288",
"token": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
}
}
],
"executionDuration": 60,
"fromAmountUSD": "4.9722",
"toAmountUSD": "3.9419",
"skipPermit": false
},
"includedSteps": [
{
"id": "2a1bbe12-9f94-4c87-9442-3731bccfaeb4",
"type": "protocol",
"action": {
"fromChainId": 9270000000000000,
"fromAmount": "5000000000",
"fromToken": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"toChainId": 9270000000000000,
"toToken": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"fromAddress": "0xa2f298f4f41b575006404c215287f3b1cbbe98e393b2475e1b855da83d886a7a",
"toAddress": "0xa2f298f4f41b575006404c215287f3b1cbbe98e393b2475e1b855da83d886a7a",
"jitoBundle": false
},
"estimate": {
"fromAmount": "5000000000",
"toAmount": "4987500000",
"toAmountMin": "4987500000",
"tool": "feeCollection",
"approvalAddress": "0x0000000000000000000000000000000000000000",
"gasCosts": [
{
"type": "SEND",
"price": "535",
"estimate": "130000",
"limit": "169000",
"amount": "69550000",
"amountUSD": "0.0692",
"token": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
}
}
],
"feeCosts": [
{
"name": "LIFI Fixed Fee",
"description": "Fixed LIFI fee, independent of any other fee",
"token": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"amount": "12500000",
"amountUSD": "0.0124",
"percentage": "0.0025",
"included": true,
"feeSplit": {
"integratorFee": "0",
"lifiFee": "12500000"
}
}
],
"executionDuration": 0
},
"tool": "feeCollection",
"toolDetails": {
"key": "feeCollection",
"name": "Integrator Fee",
"logoURI": "https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/protocols/feeCollection.svg"
}
},
{
"id": "f1cee2ba-9ccf-4561-bd2e-234c45d80dc5",
"type": "cross",
"action": {
"fromChainId": 9270000000000000,
"fromAmount": "4987500000",
"fromToken": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
},
"toChainId": 1,
"toToken": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"chainId": 1,
"symbol": "USDC",
"decimals": 6,
"name": "USD Coin",
"coinKey": "USDC",
"logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
"priceUSD": "0.99983",
"tags": [
"stablecoin"
]
},
"fromAddress": "0xa2f298f4f41b575006404c215287f3b1cbbe98e393b2475e1b855da83d886a7a",
"toAddress": "0x641AD78BAca220C5BD28b51Ce8e0F495e85Fe689",
"jitoBundle": false,
"destinationGasConsumption": "0"
},
"estimate": {
"tool": "mayanMCTP",
"fromAmount": "4987500000",
"toAmount": "3942542",
"toAmountMin": "3922829",
"gasCosts": [
{
"type": "SEND",
"price": "535",
"estimate": "300000",
"limit": "390000",
"amount": "160500000",
"amountUSD": "0.1596",
"token": {
"address": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
"chainId": 9270000000000000,
"symbol": "SUI",
"decimals": 9,
"name": "SUI",
"coinKey": "SUI",
"logoURI": "https://s2.coinmarketcap.com/static/img/coins/64x64/20947.png",
"priceUSD": "0.994438",
"tags": []
}
}
],
"executionDuration": 60,
"approvalAddress": "0x641AD78BAca220C5BD28b51Ce8e0F495e85Fe689",
"feeCosts": []
},
"tool": "mayanMCTP",
"toolDetails": {
"key": "mayanMCTP",
"name": "CCTP + Mayan",
"logoURI": "https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/bridges/mayan.svg"
}
}
],
"integrator": "Suiquencer",
"executionType": "transaction"
}
],
"tags": [
"RECOMMENDED",
"CHEAPEST",
"FASTEST"
]
}
},
"measured": { "width": 290, "height": 715 },
"selected": true,
"dragging": false
}
],
"edges": [
{
"id": "ewallet-1-node-1",
"source": "wallet-1",
"target": "node-1",
"type": "default",
"animated": false,
"style": { "strokeWidth": 2, "stroke": "#a855f7" }
}
],
"name": "Suiquence_04"
}Logic → Conditional Transfer
Run a contract check, then send different transfers based on the result.
Logic → Conditional Transfer
Run a contract check, then send different transfers based on the result.

{
"nodes": [
{
"id": "wallet-1",
"type": "wallet",
"position": { "x": 37.41658795234795, "y": 431.2260293843773 },
"data": { "label": "Your Wallet", "type": "wallet" },
"deletable": false,
"measured": { "width": 263, "height": 281 },
"selected": false,
"dragging": false
},
{
"id": "node-2",
"type": "transfer",
"position": { "x": 951.3281289054928, "y": 522.2687825539251 },
"data": {
"label": "Transfer",
"type": "protocol",
"protocol": "transfer",
"asset": "SUI",
"amount": "2",
"recipientAddress": "@kartik",
"amountManuallyEdited": true
},
"measured": { "width": 280, "height": 307 },
"selected": false,
"dragging": false
},
{
"id": "node-3",
"type": "logic",
"position": { "x": 519.4712375934386, "y": 187.7285488430467 },
"data": {
"label": "Logic",
"type": "protocol",
"protocol": "logic",
"amount": "",
"logicType": "contract",
"contractPackageId": "0x0000000000000000000000000000000000000000000000000000000000000002",
"contractModule": "clock",
"contractFunction": "timestamp_ms",
"contractArguments": "["0x6"]",
"contractComparisonOperator": "lt",
"contractCompareValue": "100"
},
"measured": { "width": 337, "height": 648 },
"selected": false,
"dragging": false
},
{
"id": "node-4",
"type": "transfer",
"position": { "x": 518.2933292354841, "y": 854.7129935457214 },
"data": {
"label": "Transfer",
"type": "protocol",
"protocol": "transfer",
"asset": "SUI",
"amount": "1",
"recipientAddress": "@satoshi",
"amountManuallyEdited": true
},
"measured": { "width": 280, "height": 307 },
"selected": true,
"dragging": false
}
],
"edges": [
{
"id": "ewallet-1-node-3",
"source": "wallet-1",
"target": "node-3",
"type": "smoothstep",
"animated": false,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"id": "enode-3-node-2",
"source": "node-3",
"target": "node-2",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"type": "smoothstep",
"animated": false,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" },
"source": "wallet-1",
"target": "node-4",
"id": "xy-edge__wallet-1-node-4"
}
],
"name": "suiquencer-lend-and-stake"
}Custom Move Call → Lend
Call a custom Move module, then lend the output in a follow-up step.
Custom Move Call → Lend
Call a custom Move module, then lend the output in a follow-up step.

{
"nodes": [
{
"id": "wallet-1",
"type": "wallet",
"position": { "x": 262.74311633884435, "y": -63.90907969390551 },
"data": { "label": "Your Wallet", "type": "wallet" },
"deletable": false,
"measured": { "width": 263, "height": 281 },
"selected": false,
"dragging": false
},
{
"id": "node-1",
"type": "custom",
"position": { "x": 588.6860933607793, "y": -64.14299284263576 },
"data": {
"label": "Custom",
"type": "protocol",
"protocol": "custom",
"amount": "",
"customPackageId": "0xd384ded6b9e7f4d2c4c9007b0291ef88fbfed8e709bce83d2da69de2d79d013d",
"customModule": "mint",
"customFunction": "mint_entry",
"customArguments": "["0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7","0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9","1000000000","0x0000000000000000000000000000000000000000000000000000000000000006"]",
"customTypeArguments": "["0x2::sui::SUI"]"
},
"measured": { "width": 400, "height": 778 },
"selected": false,
"dragging": false
},
{
"id": "node-2",
"type": "lend",
"position": { "x": 1060.5707538707284, "y": 184.53392428039507 },
"data": {
"label": "Lend / Borrow",
"type": "protocol",
"protocol": "lend",
"amount": "",
"lendAmount": "1"
},
"measured": { "width": 320, "height": 518 },
"selected": true,
"dragging": false
}
],
"edges": [
{
"id": "ewallet-1-node-1",
"source": "wallet-1",
"target": "node-1",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"type": "smoothstep",
"animated": false,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" },
"source": "node-1",
"target": "node-2",
"id": "xy-edge__node-1-node-2"
}
],
"name": "Suiquencer-custom"
}Swap → Multi Transfer
Swap into USDC and split the output into multiple transfers.
Swap → Multi Transfer
Swap into USDC and split the output into multiple transfers.

{
"nodes": [
{
"id": "wallet-1",
"type": "wallet",
"position": { "x": 253.65076878422735, "y": 99.10155691860439 },
"data": { "label": "Your Wallet", "type": "wallet" },
"deletable": false,
"measured": { "width": 262, "height": 320 },
"selected": false,
"dragging": false
},
{
"id": "node-1",
"type": "swap",
"position": { "x": 569.5769267981058, "y": 82.06463592554363 },
"data": {
"label": "Swap",
"type": "protocol",
"protocol": "swap",
"amount": "10",
"fromAsset": "USDC",
"toAsset": "SUI",
"estimatedAmountOut": "10.2300",
"estimatedAmountOutSymbol": "SUI"
},
"measured": { "width": 280, "height": 402 },
"selected": false,
"dragging": false
},
{
"id": "node-2",
"type": "transfer",
"position": { "x": 1226.2415046732003, "y": 130.74155304857445 },
"data": {
"label": "Transfer",
"type": "protocol",
"protocol": "transfer",
"asset": "SUI",
"amount": "3.410000",
"recipientAddress": "@satoshi",
"amountManuallyEdited": false
},
"measured": { "width": 280, "height": 307 },
"selected": true,
"dragging": false
},
{
"id": "node-3",
"type": "transfer",
"position": { "x": 914.7092350858031, "y": 329.5246301204987 },
"data": {
"label": "Transfer",
"type": "protocol",
"protocol": "transfer",
"asset": "SUI",
"amount": "3.410000",
"recipientAddress": "kartik.sui",
"amountManuallyEdited": false
},
"measured": { "width": 280, "height": 307 },
"selected": false,
"dragging": false
},
{
"id": "node-4",
"type": "transfer",
"position": { "x": 920.7938497261817, "y": -70.26625805484679 },
"data": {
"label": "Transfer",
"type": "protocol",
"protocol": "transfer",
"asset": "SUI",
"amount": "3.410000",
"recipientAddress": "@surflux",
"amountManuallyEdited": false
},
"measured": { "width": 280, "height": 307 },
"selected": false,
"dragging": false
}
],
"edges": [
{
"id": "ewallet-1-node-1",
"source": "wallet-1",
"target": "node-1",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"id": "enode-1-node-2",
"source": "node-1",
"target": "node-2",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"id": "enode-1-node-3",
"source": "node-1",
"target": "node-3",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
},
{
"id": "enode-1-node-4",
"source": "node-1",
"target": "node-4",
"type": "smoothstep",
"animated": true,
"style": { "strokeWidth": 2, "stroke": "#3b82f6" }
}
],
"name": "Suiquence_04"
}Pro Mode
Unlock logic gates, custom Move calls, and unlimited nodes. Pro mode is designed for advanced strategies and longer flows.
Logic + condition gates
Custom Move module calls
Unlimited nodes per flow
Tech Stack
Components
Canvas
Node-based editor with zoom, pan, and edge styles.
Wallet Node
Shows address, balance, and execution entry point.
Swap Node
Cetus/Turbos routing with live quotes.
Lend Node
Scallop deposit flows with rate previews.
Bridge Node
LI.FI routes cross-chain transfers.
Logic + Selector
Condition gates and branching execution.
Stake Node
Stake SUI and receive afSUI for DeFi use.
Custom Node
Call any Move module with type args.