Broadcasting

Transaction Broadcasting from SPV Wallet

The SPV Wallet broadcasts all valid transactions it receives or creates to ARC.

ARC Endpoints

We use the first endpoint to determine the correct fee model to use when creating a transaction.

Get the policy settings

This endpoint returns the policy settings.

get

/v1/policy

Authorizations
Responses
curl -L \
  --url 'https://arc.taal.com/v1/policy' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "timestamp": "2025-02-21T18:16:21.177Z",
  "policy": {
    "maxscriptsizepolicy": 500000,
    "maxtxsigopscountspolicy": 4294967295,
    "maxtxsizepolicy": 10000000,
    "miningFee": {
      "satoshis": 1,
      "bytes": 1000
    }
  }
}

Thereafter we simply broadcast to ARC and expect a SEEN_ON_NETWORK txStatus response in most cases.

Submit a transaction.

This endpoint is used to send a raw transaction to a miner for inclusion in the next block that the miner creates.

post

/v1/tx

Authorizations
Header parameters
X-CallbackUrlstring

Default double spend and merkle proof notification callback endpoint.

X-FullStatusUpdatesboolean

Whether we should have full status updates in callback or not (including SEEN_IN_ORPHAN_MEMPOOL and SEEN_ON_NETWORK statuses).

X-MaxTimeoutinteger

Timeout in seconds to wait for new transaction status before request expires (max 30 seconds, default 5)

X-SkipFeeValidationboolean

Whether we should skip fee validation or not.

X-SkipScriptValidationboolean

Whether we should skip script validation or not.

X-SkipTxValidationboolean

Whether we should skip overall tx validation or not.

X-CumulativeFeeValidationboolean

Whether we should perform cumulative fee validation for fee consolidation txs or not.

X-CallbackTokenstring

Access token for notification callback endpoint. It will be used as a Authorization header for the http callback

X-CallbackBatchboolean

Callback will be send in a batch

X-WaitForStatusinteger

DEPRECATED, soon will become unsupported, please use 'X-WaitFor' header. Which status to wait for from the server before returning (2 = RECEIVED, 3 = STORED, 4 = ANNOUNCED_TO_NETWORK, 5 = REQUESTED_BY_NETWORK, 6 = SENT_TO_NETWORK, 7 = ACCEPTED_BY_NETWORK, 8 = SEEN_ON_NETWORK)

X-WaitForstring

Which status to wait for from the server before returning ('QUEUED', 'RECEIVED', 'STORED', 'ANNOUNCED_TO_NETWORK', 'REQUESTED_BY_NETWORK', 'SENT_TO_NETWORK', 'ACCEPTED_BY_NETWORK', 'SEEN_ON_NETWORK')

Body
string
Example: <transaction hex string>
Responses
curl -L \
  --request POST \
  --url 'https://arc.taal.com/v1/tx' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --header 'Content-Type: text/plain' \
  --data '"<transaction hex string>"'
{
  "blockHash": "0000000000000aac89fbed163ed60061ba33bc0ab9de8e7fd8b34ad94c2414cd",
  "blockHeight": 736228,
  "extraInfo": "",
  "merklePath": "fe54251800020400028d97f9ebeddd9f9aa8e0e953b3a76f316298ab05e9834aa811716e9d397564e501025f64aa8e012e26a5c5803c9f94d1c2c8ea68ecef1415011e1c2e26b9c966b6ad02021f5fa39607ca3b48d53c902bd5bb4bbf6a7ac99cf9fda45cc21b71e6e2f7889603024a2bb116e86325c9b8512f10b22c228ab3272fe3f373b1bd4a9a6b334b068bb602000061793b278303101a1390ceae5a713de0eabd9cda63702fe84c928970acf7c45e0100a567e3d066e38638b27897559302eabc85eb69b202c2e86d4338bab73008f460",
  "status": 200,
  "timestamp": "2023-03-09T12:03:48.382910514Z",
  "title": "OK",
  "txStatus": "MINED",
  "txid": "b68b064b336b9a4abdb173f3e32f27b38a222cb2102f51b8c92563e816b12b4a"
}

Usually a callbackUrl would be set for async status updates - but if you'd like to manually check the most recent state of a given transaction, you can use this:

Get transaction status.

This endpoint is used to get the current status of a previously submitted transaction.

get

/v1/tx/{txid}

Authorizations
Path parameters
txidstringrequired

The transaction ID (32 byte hash) hex string

Responses
curl -L \
  --url 'https://arc.taal.com/v1/tx/{txid}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "timestamp": "2025-02-21T18:16:21.177Z",
  "blockHash": "00000000000000000854749b3c125d52c6943677544c8a6a885247935ba8d17d",
  "blockHeight": 782318,
  "txid": "6bdbcfab0526d30e8d68279f79dff61fb4026ace8b7b32789af016336e54f2f0",
  "merklePath": "0000",
  "extraInfo": "Transaction is not valid",
  "txStatus": "ACCEPTED_BY_NETWORK",
  "competingTxs": [
    [
      "c0d6fce714e4225614f000c6a5addaaa1341acbb9c87115114dcf84f37b945a6"
    ]
  ]
}

Last updated

Was this helpful?