diff --git a/.codeboarding/Blockchain_Interaction_Layer_Eth_Contract_.md b/.codeboarding/Blockchain_Interaction_Layer_Eth_Contract_.md
new file mode 100644
index 0000000000..5a6dc5ad0f
--- /dev/null
+++ b/.codeboarding/Blockchain_Interaction_Layer_Eth_Contract_.md
@@ -0,0 +1,269 @@
+```mermaid
+
+graph LR
+
+ Eth["Eth"]
+
+ AsyncEth["AsyncEth"]
+
+ Contract["Contract"]
+
+ AsyncContract["AsyncContract"]
+
+ BaseContract["BaseContract"]
+
+ ABI_Encoding_Utilities["ABI & Encoding Utilities"]
+
+ Contract_Function_Handlers["Contract Function Handlers"]
+
+ Contract_Event_Handlers["Contract Event Handlers"]
+
+ Contract_Constructor_Handlers["Contract Constructor Handlers"]
+
+ Transaction_Utilities["Transaction Utilities"]
+
+ Eth -- "interacts with" --> Transaction_Utilities
+
+ AsyncEth -- "interacts with" --> Transaction_Utilities
+
+ Contract -- "inherits from" --> BaseContract
+
+ AsyncContract -- "inherits from" --> BaseContract
+
+ Contract -- "contains" --> Contract_Function_Handlers
+
+ AsyncContract -- "contains" --> Contract_Function_Handlers
+
+ Contract -- "contains" --> Contract_Event_Handlers
+
+ AsyncContract -- "contains" --> Contract_Event_Handlers
+
+ Contract -- "contains" --> Contract_Constructor_Handlers
+
+ AsyncContract -- "contains" --> Contract_Constructor_Handlers
+
+ BaseContract -- "utilizes" --> ABI_Encoding_Utilities
+
+ Contract_Function_Handlers -- "utilizes" --> ABI_Encoding_Utilities
+
+ Contract_Event_Handlers -- "utilizes" --> ABI_Encoding_Utilities
+
+ Contract_Constructor_Handlers -- "utilizes" --> ABI_Encoding_Utilities
+
+ Contract_Constructor_Handlers -- "interacts with" --> Transaction_Utilities
+
+ Contract_Function_Handlers -- "interacts with" --> Transaction_Utilities
+
+ click Eth href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Eth.md" "Details"
+
+ click Contract href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Contract.md" "Details"
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+This layer serves as the primary interface for applications to interact with the Ethereum blockchain, encompassing both direct RPC communication and high-level smart contract interactions. It abstracts away the complexities of blockchain protocols, transaction management, and ABI encoding/decoding, providing a Pythonic interface for developers.
+
+
+
+### Eth
+
+The core synchronous module for direct interaction with the Ethereum blockchain via RPC calls. It provides methods for querying blockchain state (e.g., `getBlock`, `getBalance`), sending raw transactions, and managing accounts. It acts as a direct wrapper around Ethereum RPC API calls.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `Eth` (1:1)
+
+
+
+
+
+### AsyncEth
+
+The asynchronous counterpart to `Eth`, offering non-blocking methods for the same functionalities. It is crucial for applications requiring concurrent operations or improved performance in I/O-bound scenarios.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `AsyncEth` (119:815)
+
+
+
+
+
+### Contract
+
+The synchronous, object-oriented interface for interacting with deployed smart contracts. It simplifies ABI encoding/decoding, allowing users to call contract functions, send transactions to contract methods, and interact with contract events as if they were regular Python object methods.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `Contract` (1:1)
+
+
+
+
+
+### AsyncContract
+
+The asynchronous equivalent of `Contract`, providing non-blocking interaction with smart contracts. It mirrors the functionality of `Contract` but uses asynchronous methods, enabling efficient interaction in asynchronous environments.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `AsyncContract` (1:1)
+
+
+
+
+
+### BaseContract
+
+An abstract base class that forms the foundation for both `Contract` and `AsyncContract`. It encapsulates common logic, attributes, and utility methods shared between synchronous and asynchronous contract interactions, promoting code reusability and consistency.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `BaseContract` (1:1)
+
+
+
+
+
+### ABI & Encoding Utilities
+
+These modules are central to handling the Ethereum Application Binary Interface (ABI). They provide functionalities for encoding Python data types into their Ethereum ABI counterparts and decoding blockchain data back into Python, enabling seamless communication with smart contracts. They are implicitly utilized by all contract-related modules.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3._utils.abi` (1:1)
+
+- `web3._utils.encoding` (1:1)
+
+
+
+
+
+### Contract Function Handlers
+
+These components manage and expose the callable functions of a smart contract. They dynamically create attributes for each contract function defined in the ABI, allowing for intuitive method calls (e.g., `contract.functions.myFunction()`).
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ContractFunctions` (1:1)
+
+- `AsyncContractFunctions` (1:1)
+
+
+
+
+
+### Contract Event Handlers
+
+These components handle interaction with smart contract events. They allow users to create event filters and retrieve logs, simplifying the process of monitoring and reacting to on-chain events.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ContractEvents` (1:1)
+
+- `AsyncContractEvents` (1:1)
+
+
+
+
+
+### Contract Constructor Handlers
+
+These components manage the deployment of new smart contracts. They encapsulate the logic for building and sending the transaction that creates a new contract instance on the blockchain.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ContractConstructor` (1:1)
+
+- `AsyncContractConstructor` (1:1)
+
+
+
+
+
+### Transaction Utilities
+
+These utility modules provide common functionalities for handling Ethereum transactions, including transaction validation, filling default values, and managing transaction replacement logic. They are essential for both direct `Eth` interactions and contract method calls that involve sending transactions.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3._utils.transactions` (1:1)
+
+- `web3._utils.async_transactions` (1:1)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/Middleware_System.md b/.codeboarding/Middleware_System.md
new file mode 100644
index 0000000000..9e1a491c9f
--- /dev/null
+++ b/.codeboarding/Middleware_System.md
@@ -0,0 +1,185 @@
+```mermaid
+
+graph LR
+
+ Middleware_Base["Middleware Base"]
+
+ ENS_Name_Resolution_Middleware["ENS Name Resolution Middleware"]
+
+ Transaction_Signing_Middleware["Transaction Signing Middleware"]
+
+ Transaction_Utilities["Transaction Utilities"]
+
+ ENS_Utilities["ENS Utilities"]
+
+ Web3_Manager["Web3 Manager"]
+
+ Provider_Interface["Provider Interface"]
+
+ ENS_Name_Resolution_Middleware -- "extends" --> Middleware_Base
+
+ Transaction_Signing_Middleware -- "extends" --> Middleware_Base
+
+ ENS_Name_Resolution_Middleware -- "utilizes" --> ENS_Utilities
+
+ Transaction_Signing_Middleware -- "utilizes" --> Transaction_Utilities
+
+ Transaction_Utilities -- "provides logic for" --> Transaction_Signing_Middleware
+
+ ENS_Utilities -- "provides logic for" --> ENS_Name_Resolution_Middleware
+
+ Web3_Manager -- "orchestrates" --> Middleware_Base
+
+ Web3_Manager -- "dispatches requests to" --> Provider_Interface
+
+ Provider_Interface -- "receives requests from" --> Web3_Manager
+
+ Provider_Interface -- "sends responses to" --> Web3_Manager
+
+ click Provider_Interface href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Provider_Interface.md" "Details"
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+The `Middleware System` in `web3.py` is a crucial architectural component designed to intercept and modify RPC requests and responses, providing a flexible and extensible pipeline for blockchain interactions. It allows for the injection of custom logic without altering the core functionalities of `web3.py`.
+
+
+
+### Middleware Base
+
+This is the abstract foundation (`Web3Middleware`) for all middleware in `web3.py`. It defines the core structure and methods (`wrap_make_request`, `wrap_make_batch_request`, `request_processor`, `response_processor`) that allow concrete middleware implementations to inject logic before and after an RPC call. It's fundamental because it establishes the extensible architecture, providing the necessary hooks for interception and ensuring a consistent interface for all middleware.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.middleware.base.Web3Middleware` (1:1)
+
+- `web3.middleware.base.Web3Middleware:wrap_make_request` (1:1)
+
+- `web3.middleware.base.Web3Middleware:wrap_make_batch_request` (1:1)
+
+- `web3.middleware.base.Web3Middleware:request_processor` (1:1)
+
+- `web3.middleware.base.Web3Middleware:response_processor` (1:1)
+
+
+
+
+
+### ENS Name Resolution Middleware
+
+A concrete middleware implementation that extends `Web3Middleware`. Its primary responsibility is to intercept RPC requests, identify parameters that might contain Ethereum Name Service (ENS) names, and resolve them to their corresponding blockchain addresses using ENS Utilities before the request is sent to the node. This is fundamental for user experience, allowing human-readable names instead of raw addresses.
+
+
+
+
+
+**Related Classes/Methods**: _None_
+
+
+
+### Transaction Signing Middleware
+
+A concrete middleware that handles the automatic filling of missing transaction parameters (e.g., gas, nonce) and the signing of `eth_sendTransaction` requests with a private key. It then transforms the request into `eth_sendRawTransaction` with the signed raw transaction. This component is fundamental for developer convenience and security, automating a complex and error-prone process.
+
+
+
+
+
+**Related Classes/Methods**: _None_
+
+
+
+### Transaction Utilities
+
+This component comprises helper functions (e.g., `fill_transaction_defaults`, `fill_nonce`) located in `web3._utils.transactions`. These utilities are crucial for preparing Ethereum transactions by populating default values and managing the transaction nonce. They are fundamental as they encapsulate reusable logic, preventing code duplication and ensuring consistent transaction preparation.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3._utils.transactions.fill_transaction_defaults` (112:145)
+
+- `web3._utils.transactions.fill_nonce` (98:108)
+
+
+
+
+
+### ENS Utilities
+
+This component includes utility functions like `abi_ens_resolver` (from `web3._utils.normalizers`) and `abi_request_formatters` (from `web3._utils.rpc_abi`). These functions are used for resolving ENS names to addresses and applying ABI-based formatting to RPC request parameters. They are fundamental for the practical implementation of ENS resolution, translating human-readable names into blockchain-compatible addresses.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3._utils.normalizers.abi_ens_resolver` (208:236)
+
+- `web3._utils.rpc_abi.abi_request_formatters` (1:1)
+
+
+
+
+
+### Web3 Manager
+
+The `Manager` class is central to the `web3.py` client's operation, acting as the orchestrator for RPC requests. It is responsible for applying the configured middleware pipeline to incoming requests before dispatching them to the `Provider Interface` and processing responses. It is fundamental as the central control point, tying together the user's interaction, the middleware pipeline, and the blockchain provider.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.manager.Manager` (1:1)
+
+
+
+
+
+### Provider Interface
+
+This component defines the abstract interface (`BaseProvider`) for various blockchain node providers (e.g., HTTP, IPC, WebSocket). It is responsible for the actual low-level communication with the Ethereum node, sending RPC requests, and receiving responses. The middleware pipeline operates *before* requests reach this interface and *after* responses are received from it. It is fundamental because it abstracts away communication details, providing a consistent way to interact with the network.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.providers.base.BaseProvider` (58:130)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/Provider_Interface.md b/.codeboarding/Provider_Interface.md
new file mode 100644
index 0000000000..eed15050b4
--- /dev/null
+++ b/.codeboarding/Provider_Interface.md
@@ -0,0 +1,145 @@
+```mermaid
+
+graph LR
+
+ BaseProvider["BaseProvider"]
+
+ AsyncBaseProvider["AsyncBaseProvider"]
+
+ SimpleCache["SimpleCache"]
+
+ combine_middleware["combine_middleware"]
+
+ async_combine_middleware["async_combine_middleware"]
+
+ BaseProvider -- "instantiates and utilizes" --> SimpleCache
+
+ BaseProvider -- "calls" --> combine_middleware
+
+ AsyncBaseProvider -- "extends" --> BaseProvider
+
+ AsyncBaseProvider -- "instantiates and utilizes" --> SimpleCache
+
+ AsyncBaseProvider -- "calls" --> async_combine_middleware
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+The `Provider Interface` subsystem in `web3.py` is crucial for abstracting the communication layer with Ethereum nodes. It defines the fundamental contracts for both synchronous and asynchronous interactions, enabling various transport mechanisms (like HTTP, IPC, WebSockets) to connect and exchange RPC messages. This subsystem is designed for extensibility through a middleware pipeline and optimizes performance with a caching mechanism.
+
+
+
+### BaseProvider
+
+This is the abstract base class (`web3.providers.base.BaseProvider`) that establishes the synchronous contract for all Web3 providers. It defines the essential methods for connecting to an Ethereum node (`is_connected`) and making RPC requests (`make_request`). It also integrates a caching mechanism (`_request_cache`) and a synchronous middleware pipeline, which are crucial for processing requests and responses. `BaseProvider` is fundamental because it sets the standard for synchronous interaction with Ethereum nodes, ensuring consistency across various synchronous provider implementations.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.providers.base.BaseProvider` (58:130)
+
+- `web3.providers.base.BaseProvider:is_connected` (129:130)
+
+- `web3.providers.base.BaseProvider:make_request` (126:127)
+
+- `web3.providers.base.BaseProvider:request_func` (101:124)
+
+
+
+
+
+### AsyncBaseProvider
+
+This abstract base class (`web3.providers.async_base.AsyncBaseProvider`) extends `BaseProvider` to define the asynchronous contract for Web3 providers. It supports `asyncio`-based operations for handling RPC requests (`async_make_request`) and integrates an asynchronous middleware pipeline. `AsyncBaseProvider` is fundamental as it provides the necessary interface for non-blocking, asynchronous communication with Ethereum nodes, which is vital for modern high-performance applications.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.providers.async_base.AsyncBaseProvider` (72:181)
+
+- `web3.providers.async_base.AsyncBaseProvider:async_make_request` (0:0)
+
+- `web3.providers.async_base.AsyncBaseProvider:async_is_connected` (0:0)
+
+- `web3.providers.async_base.AsyncBaseProvider:request_func` (113:128)
+
+
+
+
+
+### SimpleCache
+
+A basic, in-memory caching utility implemented using `collections.OrderedDict`. It is directly utilized by both `BaseProvider` and `AsyncBaseProvider` to store and retrieve RPC request responses. This component is fundamental because it significantly improves the performance of the provider interface by reducing redundant network calls for frequently requested data, thereby optimizing interaction with the Ethereum node.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3._utils.caching.caching_utils.SimpleCache` (0:0)
+
+
+
+
+
+### combine_middleware
+
+A utility function (`web3.middleware.base.combine_middleware`) that takes a sequence of synchronous middleware functions and a base provider request function, then wraps them into a single callable. This function orchestrates the flow of RPC requests and responses through the synchronous middleware chain, allowing each middleware to process the data before and after the actual request is made. It is fundamental because it enables the flexible and modular extension of provider behavior without altering the core provider logic.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.middleware.base.combine_middleware` (0:0)
+
+
+
+
+
+### async_combine_middleware
+
+The asynchronous counterpart to `combine_middleware`. This utility function (`web3.middleware.base.async_combine_middleware`) composes a chain of asynchronous middleware functions around an `async_provider_request_fn`. It manages the asynchronous flow of RPC requests and responses through the middleware, ensuring non-blocking execution. This component is fundamental for enabling asynchronous extensibility and custom logic within the `AsyncBaseProvider`.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.middleware.base.async_combine_middleware` (0:0)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/Request_Manager.md b/.codeboarding/Request_Manager.md
new file mode 100644
index 0000000000..7dc09c438a
--- /dev/null
+++ b/.codeboarding/Request_Manager.md
@@ -0,0 +1,247 @@
+```mermaid
+
+graph LR
+
+ Request_Manager["Request Manager"]
+
+ BaseProvider["BaseProvider"]
+
+ NamedElementOnion["NamedElementOnion"]
+
+ Web3Middleware["Web3Middleware"]
+
+ ValidationUtils["ValidationUtils"]
+
+ FormattersUtils["FormattersUtils"]
+
+ Web3["Web3"]
+
+ RequestBatcher["RequestBatcher"]
+
+ PersistentConnectionProvider["PersistentConnectionProvider"]
+
+ RequestProcessor["RequestProcessor"]
+
+ Request_Manager -- "delegates RPC request sending to" --> BaseProvider
+
+ BaseProvider -- "returns raw RPC responses to" --> Request_Manager
+
+ Request_Manager -- "manages middleware stack using" --> NamedElementOnion
+
+ NamedElementOnion -- "applies" --> Web3Middleware
+
+ Request_Manager -- "depends on" --> ValidationUtils
+
+ Request_Manager -- "utilizes" --> FormattersUtils
+
+ Web3 -- "instantiates and uses" --> Request_Manager
+
+ Request_Manager -- "interacts with" --> PersistentConnectionProvider
+
+ Request_Manager -- "utilizes" --> RequestBatcher
+
+ Request_Manager -- "interacts with" --> RequestProcessor
+
+ click Request_Manager href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Request_Manager.md" "Details"
+
+ click Web3 href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Web3.md" "Details"
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+The central orchestrator for all RPC communications within `web3.py`. It manages the lifecycle of requests and responses, dispatching them to the underlying `Provider Interface`, and applying the `Middleware System` to both requests and responses. It ensures proper formatting, processing, and handling of all interactions with the Ethereum node, acting as the crucial intermediary between the high-level API and the network layer.
+
+
+
+### Request Manager
+
+The central orchestrator for all RPC communications within `web3.py`. It manages the lifecycle of requests and responses, dispatching them to the underlying `Provider Interface`, and applying the `Middleware System` to both requests and responses. It ensures proper formatting, processing, and handling of all interactions with the Ethereum node, acting as the crucial intermediary between the high-level API and the network layer.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `Request Manager` (0:0)
+
+
+
+
+
+### BaseProvider
+
+Defines the abstract interface for all concrete providers, enabling the `Request Manager` to send RPC requests to the Ethereum node. It's a crucial abstraction that allows `Request Manager` to interact with various network layers (e.g., HTTP, IPC, WebSocket) without knowing their specific implementations.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `BaseProvider` (0:0)
+
+
+
+
+
+### NamedElementOnion
+
+A specialized data structure used by the `Request Manager` to manage and apply the ordered stack of middleware. It ensures that middleware functions are executed in the correct sequence for both incoming requests and outgoing responses.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `NamedElementOnion` (0:0)
+
+
+
+
+
+### Web3Middleware
+
+The base class for all middleware components in `web3.py`. Middleware functions, managed by `NamedElementOnion`, intercept and transform RPC requests before they are sent to the provider and responses before they are returned to the caller, allowing for functionalities like gas price strategies, ENS resolution, and validation.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `Web3Middleware` (0:0)
+
+
+
+
+
+### ValidationUtils
+
+Provides utility functions for validating RPC responses received from the Ethereum node. The `Request Manager` utilizes these utilities to ensure the integrity and correctness of the data before further processing or returning it to the user.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ValidationUtils` (0:0)
+
+
+
+
+
+### FormattersUtils
+
+Offers utility functions for formatting and transforming raw RPC data into desired Python structures. The `Request Manager` applies these formatters to make the responses usable and consistent with `web3.py`'s data models.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `FormattersUtils` (0:0)
+
+
+
+
+
+### Web3
+
+The primary entry point for interacting with the Ethereum blockchain in `web3.py`. It instantiates and holds a reference to the `Request Manager`, delegating all RPC communication tasks to it. Modules within `Web3` (e.g., `w3.eth`, `w3.net`) interact directly with the `Request Manager`.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `Web3` (0:0)
+
+
+
+
+
+### RequestBatcher
+
+A utility class that facilitates the batching of multiple RPC requests into a single network call. The `Request Manager` can leverage this component to optimize network communication by reducing the number of round trips to the Ethereum node.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `RequestBatcher` (0:0)
+
+
+
+
+
+### PersistentConnectionProvider
+
+A specialized type of `BaseProvider` that maintains an open, persistent connection (e.g., WebSockets). The `Request Manager` has specific logic to handle sending and receiving batch and individual requests over these persistent connections, including managing an internal `RequestProcessor` for ordered responses.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `PersistentConnectionProvider` (0:0)
+
+
+
+
+
+### RequestProcessor
+
+An internal component primarily used by `PersistentConnectionProvider` but directly interacted with by `Request Manager` for managing the lifecycle of requests and responses over persistent connections. It caches request information and processes incoming raw responses, ensuring they are matched with their corresponding requests.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `RequestProcessor` (73:377)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/Web3_API.md b/.codeboarding/Web3_API.md
new file mode 100644
index 0000000000..aac809e277
--- /dev/null
+++ b/.codeboarding/Web3_API.md
@@ -0,0 +1,255 @@
+```mermaid
+
+graph LR
+
+ Web3_AsyncWeb3["Web3 / AsyncWeb3"]
+
+ RequestManager["RequestManager"]
+
+ BaseProvider["BaseProvider"]
+
+ ABICodec["ABICodec"]
+
+ ENS["ENS"]
+
+ Eth_Module["Eth Module"]
+
+ Contract_Module["Contract Module"]
+
+ Middleware["Middleware"]
+
+ Persistent_Connection_Providers["Persistent Connection Providers"]
+
+ Web3_AsyncWeb3 -- "initializes" --> RequestManager
+
+ Web3_AsyncWeb3 -- "initializes" --> ABICodec
+
+ Web3_AsyncWeb3 -- "attaches" --> Eth_Module
+
+ Web3_AsyncWeb3 -- "attaches" --> Contract_Module
+
+ Web3_AsyncWeb3 -- "integrates" --> ENS
+
+ AsyncWeb3 -- "uses" --> Persistent_Connection_Providers
+
+ RequestManager -- "manages" --> BaseProvider
+
+ RequestManager -- "applies" --> Middleware
+
+ BaseProvider -- "receives requests from" --> RequestManager
+
+ ABICodec -- "used by" --> Web3_AsyncWeb3
+
+ ABICodec -- "used by" --> Contract_Module
+
+ ENS -- "integrated into" --> Web3_AsyncWeb3
+
+ Eth_Module -- "uses" --> RequestManager
+
+ Eth_Module -- "attached to" --> Web3_AsyncWeb3
+
+ Contract_Module -- "uses" --> ABICodec
+
+ Contract_Module -- "uses" --> RequestManager
+
+ Contract_Module -- "attached to" --> Web3_AsyncWeb3
+
+ Middleware -- "processes requests/responses for" --> RequestManager
+
+ Persistent_Connection_Providers -- "used by" --> AsyncWeb3
+
+ Persistent_Connection_Providers -- "are a type of" --> BaseProvider
+
+ click Middleware href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Middleware.md" "Details"
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+Component Overview: Web3 API Subsystem
+
+
+
+### Web3 / AsyncWeb3
+
+These are the primary user-facing interfaces of `web3.py`, providing synchronous (`Web3`) and asynchronous (`AsyncWeb3`) access to the Ethereum blockchain. They act as orchestrators, initializing and connecting various sub-components like the `RequestManager`, `ABICodec`, `ENS`, and specialized modules (Eth, Contract). They are central to all user interactions, aggregating functionalities and exposing a high-level API.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.main.Web3` (378:443)
+
+- `web3.main.AsyncWeb3` (449:581)
+
+
+
+
+
+### RequestManager
+
+The communication backbone responsible for managing the lifecycle of RPC requests. It formats method calls into JSON-RPC requests, sends them to the `BaseProvider`, and processes responses. It handles both synchronous and asynchronous requests and integrates `Middleware` for request/response processing.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.manager.RequestManager` (100:608)
+
+
+
+
+
+### BaseProvider
+
+An abstract base class defining the interface for connecting to an Ethereum node. Concrete implementations (e.g., `HTTPProvider`, `IPCProvider`, `WebSocketProvider`) handle the specifics of different transport layers. It's crucial for abstracting the underlying communication mechanism.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.providers.base.BaseProvider` (58:130)
+
+
+
+
+
+### ABICodec
+
+Responsible for encoding and decoding data according to the Ethereum Application Binary Interface (ABI) specification. This is vital for interacting with smart contracts, ensuring correct serialization of function calls, event logs, and constructor arguments.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.abi.codec.ABICodec` (0:0)
+
+
+
+
+
+### ENS
+
+Provides an interface for interacting with the Ethereum Name Service, allowing resolution of human-readable `.eth` names to blockchain addresses and vice-versa. Both synchronous and asynchronous versions are available.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.ens.ens.ENS` (0:0)
+
+- `web3.ens.async_ens.AsyncENS` (0:0)
+
+
+
+
+
+### Eth Module
+
+Offers a comprehensive set of functions for core Ethereum blockchain interactions, including querying block information, transaction details, account balances, and sending transactions. It's the primary interface for most common blockchain operations.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.eth.eth.Eth` (0:0)
+
+- `web3.eth.async_eth.AsyncEth` (119:815)
+
+
+
+
+
+### Contract Module
+
+Provides a high-level, Pythonic interface for interacting with Ethereum smart contracts. It allows loading ABIs, constructing contract instances, calling functions, and listening for events, leveraging `ABICodec` and `RequestManager`.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.contract.contract.Contract` (0:0)
+
+- `web3.contract.async_contract.AsyncContract` (0:0)
+
+
+
+
+
+### Middleware
+
+A flexible mechanism to intercept and modify RPC requests and responses. It allows injecting functionalities like gas estimation, transaction signing, and error handling into the request-response pipeline without altering core logic.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.middleware.middleware` (0:0)
+
+
+
+
+
+### Persistent Connection Providers
+
+Components (e.g., `WebSocketProvider`, `SubscriptionManager`, `PersistentConnection`) that handle long-lived connections, crucial for real-time features like event subscriptions. `SubscriptionManager` specifically manages active subscriptions. Primarily used by `AsyncWeb3`.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.providers.persistent.websocket` (0:0)
+
+- `web3.providers.persistent.manager` (0:0)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/on_boarding.md b/.codeboarding/on_boarding.md
new file mode 100644
index 0000000000..859cfb5ad8
--- /dev/null
+++ b/.codeboarding/on_boarding.md
@@ -0,0 +1,173 @@
+```mermaid
+
+graph LR
+
+ Web3_API["Web3 API"]
+
+ Request_Manager["Request Manager"]
+
+ Provider_Interface["Provider Interface"]
+
+ Middleware_System["Middleware System"]
+
+ Blockchain_Interaction_Layer_Eth_Contract_["Blockchain Interaction Layer (Eth & Contract)"]
+
+ Web3_API -- "delegates requests to" --> Request_Manager
+
+ Web3_API -- "provides access to" --> Blockchain_Interaction_Layer_Eth_Contract_
+
+ Request_Manager -- "receives requests from" --> Web3_API
+
+ Request_Manager -- "sends RPC requests via" --> Provider_Interface
+
+ Request_Manager -- "applies" --> Middleware_System
+
+ Request_Manager -- "returns processed responses to" --> Web3_API
+
+ Provider_Interface -- "receives requests from" --> Request_Manager
+
+ Provider_Interface -- "returns raw RPC responses to" --> Request_Manager
+
+ Middleware_System -- "applied by" --> Request_Manager
+
+ Middleware_System -- "intercepts and modifies data for" --> Request_Manager
+
+ Blockchain_Interaction_Layer_Eth_Contract_ -- "sends RPC requests to" --> Request_Manager
+
+ Blockchain_Interaction_Layer_Eth_Contract_ -- "receives formatted results from" --> Request_Manager
+
+ click Web3_API href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Web3_API.md" "Details"
+
+ click Request_Manager href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Request_Manager.md" "Details"
+
+ click Provider_Interface href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Provider_Interface.md" "Details"
+
+ click Middleware_System href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Middleware_System.md" "Details"
+
+ click Blockchain_Interaction_Layer_Eth_Contract_ href "https://github.com/ethereum/web3.py/blob/main/.codeboarding//Blockchain_Interaction_Layer_Eth_Contract_.md" "Details"
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+The `web3.py` library is designed with a clear separation of concerns, allowing for modularity, extensibility, and ease of use when interacting with the Ethereum blockchain. The core architecture can be distilled into five fundamental components: the **Web3 API**, the **Request Manager**, the **Provider Interface**, the **Middleware System**, and the **Blockchain Interaction Layer (Eth & Contract)**.
+
+
+
+### Web3 API
+
+This is the top-level, user-facing interface of `web3.py`. It serves as the primary entry point for all interactions with the Ethereum blockchain, aggregating various functionalities (Eth, ENS, Contract) and providing a unified, high-level API. It initializes and orchestrates the `Request Manager` and attaches specialized modules, making it the central orchestrator for user-initiated operations.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.main.Web3` (378:443)
+
+- `web3.main.AsyncWeb3` (449:581)
+
+
+
+
+
+### Request Manager
+
+The central hub for all RPC communication within `web3.py`. It manages the lifecycle of requests and responses, sending them to the underlying `Provider Interface` and applying the `Middleware System` to both requests and responses. It ensures proper formatting, processing, and handling of all interactions with the Ethereum node, acting as the crucial intermediary between the high-level API and the network layer.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.manager.RequestManager` (100:608)
+
+
+
+
+
+### Provider Interface
+
+Defines the abstract contract for connecting to and communicating with an Ethereum node. Concrete implementations (e.g., `HTTPProvider`, `IPCProvider`, `WebSocketProvider`) handle the actual network communication, abstracting away the underlying transport details. It is solely responsible for the raw transmission of RPC requests to the Ethereum node and the reception of raw RPC responses.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.providers.base.BaseProvider` (58:130)
+
+- `web3.providers.async_base.AsyncBaseProvider` (72:181)
+
+
+
+
+
+### Middleware System
+
+A flexible pipeline that intercepts and modifies RPC requests before they are sent to the `Provider Interface` and responses before they are returned to the user. It provides a powerful extension mechanism for `web3.py`, enabling custom logic such as automatic transaction signing, ENS resolution, and gas estimation without altering core functionalities. This system allows for highly customizable and extensible blockchain interactions.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.middleware.base.Web3Middleware` (1:1)
+
+- `web3.middleware.signing.SignAndSendRawMiddlewareBuilder` (1:1)
+
+- `web3.middleware.names.ENSNameToAddressMiddleware` (1:1)
+
+
+
+
+
+### Blockchain Interaction Layer (Eth & Contract)
+
+This layer provides the core functionalities for interacting directly with the Ethereum blockchain. It encompasses the `EthModule` for direct RPC API calls (e.g., querying blockchain state, sending raw transactions) and the `ContractModule` for object-oriented interaction with smart contracts (handling ABI encoding/decoding, function calls, and event parsing). This layer translates high-level Python operations into blockchain-specific interactions, heavily relying on internal ABI handling utilities (`web3.codec.ABICodec`).
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `web3.eth.eth.Eth` (1:1)
+
+- `web3.eth.async_eth.AsyncEth` (119:815)
+
+- `web3.contract.contract.Contract` (1:1)
+
+- `web3.contract.async_contract.AsyncContract` (1:1)
+
+- `web3.codec.ABICodec` (1:1)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file