Function Signature
Description
Signs an EVM transaction on behalf of a user who has granted delegation permission. This function requires delegation credentials (wallet ID, wallet API key, and key share) that are provided to your webhook endpoint when a user approves delegation. The function serializes the transaction, signs it using MPC, and returns a fully signed transaction ready for broadcast.Parameters
Required Parameters
client(DelegatedEvmWalletClient) - The delegated client instance created withcreateDelegatedEvmWalletClient()walletId(string) - The wallet ID from the delegation webhookwalletApiKey(string) - The wallet-specific API key from the delegation webhookkeyShare(ServerKeyShare) - The server key share from the delegation webhooktransaction(TransactionSerializable) - The transaction object to sign (must be a valid Viem transaction)
Returns
Promise<string> - A hex-encoded signed transaction ready for broadcast
Example
Basic Transaction Signing
Complete Flow with Broadcasting
EIP-1559 Transaction
Contract Interaction
Type Definitions
Common Use Cases
Automated Payments
Batch Transactions
Error Handling
The function throws an error if:- Any required parameter is missing or invalid
- The transaction object is malformed
- The delegation credentials are expired or revoked
- The MPC signing operation fails
- Transaction serialization fails
Security Considerations
- Transaction Validation: Always validate transaction parameters before signing
- Gas Limits: Set appropriate gas limits to prevent excessive gas consumption
- Amount Validation: Validate transaction amounts to prevent unauthorized transfers
- Recipient Validation: Verify recipient addresses are correct and trusted
- Nonce Management: Properly manage nonces to prevent transaction conflicts
- Audit Logging: Log all transaction signing operations
delegatedSignTypedData
Function Signature
Description
Signs EIP-712 typed data on behalf of a user who has granted delegation permission. This function requires delegation credentials (wallet ID, wallet API key, and key share) that are provided to your webhook endpoint when a user approves delegation. Use this for permit flows, order signing, and other structured data that requires typed-data signing.Parameters
Required Parameters
client(DelegatedEvmWalletClient) - The delegated client instance created withcreateDelegatedEvmWalletClient()walletId(string) - The wallet ID from the delegation webhookwalletApiKey(string) - The wallet-specific API key from the delegation webhookkeyShare(ServerKeyShare) - The server key share from the delegation webhooktypedData(TypedData) - The EIP-712 typed data to sign (viem’sTypedDatatype)
Returns
Promise<string> - A hex-encoded ECDSA signature
Example
Security Considerations
- Data Validation: Always validate typed data structure before signing
- Domain Verification: Verify the domain matches the expected contract
- Expiry Times: Set appropriate deadlines to prevent replay attacks
- Nonce Management: Properly track and increment nonces
- Contract Verification: Ensure verifyingContract addresses are correct
- Audit Logging: Log all typed data signing operations
Related Functions
createDelegatedEvmWalletClient()- Create the client for delegated operationsdelegatedSignMessage()- Sign messages instead of transactionsdelegatedSignTransaction()- Sign transactions with delegated accesssignTypedData()- Sign typed data with direct wallet access- Delegated Access Guide - Complete guide on using delegated access