# Portal

## The Staking Gateway

**Geode Finance utilizes a Modular Architecture, making things&#x20;**<mark style="color:purple;">**safer**</mark>**&#x20;for stakers, and&#x20;**<mark style="color:purple;">**easier**</mark>**&#x20;for Pool Providers**.

<figure><img src="https://2485428749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fw9Axw7FT11SMG7vNQwDN%2Fuploads%2FrEdJLCeEBTHDZEBXA9Rx%2FBas%CC%A7l%C4%B1ks%C4%B1z%20Diyagram.drawio%20(3).png?alt=media&#x26;token=d463fae9-dfb4-4838-aac7-0c062327aca1" alt=""><figcaption></figcaption></figure>

#### The most crucial component is The Portal.

* Creation and maintenance of the configurable staking pools.
* Minting new tokens.
* Securing the Ether until it is staked in a validator.
* Onboarding new Operators to the marketplace.
* Management and regulation of the Operator marketplace.
* Allowing new functionalities to be implemented with ease.
* Securing it's own codebase from Governance.
* Various tasks of Oracle.

#### To achieve these tasks and improve the staking user experience for everyone:

1. We need to make sure every Staking Pool and Node Operator is isolated in a well organized storage space. We can also add new functionalities with ease:

{% content-ref url="portal/isolated-storage" %}
[isolated-storage](https://docs.geode.fi/key-concepts/portal/isolated-storage)
{% endcontent-ref %}

2. We need to define the different parties that will use this storage space, in a secure and generalized way. Thereby preventing any third party access:

{% content-ref url="portal/dual-governance" %}
[dual-governance](https://docs.geode.fi/key-concepts/portal/dual-governance)
{% endcontent-ref %}

3. We need to define the ownership of the funds explicitly, in a way that Portal doesn't hold any responsibility after validator creation:

{% content-ref url="withdrawal-contracts" %}
[withdrawal-contracts](https://docs.geode.fi/key-concepts/withdrawal-contracts)
{% endcontent-ref %}

4. We need to create an upgradability pattern **for both Portal and Withdrawal Contracts**, so we can prevent Governance from changing these mechanisms inconveniently or maliciously.

{% content-ref url="portal/limited-upgradability" %}
[limited-upgradability](https://docs.geode.fi/key-concepts/portal/limited-upgradability)
{% endcontent-ref %}

5. Now, we can implement The Staking Library. It should manage and provide a wide variety of features for the staking derivatives:

{% content-ref url="permissionless-configurable-staking-pools" %}
[permissionless-configurable-staking-pools](https://docs.geode.fi/key-concepts/permissionless-configurable-staking-pools)
{% endcontent-ref %}

6. We need to have a marketplace for Pools and Operators to communicate easily:

{% content-ref url="../operator-marketplace" %}
[operator-marketplace](https://docs.geode.fi/operator-marketplace)
{% endcontent-ref %}

6. We need to have a generalized approach on price updates, that supports infinitely many staking pools:

{% content-ref url="oracles/telescope-ether" %}
[telescope-ether](https://docs.geode.fi/key-concepts/oracles/telescope-ether)
{% endcontent-ref %}


---

# 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.geode.fi/key-concepts/portal.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.
