Fireblocks Typed Messages Signing
Prerequisites
- Introduction
- Quickstart Guide
- API/SDK Overview
- Transaction Authorization Policy For Typed Message Signing
Supported Assets and Methods
Typed message signing in Fireblocks is supported for several assets and can be implemented through various methods:
Supported Assets:
Creation Methods for Typed Message Signing Requests:
- By decentralized applications (dApps) using the Fireblocks Browser Extension or Wallet Connect integration
- Through the Fireblocks API, using the Create Transaction API call
Browser Extension or Wallet Connect:
Typed Message Signing requests are created by Decentralized Applications (dApps) when connected via Fireblocks Browser Extension or Wallet Connect integration, for various purposes such as (but not limited to):
- Session Authentication: Similar to traditional web applications, dApps can use message signing to manage sessions. Once a user signs a message to prove ownership of an address, the dApp can create a session for the user without requiring them to sign in through traditional methods like username and password
- Proving Ownership: dApps often need to verify that a user controls a specific blockchain address. Typed message signing enables users to prove ownership without having to conduct a transaction, which can save on transaction fees
- Meta-transactions: Users can sign transactions that are paid for and submitted by another party (like a dApp). This can be used to improve user experience by allowing users to interact with the blockchain without needing to spend Ether for gas
Fireblocks API:
Typed Message Signing requests can also be initiated through the API by using the Create Transaction API. These requests are typically generated for scenarios such as (but not limited to):
- Proof of Ownership: Users can sign messages to demonstrate ownership of a particular blockchain address or asset without making any on-chain transaction, crucial for identity verification processes
- Compliance with Regulations: In scenarios like the Travel Rule and TRUST Platform in the cryptocurrency space, businesses must share certain transaction details with each other and regulatory bodies. Typed message signing ensures that this information is exchanged securely and verifiably
- Proof of Reserves: Financial institutions can use typed message signing to prove possession of sufficient funds or assets in a transparent manner, enhancing trust among users or regulators
Structuring the API Call:
Typed message signing in Fireblocks is performed through the Fireblocks API - Create Transaction Endpoint. The following parameters are required for any Typed Message Signing API request:
{
operation: "TYPED_MESSAGE",
assetId: "ETH"/"BTC"/"TRX",
source: {
type: "VAULT_ACCOUNT",
id: "<vaultAccountId>"
},
extraParameters: {
rawMessageData: {
messages: [{
content: "my_message",
type: "EIP191"/"EIP712"/"TIP191"/"BTC_MESSAGE"
}]
}
}
}
assetId
- The network to use (possible values areETH
,BTC
andTRX
operation
- Transaction operation type (TYPED_MESSAGE
)source
- The vault account from which the Typed Message Signing is to be executedextraParameters
- An additional parameters object that includes therawMessageData
object, which contains the messages array. Each message in this array specifies itscontent
and thetype
of message signing. The possible types are:EIP191
,EIP712
,TIP191
andBTC_MESSAGE
Fireblocks users are not required to prefix the message before submitting it to the API. The only requirement is that for any message type other than EIP712, the message to be signed must be submitted in hexadecimal format.
For more detailed examples on how to structure your API calls correctly for the relevant supported asset, please refer to the guides per asset provided in this section.
Updated 6 months ago