Handle multi-input limitations and edge cases
Issue | Cause | Solution |
---|---|---|
”Y parity is required” | Wallet doesn’t return yParity in signature | Use viem or compatible wallet library |
”Invalid signature” | Using signTypedData() instead of signMessage() | Use UserOperation hash signing for Kernel accounts |
”UserOperation hash mismatch” | Incorrect BigInt conversion or EntryPoint version | Ensure all numeric fields are BigInt and use EntryPoint 0.7 |
Issue | Cause | Solution |
---|---|---|
”Missing origin chain signatures” | Forgot to sign origin chain operations | Sign all operations in quote.originChainsOperations[] |
”Transaction failed on origin chain” | Origin chain delegation or UserOp signature missing | Check that both delegation and UserOp are signed for each origin chain |
Issue | Cause | Solution |
---|---|---|
”Nonce too low” | Outdated delegation nonce | OneBalance handles this automatically; retry the request |
”Already delegated” | EOA already delegated to this contract | Normal - no delegation object will be returned |
”Contract not found” | Using wrong Kernel v3.3 address | Use the contract address returned by OneBalance |
Issue | Cause | Solution |
---|---|---|
”Account type not supported” | Wrong account type configuration | Must use type: "kernel-v3.3-ecdsa" and deploymentType: "EIP7702" |
”Address mismatch” | Different signer and account addresses | Both signerAddress and accountAddress must be the same EOA address |
signMessage()
) instead of typed data signing (signTypedData()
).Your Assets | Destination | Result |
---|---|---|
USDC on Optimism | Arbitrum | ✅ Single transaction |
USDC on Optimism + Arbitrum | Arbitrum | ✅ Single transaction |
USDC on Optimism + Base | Arbitrum | ⚠️ Needs workaround |
USDC on 3+ different chains | Any destination | ⚠️ Needs workaround |
Manually Delegate on Required Chains
Use Standard OneBalance Flow
Handle Interruptions
signAuthorization
method, such as viem.