1inch Fusion+ cross-chain swaps to support 3 additional chains: Monad, Sui, and Stellar
What if 1inch Fusion+ could swap to ANY blockchain?
United extends 1inch's industry-leading cross-chain infrastructure to support 3 cutting-edge blockchain ecosystems: Monad, Sui, and Stellar - unlocking $billions in cross-chain liquidity.
United = 1inch Integration + HTLC Security + Universal Chain Support
โ
Real atomic swaps with cryptographic guarantees
โ
Native 1inch LOP integration for seamless UX
โ
Production-ready HTLC contracts on all chains
โ
Bidirectional swaps between any supported chains
World's First 1inch-compatible HTLC implementation across:
๐ต Base/Ethereum โ ๐ค 1inch LOP + HTLC โ โก๐โญ Target Chain
Result: โจ Trustless, atomic, guaranteed swaps โจ
โ
Base โ Monad: 4 transactions, full atomic guarantees
โ
Base โ Sui: 4 transactions, Move smart contracts
โ
Base โ Stellar: 3 transactions, Soroban integration
Real transactions on real testnets! ๐ฅ
๐ฑ React Frontend
โ
๐ 1inch LOP Integration
โ
๐ก๏ธ HTLC Security Layer
โ
โก Monad (EVM) ๐ Sui (Move) โญ Stellar (Soroban)
โ
Hashlock Protection: Secret-based fund release
โ
Timelock Protection: Automatic refunds prevent fund loss
โ
Reentrancy Guards: Production-grade security patterns
โ
Access Control: Only authorized parties can claim
United becomes the universal bridge for 1inch - enabling swaps between ANY blockchain pair through a unified, secure, atomic protocol.
โ
Live transactions vs conceptual demos
โ
Native 1inch LOP vs generic bridge protocols
โ
Atomic guarantees vs trusted third parties
โ
Multi-VM support vs single-chain solutions
Experience the future of decentralized cross-chain trading today!
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Frontend โ โ Backend โ โ Blockchain โ
โ (React) โ โ (Next.js) โ โ Contracts โ
โโโโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโค
โ โข Swap UI โโโโโบโ โข API Routes โโโโโบโ โข HTLC Escrows โ
โ โข Demo Page โ โ โข Chain Adaptersโ โ โข 1inch LOP โ
โ โข Tx Tracking โ โ โข Secret Mgmt โ โ โข Move Contractsโ
โ โข Status Displayโ โ โข Orchestration โ โ โข Soroban Code โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
// 1inch Limit Order Protocol Integration
contract LimitOrderProtocol {
function fillOrder(
Order calldata order,
bytes calldata signature,
uint256 amount
) external;
}
// HTLC Contract for Atomic Security
contract HTLCEscrow {
function createHTLCEscrowMON(
bytes32 secretHash,
uint256 timelock,
address receiver,
string memory orderId
) external payable returns (bytes32 escrowId);
function withdraw(
bytes32 escrowId,
string memory secret
) external;
}
Contract Address: 0xF7BDB4eCb444f88b290Bb28574b5b702550AB179
contract HTLCEscrow {
struct Escrow {
address payable sender;
address payable receiver;
uint256 amount;
bytes32 secretHash; // keccak256(abi.encodePacked(secret))
uint256 timelock;
bool withdrawn;
bool cancelled;
string orderId;
}
function createHTLCEscrowMON(
bytes32 secretHash,
uint256 timelock,
address receiver,
string memory orderId
) external payable returns (bytes32);
function withdraw(
bytes32 escrowId,
string memory secret // Plain string, hashed inside contract
) external;
function verifySecret(
bytes32 escrowId,
string memory secret
) external view returns (bool);
}
Contract Address: 0x0A027767aC1e4aA5474A1B98C3eF730C3994E67b
module htlc_escrow::escrow {
struct HTLCEscrow<phantom T> has key, store {
id: UID,
sender: address,
receiver: address,
coin: Coin<T>,
secret_hash: vector<u8>, // Raw bytes hash
timelock: u64,
withdrawn: bool,
cancelled: bool,
}
public fun create_escrow<T>(
coin: Coin<T>,
secret_hash: vector<u8>, // Expects raw byte hash
timelock: u64,
receiver: address,
ctx: &mut TxContext
): HTLCEscrow<T>;
public fun withdraw<T>(
escrow: &mut HTLCEscrow<T>,
secret: vector<u8>, // Raw bytes, hashed inside function
clock_obj: &Clock,
ctx: &mut TxContext
): Coin<T>;
}
Package ID: 0x04cf15bd22b901053411485b652914f92a2cb1c337e10e5a45a839e1c7ac3f8e
Different blockchain VMs handle secret hashing differently:
// โ WRONG: One-size-fits-all approach
const secretHash = ethers.keccak256('0x' + secret); // Only works for Sui
// โ
CORRECT: Chain-specific hashing
if (srcChain === 'sui' || dstChain === 'sui') {
// Sui Move: hash::keccak256(&secret) expects raw bytes
secretHash = ethers.keccak256('0x' + secret);
} else {
// EVM: keccak256(abi.encodePacked(secret)) expects string
secretHash = ethers.keccak256(ethers.toUtf8Bytes(secret));
}
hash::keccak256(&vector<u8>) โ Hash raw byteskeccak256(abi.encodePacked(string)) โ Hash UTF-8 stringWe SUCCESSFULLY extended the 1inch Fusion+ Swap to MONAD and SUI. STELLAR is partially working. See proof text files for full end-to-end working transactions on testnet (4 transactions per swap) for MONAD and SUI. MONAD supports partial fills! :)
Account1 escrow: Account1 locks funds on source chain with secret hash
Account2 escrow: Account2 locks funds on destination chain with same secret hash
Account1 claim: Account1 reveals secret to claim Account2 funds on destination chain
Account2 claim: Account2 uses revealed secret to claim Account1 funds on source chain
Contracts HTLC for Monad, Sui, Stellar: https://github.com/chinesepowered/unite/tree/main/contracts
Proof of Eth -> Monad swap (4/4 transactions fully working!): https://github.com/chinesepowered/unite/blob/main/proof/proof-base-monad.txt
Proof of Monad -> Eth swap (4/4 transactions fully working!): https://github.com/chinesepowered/unite/blob/main/proof/proof-monad-base.txt
Proof of Eth -> Sui swap (4/4 transactions fully working!): https://github.com/chinesepowered/unite/blob/main/proof/proof-base-sui.txt
Proof of Sui -> Eth swap (4/4 transactions fully working!): https://github.com/chinesepowered/unite/blob/main/proof/proof-sui-base.txt
Proof of Eth -> Stellar swap (3/4 transactions worked, being honest): https://github.com/chinesepowered/unite/blob/main/proof/proof-base-stellar.txt
Proof of Stellar -> Eth swap (3/4 transactions worked, being honest): https://github.com/chinesepowered/unite/blob/main/proof/proof-stellar-base.txt
Using the deployed Base Sepolia 1inch LOP contract for eth side (as advised by tanner from 1inch on the 1inch discord)

