# `Ethers.Transaction.Eip4844`
[🔗](https://github.com/ExWeb3/elixir_ethers/blob/v0.6.12/lib/ethers/transaction/eip4844.ex#L1)

Transaction struct and protocol implementation for Ethereum Improvement Proposal (EIP) 4844
transactions. EIP-4844 introduced "blob-carrying transactions" which contain a large amount
of data that cannot be accessed by EVM execution, but whose commitment can be accessed.

See: https://eips.ethereum.org/EIPS/eip-4844

# `t`

```elixir
@type t() :: %Ethers.Transaction.Eip4844{
  access_list: [{binary(), [binary()]}],
  blob_versioned_hashes: [{binary(), [binary()]}],
  chain_id: non_neg_integer(),
  gas: non_neg_integer(),
  input: binary(),
  max_fee_per_blob_gas: non_neg_integer(),
  max_fee_per_gas: non_neg_integer(),
  max_priority_fee_per_gas: non_neg_integer(),
  nonce: non_neg_integer(),
  to: Ethers.Types.t_address() | nil,
  value: non_neg_integer()
}
```

A transaction type following EIP-4844 (Type-3) and incorporating the following fields:
- `chain_id` - chain ID of network where the transaction is to be executed
- `nonce` - sequence number for the transaction from this sender
- `max_priority_fee_per_gas` - maximum fee per gas (in wei) to give to validators as priority fee (introduced in EIP-1559)
- `max_fee_per_gas` - maximum total fee per gas (in wei) willing to pay (introduced in EIP-1559)
- `gas` - maximum amount of gas allowed for transaction execution
- `to` - destination address for transaction, nil for contract creation
- `value` - amount of ether (in wei) to transfer
- `input` - data payload of the transaction
- `access_list` - list of addresses and storage keys to warm up (introduced in EIP-2930)
- `max_fee_per_blob_gas` - maximum fee per blob gas (in wei) willing to pay (introduced in EIP-4844)
- `blob_versioned_hashes` - list of versioned hashes of the blobs (introduced in EIP-4844)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
