# Proxy Auth

This contract receives the user's `DSProxy` permission to perform actions on their behalf.

Each user that has their positions managed by a `DSProxy,` is permitting other contracts to perform actions on their behalf. In DeFi Saver the `ProxyAuth` contract receives that permission.

{% hint style="info" %}
Due to having permission for users' proxies, ProxyAuth is an immutable contract.
{% endhint %}

The `ProxyAuth` has only one function `callExecute` which is only callable by the `StrategyExecutor` contract. The function calls the users `DSProxy` and performs the configured actions. This allows for the rest of the system to change while keeping the proxy permission in a fixed contract.

Below is the interface of the contract:

```solidity
contract ProxyAuth {
    function callExecute(
        address _proxyAddr,
        address _contractAddr,
        bytes memory _callData
    ) public payable onlyExecutor;
}
```


---

# 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.defisaver.com/protocol/core/proxy-auth.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.
