Signature
Signature resource provides operations for signing and verifying messages and typed data.
Overview
Digital signatures are used to prove ownership of an address and authenticate messages without revealing the private key.
Operations
Sign Message
Sign a personal message with your wallet.
Required Credentials: Ethereum RPC, Ethereum Account
Parameters:
- Message (required): The message to sign
Use Cases:
- Authenticate users
- Prove ownership of address
- Sign off-chain messages
Example:
{
"message": "I agree to the terms and conditions"
}
Output:
{
"signature": "0x1234567890abcdef..."
}
Sign Typed Data
Sign structured data according to EIP-712.
Required Credentials: Ethereum RPC, Ethereum Account
Parameters:
- Domain (required): EIP-712 domain separator
- Types (required): Type definitions
- Value (required): The data to sign
Use Cases:
- Sign permit transactions (gasless approvals)
- Sign structured messages for dApps
- Create verifiable signatures for complex data
Verify Message
Verify a personal message signature.
Required Credentials: Ethereum RPC
Parameters:
- Message (required): The original message
- Signature (required): The signature to verify
- Address (required): Expected signer address
Example Output:
{
"valid": true,
"recoveredAddress": "0x..."
}
Verify Typed Data
Verify an EIP-712 signature.
Required Credentials: Ethereum RPC
Parameters:
- Domain (required): EIP-712 domain separator
- Types (required): Type definitions
- Value (required): The original data
- Signature (required): The signature to verify
- Address (required): Expected signer address
Recover Address
Recover the signer address from a signature.
Required Credentials: Ethereum RPC
Parameters:
- Message (required): The original message
- Signature (required): The signature
Example Output:
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
}
Hash Message
Calculate the keccak256 hash of a message.
Required Credentials: Ethereum RPC
Parameters:
- Message (required): The message to hash
Example Output:
{
"hash": "0x1234567890abcdef..."
}
Hash Typed Data
Hash typed data for signing (EIP-712).
Required Credentials: Ethereum RPC
Parameters:
- Domain (required): EIP-712 domain separator
- Types (required): Type definitions
- Value (required): The data to hash
Common Use Cases
User Authentication
[Trigger] → [Sign Message] → [Verify Message] → [Authenticate User]
Gasless Approvals (EIP-2612)
[Trigger] → [Sign Typed Data: Permit] → [Submit to Contract] → [Token Approved]
Verify Ownership
[User Input] → [Recover Address] → [Check Ownership] → [Grant Access]
EIP-712 Domain Example
{
"name": "MyDApp",
"version": "1",
"chainId": 1,
"verifyingContract": "0x..."
}
Tips
- Personal Sign: Use Sign Message for simple text authentication
- EIP-712: Use for structured data that needs to be human-readable
- Security: Never sign messages you don't understand
- Verification: Always verify signatures before trusting them
- Recovery: Recover Address can identify who signed a message
- Chain ID: Include chain ID in EIP-712 to prevent replay attacks