Skip to main content
POST
/
v1
/
sign
Sign a batch of transactions
curl --request POST \
  --url https://relayer.xoxno.com/v1/sign \
  --header 'Content-Type: application/json' \
  --data '
{
  "transactions": [
    {
      "nonce": 42,
      "value": "0",
      "receiver": "erd1qqqqqqqqqqqqqpgq5rf2unca5uen2eqkvlh3re25qk4trspk0n4sy8qlmc",
      "sender": "erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th",
      "gasPrice": 1000000000,
      "gasLimit": 50000000,
      "data": "c3dhcA==",
      "chainID": "1",
      "version": 2,
      "signature": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
      "relayer": "erd1l0x0n5yxsfcy93gm0vyvx9m9f7cte9h9vuq4am33ugpw3d5r3hvqx6f59h"
    }
  ]
}
'
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
transactions: [
{
nonce: 42,
value: '0',
receiver: 'erd1qqqqqqqqqqqqqpgq5rf2unca5uen2eqkvlh3re25qk4trspk0n4sy8qlmc',
sender: 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th',
gasPrice: 1000000000,
gasLimit: 50000000,
data: 'c3dhcA==',
chainID: '1',
version: 2,
signature: 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
relayer: 'erd1l0x0n5yxsfcy93gm0vyvx9m9f7cte9h9vuq4am33ugpw3d5r3hvqx6f59h'
}
]
})
};

fetch('https://relayer.xoxno.com/v1/sign', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests

url = "https://relayer.xoxno.com/v1/sign"

payload = { "transactions": [
{
"nonce": 42,
"value": "0",
"receiver": "erd1qqqqqqqqqqqqqpgq5rf2unca5uen2eqkvlh3re25qk4trspk0n4sy8qlmc",
"sender": "erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th",
"gasPrice": 1000000000,
"gasLimit": 50000000,
"data": "c3dhcA==",
"chainID": "1",
"version": 2,
"signature": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"relayer": "erd1l0x0n5yxsfcy93gm0vyvx9m9f7cte9h9vuq4am33ugpw3d5r3hvqx6f59h"
}
] }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
false
{
  "hashes": [
    "abc123def456abc123def456abc123def456abc123def456abc123def456abcd"
  ],
  "failed": []
}
{
"error": "transactions payload cannot be empty"
}

Body

application/json
transactions
object[]
required

Batch of transactions to co-sign with the relayer key and broadcast.

Minimum array length: 1

Response

Batch processed. Check failed array for per-transaction errors.

hashes
string[]

Transaction hashes for successfully signed and broadcast transactions.

failed
object[]

Per-transaction errors for items that failed signing or broadcast.