Accept payments in any token on any chain while merchants receive funds on their preferred token and chain—from one user signature (EIP-712). A relayer fans out the transaction to the required chains, escrows funds per chain, then settles to the merchant’s target asset/network.
- Interactive “Pay Mix” slider: Buyer can split a single checkout across multiple assets/chains (e.g., ETH, USDC, PYUSD on Sepolia/Arbitrum, FLOW EVM, Hedera).
- Live pricing with Pyth: Real-time quotes show USD value contributed by each asset as the slider moves.
- One-signature checkout (EIP-712): User signs once; the relayer fans out to all required chains.
- Smart routing: Same-chain settlement first, only then external swap/bridge (e.g., LayerZero OFT).
- Cross-chain via LayerZero: Demonstrated route (e.g., USDC Sepolia → USDC Hedera).
- PYUSD rails: PYUSD on Sepolia & Arbitrum (pay on either, merchant can receive on either).
Scenario: The product costs $100. The buyer wants to pay using a mix of assets across chains.
-
Buyer adjusts sliders to choose how much to contribute from each asset and chain (values update in real time using Pyth USD prices).
- The buyer can mix different networks and tokens (e.g., ETH on Ethereum Sepolia, PYUSD on Arbitrum Sepolia, USDC on Hedera Testnet, etc.).
-
The UI shows the running Total = $100 and a per-asset breakdown. Example mix for a $100 checkout:
- $45 in USDC on Ethereum Sepolia
- $35 in PYUSD on Arbitrum Sepolia
- $15 in ETH on Ethereum Sepolia
- $5 in USDC on Hedera Testnet
- Buyer clicks Pay → signs one EIP-712 typed data message (the intent).
- The relayer verifies the intent and fans out transactions to the relevant chains.
- Funds escrow per chain, then settlement routes so the merchant receives their chosen token/chain.
- If a cross-chain move is needed (and internal paths aren’t available), the router uses LayerZero OFT.
- Frontend: Next.js, shadcn/ui, Aceternity UI components, lucide-react, RainbowKit
- Contracts/Tooling: Solidity, Hardhat, ethers.js
- Oracles: Pyth
- Interoperability: LayerZero (OFT)
- Networks: Ethereum Sepolia, Arbitrum Sepolia, Flow EVM Testnet, Hedera Testnet
- Languages: JavaScript/TypeScript, Solidity, HTML/CSS
- Client (Next.js): Renders a summary and requests a single EIP-712 signature.
- Relayer (API routes): Verifies the signed intent and fans out to the relevant chains.
- Escrow (Solidity): Each leg deposits into a chain-local escrow contract.
- Settlement: Merchant receives their chosen token/chain. Routing order:
- Internal order-book/RFQ (match against maker quotes/inventory)
- Internal AMM (Uniswap v4-style pool/hooks)
- External DEX/bridge only if needed (e.g., LayerZero OFT for cross-chain moves)
- Pricing: Pyth feeds used to quote totals and perform basic price checks.
- Node.js ≥ 18
- npm or yarn
- Testnet wallets funded with test ETH/HBAR/etc.
- RPC endpoints for all target testnets
git clone https://github.com/derek2403/ethindia
cd ethindia
npm install
npm run devPYUSD (PayPal) Track
- PYUSD payment on Sepolia:
https://sepolia.etherscan.io/tx/0xe4f35a5b6f34554746592e47c31a7c11cb8ee2596b8ec59f23c40c880f527483
Flow EVM Testnet
- Flow EVM testnet transaction:
https://evm-testnet.flowscan.io/tx/0x3500b8aea018767113412e14d6c5e595007815f7973bc42fd29ff13f57557dfc
Hedera + LayerZero (USDC Sepolia → USDC Hedera)
- Source tx on Ethereum Sepolia:
https://sepolia.etherscan.io/tx/0x83b09078fbde14f23582d8731e5aa0ce0865bf7935bff7320cd657583468745b - LayerZero message tracking:
https://testnet.layerzeroscan.com/tx/0x83b09078fbde14f23582d8731e5aa0ce0865bf7935bff7320cd657583468745b - Destination tx on Hedera Testnet:
https://hashscan.io/testnet/tx/0x1f3e209aee7f5ad84bd2282e94444b36e254f967b4e467acccdd285968f9c626 - Verified Smart Contract: https://hashscan.io/testnet/contract/0x0772b7b4dce613e75fde92e2bbfe351ae06ffc6b