> ## Documentation Index
> Fetch the complete documentation index at: https://docs.talaria.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit a signed transaction

> Broadcast a complete client-signed Substrate extrinsic without sharing signing secrets

This endpoint broadcasts a transaction your client has already constructed and signed. It is useful for wallets and advanced clients that want complete control over the Substrate signing payload.

The Directory does not sign the transaction and cannot recover or modify it.

<Warning>
  Send only the signed extrinsic. Never include a private key, mnemonic, seed phrase, or additional JSON fields.
</Warning>

## Request

<ParamField body="signed_extrinsic" type="string" required>
  A `0x`-prefixed hexadecimal SCALE extrinsic with the signed bit set.
</ParamField>

The body must contain exactly this one field.

<RequestExample>
  ```bash Request theme={null}
  curl --request POST \
    --url "https://directory.example.com/transactions" \
    --header "Content-Type: application/json" \
    --data '{"signed_extrinsic":"0x<scale-encoded-signed-extrinsic>"}'
  ```
</RequestExample>

## Response

<ResponseField name="tx_hash" type="string" required>
  The transaction hash returned by the upstream chain RPC.
</ResponseField>

<ResponseField name="status" type="string" required>
  `submitted` after the Directory successfully broadcasts the extrinsic.
</ResponseField>

<ResponseField name="submitted_at" type="string" required>
  ISO-8601 time at which this Directory recorded the submission.
</ResponseField>

<ResponseField name="finalized" type="boolean" required>
  Currently always `false`; this endpoint does not yet track finality.
</ResponseField>

<ResponseField name="dispatch_result" type="string" required>
  Currently `pending`; this endpoint does not yet inspect dispatch events.
</ResponseField>

<ResponseExample>
  ```json 202 Response theme={null}
  {
    "tx_hash": "0x<transaction-hash>",
    "status": "submitted",
    "submitted_at": "2026-07-24T16:30:00Z",
    "finalized": false,
    "dispatch_result": "pending"
  }
  ```
</ResponseExample>

## Straight to the point

```http theme={null}
POST /transactions
{"signed_extrinsic":"0x..."}
```

* Accepted and broadcast: `202`
* Unsigned envelope: `400 unsigned_extrinsic`
* Invalid SCALE/hex: `400 invalid_signed_extrinsic`
* Upstream rejection: `502 chain_submission_failed`
