Sign Transaction

/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.

Language
Authorization
Header
Click Try It! to start a request and see the response here!