# Constants

### WORD\_SIZE

```solidity
uint256 constant WORD_SIZE = 32;
```

### SELECTOR\_SIZE

```solidity
uint256 constant SELECTOR_SIZE = 4;
```

### MINIMUM\_CALLDATA\_LENGTH

```solidity
uint256 constant MINIMUM_CALLDATA_LENGTH = WORD_SIZE + SELECTOR_SIZE;
```

### CALLDATA\_OFFSET

```solidity
uint256 constant CALLDATA_OFFSET = MINIMUM_CALLDATA_LENGTH;
```

### ERC20\_SPENDER\_OFFSET

```solidity
uint256 constant ERC20_SPENDER_OFFSET = 36;
```

### ADDRESS\_SIZE\_BITS

```solidity
uint256 constant ADDRESS_SIZE_BITS = 160;
```

### BEFORE\_HOOK\_MASK

```solidity
uint256 constant BEFORE_HOOK_MASK = 1;
```

### AFTER\_HOOK\_MASK

```solidity
uint256 constant AFTER_HOOK_MASK = 2;
```

### HOOKS\_FLAG\_MASK

```solidity
uint256 constant HOOKS_FLAG_MASK = 0x80;
```

### CONFIGURABLE\_HOOKS\_LENGTH\_MASK

```solidity
uint256 constant CONFIGURABLE_HOOKS_LENGTH_MASK = 0x7F;
```

### MASK\_8\_BIT

```solidity
uint256 constant MASK_8_BIT = 0xff;
```

### MASK\_16\_BIT

```solidity
uint256 constant MASK_16_BIT = 0xffff;
```

### RESULTS\_INDEX\_OFFSET

```solidity
uint256 constant RESULTS_INDEX_OFFSET = 24;
```

### COPY\_WORD\_OFFSET

```solidity
uint256 constant COPY_WORD_OFFSET = 16;
```

### EXTRACT\_OFFSET\_SIZE\_BITS

```solidity
uint256 constant EXTRACT_OFFSET_SIZE_BITS = 16;
```

### EXTRACTION\_OFFSET\_SHIFT\_BITS

```solidity
uint256 constant EXTRACTION_OFFSET_SHIFT_BITS = 240;
```

### MAX\_EXTRACT\_OFFSETS\_EXCLUSIVE

*Maximum number of extraction offsets(16) + 1*

```solidity
uint256 constant MAX_EXTRACT_OFFSETS_EXCLUSIVE = 17;
```

### NO\_CALLBACK\_DATA

```solidity
uint16 constant NO_CALLBACK_DATA = type(uint16).max;
```

### SELECTOR\_OFFSET

```solidity
uint256 constant SELECTOR_OFFSET = 48;
```

### CALLBACK\_DATA\_OFFSET

```solidity
uint256 constant CALLBACK_DATA_OFFSET = 160;
```

### ONE\_IN\_BPS

```solidity
uint256 constant ONE_IN_BPS = 1e4;
```

### MAX\_TVL\_FEE

```solidity
uint256 constant MAX_TVL_FEE = 2000;
```

### MAX\_PERFORMANCE\_FEE

```solidity
uint256 constant MAX_PERFORMANCE_FEE = ONE_IN_BPS;
```

### SECONDS\_PER\_YEAR

```solidity
uint256 constant SECONDS_PER_YEAR = 365 days;
```

### MAX\_DISPUTE\_PERIOD

```solidity
uint256 constant MAX_DISPUTE_PERIOD = 30 days;
```

### UNIT\_PRICE\_PRECISION

*Precision for unit price calculations (18 decimals)*

```solidity
uint256 constant UNIT_PRICE_PRECISION = 1e18;
```

### ONE\_MINUTE

*One minute in seconds*

```solidity
uint256 constant ONE_MINUTE = 1 minutes;
```

### ONE\_DAY

*One day in seconds*

```solidity
uint256 constant ONE_DAY = 1 days;
```

### MIN\_DEPOSIT\_MULTIPLIER

*Minimum deposit multiplier 50%*

```solidity
uint256 constant MIN_DEPOSIT_MULTIPLIER = 5000;
```

### MIN\_REDEEM\_MULTIPLIER

*Minimum redeem multiplier 50%*

```solidity
uint256 constant MIN_REDEEM_MULTIPLIER = 5000;
```

### DEPOSIT\_REDEEM\_FLAG

*Deposit/Redeem flag in RequestType enum*

```solidity
uint256 constant DEPOSIT_REDEEM_FLAG = 1;
```

### AUTO\_PRICE\_FIXED\_PRICE\_FLAG

*Auto/Fixed price flag in RequestType enum*

```solidity
uint256 constant AUTO_PRICE_FIXED_PRICE_FLAG = 2;
```

### ONE\_UNIT

*One unit with 18 decimals*

```solidity
uint256 constant ONE_UNIT = 1e18;
```

### MAX\_SECONDS\_TO\_DEADLINE

*Maximum seconds between request deadline and current timestamp*

```solidity
uint256 constant MAX_SECONDS_TO_DEADLINE = 365 days;
```

### MAX\_DEPOSIT\_REFUND\_TIMEOUT

*Upper bound for depositRefundTimeout to prevent indefinite user lockout*

```solidity
uint256 constant MAX_DEPOSIT_REFUND_TIMEOUT = 30 days;
```

### IS\_WHITELISTED\_FLAG

*Whitelist flag in AddressToUintMap*

```solidity
uint8 constant IS_WHITELISTED_FLAG = 1;
```


---

# 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.aera.finance/the-protocol/core/constants.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.
