# AragonApp

## contract AragonApp

is [AppStorage](/developers/tools/aragonos/smart-contract-references/apps/appstorage.md), [Autopetrified](/developers/tools/aragonos/smart-contract-references/common/autopetrified.md), [VaultRecoverable](/developers/tools/aragonos/smart-contract-references/common/vaultrecoverable.md), [ReentrancyGuard](/developers/tools/aragonos/smart-contract-references/common/reentrancyguard.md), [EVMScriptRunner](/developers/tools/aragonos/smart-contract-references/evmscript/evmscriptrunner.md), [ACLSyntaxSugar](/developers/tools/aragonos/smart-contract-references/acl/aclsyntaxsugar.md)

Source: [contracts/apps/AragonApp.sol](https://github.com/aragon/aragonOS/blob/v4.4.0/contracts/apps/AragonApp.sol)

## Index

* [auth](#auth)
* [authP](#authp)
* [canPerform](#canperform)
* [getRecoveryVault](#getrecoveryvault)

## Reference

### Modifiers

#### **auth** <a href="#auth" id="auth"></a>

` modifier`` `` `**`auth`**`(bytes32 _role)`

***

Parameters:

* `_role` - bytes32

#### **authP** <a href="#authp" id="authp"></a>

` modifier`` `` `**`authP`**`(bytes32 _role, uint256[] _params)`

***

Parameters:

* `_role` - bytes32
* `_params` - uint256\[]

### Functions

#### **canPerform** <a href="#canperform" id="canperform"></a>

` function`` `` `**`canPerform`**`(address _sender, bytes32 _role, uint256[] _params) public view returns (bool)`

***

Check whether an action can be performed by a sender for a particular role on this app.

Parameters:

* `_sender` - Sender of the call
* `_role` - Role on this app
* `_params` - Permission params for the role

Returns:

* Boolean indicating whether the sender has the permissions to perform the action. Always returns false if the app hasn't been initialized yet.

#### **getRecoveryVault** <a href="#getrecoveryvault" id="getrecoveryvault"></a>

` function`` `` `**`getRecoveryVault`**`() public view returns (address)`

***

Get the recovery vault for the app.

Returns:

* Recovery vault address for the app


---

# 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://legacy-docs.aragon.org/developers/tools/aragonos/smart-contract-references/apps/aragonapp.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.
