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

# Transactions

> Read session history and submit wallet transactions or signatures.

`agent.transactions.list()` returns the legs of the current session's successful operations. Size
writes from `agent.allocation`, not history.

`agent.wallet` submits raw transactions and signatures from the runtime-selected wallet through the
same SDK and signer as every typed method, with no additional constraint. Size the effect from
`agent.allocation`; see
[Wallets & Asset Allocation](../concepts/wallets-and-allocations#allocation-is-coordination-not-custody).

## Raw transactions

Preview exact unsigned bytes first. `create` accepts only the unused preview object returned by the
same `AgentContext`, then rechecks live chain facts.

```typescript theme={null}
const preview = await agent.wallet.transactions.preview({
  network: "ethereum:1",
  request: {
    toAddress: target,
    data: calldata,
    value: "0",
  },
});

await agent.wallet.transactions.create(preview);
```

EVM `value` is wei and `data` is hex calldata. Solana accepts an unsigned `0x`-prefixed serialized
`VersionedTransaction`. Input cannot select a signing wallet; preview constrains the request, not its
allocation effect. Creation returns `{ txHash }`.

## Message signing

`wallet.messages.sign` signs EIP-191 or EIP-712 and returns `v`, `r`, `s`, and the signature. It can
grant authority outside Circuit; nothing ties how the signature is used to the session allocation.
