Which signing method should I use for my account type?
The signing method depends on your account type:- Role-Based Accounts: Use
signTypedData()
to sign EIP-712 structured data - Kernel 3.3 Accounts (EIP-7702): Use
signMessage()
to sign the UserOperation hash directly - Solana Accounts: Use wallet’s
signTransaction()
method on VersionedTransaction objects
Note: Using the wrong signing method will cause transaction failures. Kernel 3.3 accounts must sign UserOperation hash, not typed data.
Why is my Solana transaction signing failing?
Common Solana signing issues include:- Incorrect data format: OneBalance provides base64
dataToSign
that must be converted toMessageV0
- Wrong signature encoding: Solana signatures must be base58 encoded, not hex
- Wallet not connected: Verify wallet connection before attempting to sign
How do I handle EIP-7702 delegation signing?
EIP-7702 accounts require two signing steps:- Delegation Signature: Sign authorization tuple using
signAuthorization()
method - UserOperation Signature: Sign UserOperation hash using
signMessage()
method
- Always check
signedTuple.yParity
is not null before proceeding - Both
accountAddress
andsignerAddress
must be the same EOA address - Use account type
"kernel-v3.3-ecdsa"
withdeploymentType: "EIP7702"
- Role-based:
signTypedData(operation.typedDataToSign)
- Kernel 3.3 (EIP-7702):
signMessage({ message: { raw: userOpHash } })
Getting Help
Complete Signing Guide
Full implementation guide with code examples for all account types
EIP-7702 Guide
Step-by-step EIP-7702 integration with delegation signing
Solana Guide
Solana-specific signing patterns and troubleshooting
For additional support with signing issues:
- Intercom chat (bottom right corner) for instant help
- Email: support@onebalance.io
- Discord community for peer support and updates