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

# Transaction Types

> All six transaction types supported by StableNet, including the StableNet-native fee-delegated type 0x16.

> StableNet supports all standard Ethereum transaction types plus one StableNet-native type for fee delegation.

## Supported Types

| Type          | Value  | EIP       | Description                                                                             |
| ------------- | ------ | --------- | --------------------------------------------------------------------------------------- |
| Legacy        | `0x00` | —         | Pre-EIP-2718 format. No chain ID in the body.                                           |
| Access List   | `0x01` | EIP-2930  | Includes `chainId` and `accessList` to pre-declare accessed storage slots.              |
| Dynamic Fee   | `0x02` | EIP-1559  | Uses `maxFeePerGas` and `maxPriorityFeePerGas`. Recommended for all new transactions.   |
| Blob          | `0x03` | EIP-4844  | Data availability transactions. **Not supported** on StableNet (blob opcodes excluded). |
| Set Code      | `0x04` | EIP-7702  | Code delegation.                                                                        |
| Fee Delegated | `0x16` | StableNet | Two-signature transaction where a separate fee payer covers gas costs.                  |

## Type 0x02 — Dynamic Fee (recommended)

The standard transaction type for most use cases. Requires setting both fee fields.

```typescript theme={null}
{
  type: 2,
  chainId: 8283,
  nonce: 1,
  to: "0xRecipient",
  value: "0xDE0B6B3A7640000",   // 1 WKRC
  gas: "0x5208",                  // 21000
  maxFeePerGas: "0x1286AE6000",  // 80000 Gwei
  maxPriorityFeePerGas: "0x1919B00000", // 27600 Gwei
  data: "0x",
  accessList: []
}
```

## Type 0x16 — Fee Delegated (StableNet-native)

Adds a `feePayer` field and a second signature (`fv`, `fr`, `fs`). The fee payer pays gas; the sender pays only the transfer value.

```typescript theme={null}
{
  type: 0x16,
  chainId: 8283,
  nonce: 1,
  to: "0xRecipient",
  value: "0xDE0B6B3A7640000",
  gas: "0x76C0",
  maxFeePerGas: "0x1286AE6000",
  maxPriorityFeePerGas: "0x1919B00000",
  feePayer: "0xFeePayerAddress",
  input: "0x",
  accessList: [],
  // Sender signature
  v: "0x0", r: "0x...", s: "0x...",
  // Fee payer signature
  fv: "0x0", fr: "0x...", fs: "0x..."
}
```

Requirements:

* Applepie fork must be active
* Both signatures required before broadcast
* `tx.origin` is always the sender (fee payer is invisible to contract execution)

## Signing in ethers.js

```typescript theme={null}
// Type 0x02
const tx = await wallet.sendTransaction({
  to: recipient,
  value: ethers.parseEther("1.0"),
  maxPriorityFeePerGas: ethers.parseUnits("27600", "gwei"),
  maxFeePerGas: ethers.parseUnits("80000", "gwei"),
});

// Type 0x16 — see Fee Delegation Tutorial for full flow
```

## Related

* [Fee Delegation Tutorial](/en/v0.3/build/tutorials/fee-delegation) — full type 0x16 implementation
* [Gas and Fees](/en/v0.3/learn/gas-and-fees) — fee calculation
* [RPC API Reference](/en/v0.3/reference/rpc-api) — `eth_sendRawTransaction`
