/v2/app/sign/transaction
Using this API developers can self-sign custom transactions.
Sign EVM Transaction
Follows eth_signtransaction specification to sign developer transactions. Here's what the response looks like:
{
"status": "SUCCESS",
"signature": "0x6af234cbb57bbe07ef45b5e64f7710803c95a080ad9596aecc17c29cbbd4fa7714de9eff7b9a59f27e1f5a7f84bbb3dffb163a90773f5d4cbf17afb76fd4f76600",
"signedRawTransaction": "0x02f86c8189018203e78203e8179497706df14a769e28ec897dac5ba7bcfa5aa9c444822710850123456789c080a06af234cbb57bbe07ef45b5e64f7710803c95a080ad9596aecc17c29cbbd4fa77a014de9eff7b9a59f27e1f5a7f84bbb3dffb163a90773f5d4cbf17afb76fd4f766",
"transactionHash": "0xd6dac05483cb102f4f0fafe2b172f17da2cbb9cf7fa2b97d7b8f332abaa0ec04",
"r": "0x6af234cbb57bbe07ef45b5e64f7710803c95a080ad9596aecc17c29cbbd4fa77",
"v": "0x0",
"s": "0x14de9eff7b9a59f27e1f5a7f84bbb3dffb163a90773f5d4cbf17afb76fd4f766"
}
A signature is a hex-encoded 65-byte array starting with 0x.
The signature encodes the r, s, and v parameters from Appendix F of the yellow paper in big-endian format. Bytes 0ā¦32 contain the r parameter, bytes 32ā¦64 the s parameter, and the last byte the v parameter.
Note that the v
parameter includes the chain id as specified in EIP-155.
Sign Solana Transaction
To sign a Solana transaction, send the serialized transaction message in a transaction object. Here's what the request and response look like:
Solana versioned transactions are supported
{
"transactionObject": {
// Serialized transaction message in hex format.
// You can get this by calling `transaction.serializeMessage().toString("hex")`
// For versioned transaction, convert `transaction.message.serialize()` to a `0x` prefixed hex string
"serializedTransactionMessage": "0x010001034cb5abf6ad79fbf5abbccafcc269d85cd2651ed4b885b5869f241aedf0a5ba2900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000301020200010c02000000e803000000000000"
},
"reason": "test"
}
{
"status": "SUCCESS",
// Signature in hex format
"signature": "0x023d9a5700b77971b8de539936143e0d82808809b856cc9ab9bcc41a02a3794ec516a44db6ed666f3e4f7549ae91939062ce076a9ef419febc21c41eebb98f0a"
}
Sign EOS Transaction
To sign an EOS transaction, send the rawTransaction
in a transaction object. If the signature generation also requires a chainId, you can send it in the extraSigningData
field. Note that the action data needs to be sent as a serialized hex string.
Here's what the request and response look like:
{
"transactionObject": {
"rawTransaction": {
"expiration": "2023-05-06T01:23:45",
"ref_block_num": 12345,
"ref_block_prefix": 67890,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [
{
"account": "eosio.token",
"name": "transfer",
"authorization": [
{
"actor": "myaccount",
"permission": "active"
}
],
// Send action data as a serialized hex string.
"data": "0000000000ea305500000000487a2b000000000000000004454f530000000000"
}
],
"transaction_extensions": []
},
"extraSigningData": {
// If chainId is part of the signature generation,
// send it inside extraSigningData field.
"chainId": "b20901380af44ef59c5918439a1f9a41d83669020319a80574b804a5f95cbd7e"
}
},
"reason": "test"
}
{
"status": "SUCCESS",
"signature": "SIG_K1_K1YY3maW1vHjQmmtciiQkkzPaUcpPdCQ631oMqayz4Z3TG9xhjNQwzqL3VCQPV1ZfYTQ14hkoRBkFaUwwrAngLedAxhog6"
}
Api Error Status
You can find error status returned by the api here.
Ā© Copyright 2024, Passbird Research Inc.