static BigInt hexToBigInt(String hex) { if (!hex.startsWith('0x')) { throw WalletException('Hex string must start with 0x'); } return BigInt.parse(hex.substring(2), radix: 16); }