Signing a transaction with user's key
Only available on EVM compatible chains.
Prerequisites
- Create an account and generate your application's API keys
Create an account on Quant Connect. Then, register your application to generate API keys to authorise your requests on Overledger APIs.
This is the V4 version of the Transaction Signing endpoint. It supports two use cases:
- Using Quant’s Authorise (Testnet only, one key per application)
- Using Your Own Authorise purchased via AWS (Testnet and Mainnet, unlimited keys)
How to Sign Transactions with Overledger
1. Using Quant’s Authorise (Testnet Only)
- When registering your application, ensure you select the
enable testnet signing
checkbox. - Use the transaction signing endpoint to sign your transaction.
- Provide the following information in the signing request payload:
KeyId
: The address corresponding to your private key. This ID is generated when you register your application.- The transaction payload from the preparation step (
ProposalId
,NetworkFee
,nativeData
,...)
- Include the
AuthoriseId CTA TSR
in the request path
We fund your wallet with test tokens when you register your application and apply testnet signing
0.01 ETH for Sepolia testnet network
0.01 MATIC for Polygon Mumbai testnet network
2. Using Your Own Authorise (Testnet & Mainnet)
- Obtain a user token from your Authorise user pool using your client ID and secret.
- Encrypt the user token using your Authorise encryption key, following the provided encryption instructions.
- Use the transaction signing endpoint to sign your transaction.
- Provide the following information in the signing request payload:
KeyId
: The address corresponding to your private key, generated via the Create Key or Create User endpoints.- The transaction payload from the preparation step (
ProposaltId
,NetworkFee
,nativeData
,...)
- Include your
AuthoriseId
in the request path.
Encryption is needed to this endpoint using your own Authorise key. Please follow the steps below:
Encryption Process using AES and RSA encryption :
- AES Encryption: Encrypt the JSON payload using a 128-bit AES key and encode it in Base64.
- RSA Encryption: Encrypt the AES key using RSA/ECB/PKCS1Padding with the Authorise's public key and encode it in Base64.
- Send Encrypted Data: Include the AES-encrypted payload (
encryptedPayload
) and the RSA-encrypted AES key (encryptedSymmetricKey
) in the request headers
Updated 23 days ago