> For the complete documentation index, see [llms.txt](https://docs.seismic.systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.seismic.systems/clients/python/namespaces/methods/send-shielded-transaction.md).

# send\_shielded\_transaction

Send encrypted TxSeismic transaction

Build, encrypt, sign, and broadcast a shielded transaction.

## Signatures

```python
# sync
w3.seismic.send_shielded_transaction(
    *,
    to: ChecksumAddress,
    data: HexBytes,
    value: int = 0,
    gas: int | None = None,
    gas_price: int | None = None,
    security: SeismicSecurityParams | None = None,
    eip712: bool = False,
    gas_payment: GasPayment | None = None,
) -> HexBytes

# async
await w3.seismic.send_shielded_transaction(...same args...) -> HexBytes
```

## Parameters

| Parameter     | Type                                                                                                            | Default  | Description                                                                                                               |
| ------------- | --------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| `to`          | `ChecksumAddress`                                                                                               | Required | Recipient contract address                                                                                                |
| `data`        | `HexBytes`                                                                                                      | Required | Plaintext calldata (SDK encrypts it)                                                                                      |
| `value`       | `int`                                                                                                           | `0`      | Wei to transfer                                                                                                           |
| `gas`         | `int \| None`                                                                                                   | `None`   | Gas limit (signed estimate clamped to the final ciphertext admission minimum when omitted; explicit values are preserved) |
| `gas_price`   | `int \| None`                                                                                                   | `None`   | Gas price in wei (fetched from chain if `None`)                                                                           |
| `security`    | [`SeismicSecurityParams`](/clients/python/api-reference/transaction-types/seismic-security-params.md) `\| None` | `None`   | Override default security parameters                                                                                      |
| `eip712`      | `bool`                                                                                                          | `False`  | Use EIP-712 typed-data signing path                                                                                       |
| `gas_payment` | [`GasPayment`](/clients/python/api-reference/transaction-types/gas-payment.md) `\| None`                        | Auto     | Public signed fee choice; explicit Native/Token never falls back                                                          |

## Returns

`HexBytes` — transaction hash from `eth_sendRawTransaction`.

## Example

```python
from seismic_web3.contract.abi import encode_shielded_calldata

data = encode_shielded_calldata(SRC20_ABI, "transfer", ["0xRecipient", 100])
tx_hash = w3.seismic.send_shielded_transaction(to="0xTokenAddress", data=data)
```

## Automatic gas limits

When `gas` is omitted, both sync and async sends use `max(execution estimate, encrypted-input admission minimum)`. Estimation uses an authenticated, non-broadcastable signed-read twin. The admission minimum is calculated from the **final write ciphertext**, since the twin uses a separate encryption nonce and can have different encrypted bytes.

The current Seismic pool uses Prague intrinsic gas and the calldata gas floor; the SDK applies that bound conservatively on older nodes too. Seismic ignores access-list charges. This avoids rejection of cheap plaintext executions whose encrypted input requires a higher minimum gas limit.

An explicit `gas` value is never increased, even if it is below the pool minimum. A larger automatic limit can increase the upfront fee reserve without charging the entire limit as the final fee. The gas-payment selector and signed-read behavior are unchanged. Contract shielded writes and debug sends share this preparation path.

## What's encrypted

The SDK encrypts the `data` field (function selector + arguments) using AES-GCM with the ECDH-derived key. An observer can see `from`, `to`, `value`, gas parameters, and `gas_payment`, but **not** which function was called or what arguments were passed.

## Notes

* For contract interactions, prefer `contract.write.functionName(...)` which handles ABI encoding and encryption automatically
* Creates a `TxSeismic` (type `0x4a`) transaction
* SDK auto-fetches nonce via `eth_getTransactionCount`

## See Also

* [debug\_send\_shielded\_transaction](/clients/python/namespaces/methods/debug-send-shielded-transaction.md) — Same pipeline with debug artifacts
* [signed\_call](/clients/python/namespaces/methods/signed-call.md) — Read-only equivalent (no state change)
* [contract.write](/clients/python/contract/namespaces/write.md) — High-level contract write API
* [SeismicSecurityParams](/clients/python/api-reference/transaction-types/seismic-security-params.md) — Security parameter reference


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.seismic.systems/clients/python/namespaces/methods/send-shielded-transaction.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
