# Protocol

{% content-ref url="/pages/yq4xTVvGvxWjFtgPUjVj" %}
[Core](/readme-2/protocol/core.md)
{% endcontent-ref %}

{% content-ref url="/pages/CjvjyfL8ZchPcdse5nGR" %}
[Deps](/readme-2/protocol/deps.md)
{% endcontent-ref %}

{% content-ref url="/pages/oKQnv2p06zgfOtOLaMwa" %}
[Extensions](/readme-2/protocol/extensions.md)
{% endcontent-ref %}

{% content-ref url="/pages/wkcdmcyGuR72ldLt04Va" %}
[Proxies](/readme-2/protocol/proxies.md)
{% endcontent-ref %}

### Mapping of versions to implementation addresses

* HF 3.1.0 -> 0xeb0c08Ad44af89BcBB5Ed6dD28caD452311B8516 (initial v3 implementation)
* HF 3.1.2 -> 0x7Df14Ba4a5f565cD56206e49Fc66b3002A91841d (self custody deprecated)
* 4.0.1 -> 0xe99DEC5Ba5747E8ADF81Bd58026527c7CB042108 (automated nav)
* 4.0.2 -> 0x34481A0A48A579586B3555ed80af482ad9F79EDE (first mint fix)
* 4.0.3 -> 0xa1D8d68FFa1d7fE4863101599aF09D9C60bF49D6 (burn dos fix)
* 4.1.1 -> 0x1DB955265B8DC18715cAb12E805F9b71Fa545420

HF 3.1.0 is also the initial v3 implementation, to be used in the proxy factory constructor to obtain the same deterministic deployed address for the same pool on all networks (relevant for protocol deployment on new chains).

***

The interface "[IRigoblockPoolExtended](/readme-2/protocol/rigoblockpoolextended.md)" includes all the methods from core implementation and supported adapters. A new instance of a Rigoblock pool can be initialized by the client by attaching a Pool Proxy's address to this interface. This way, a client can initialize the pool just once and use the same instance inside the application.

The interface is not inherited by the pool implementation, as it includes the extensions' methods, which are not implemented at the core of the protocol. Generally speaking, the implementation accepts transactions in the same format as the external applications' ABI specification, therefore a user looking to underact i.e. with the Uniswap universal router through the proxy, will be able to use the Uniswap sdk or api without modifications to the function selector.


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rigoblock.com/readme-2/protocol.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
