# Registry

The Registry contract keeps a record of all valid contract addresses used by the protocol.

Registry.sol code can be [found on Github](https://github.com/APWine/core-v2/blob/main/src/Registry.sol).

## View Methods

### getFactory

```solidity
function getFactory() external view returns (address)
```

Returns the address of the associated [Factory](/technical-reference/contract-functions/factory.md).

### getRouter

```solidity
function getRouter() external view returns (address)
```

Returns the address of the associated [Router](/technical-reference/contract-functions/router.md).

### getPTBeacon

```solidity
function getPTBeacon() external view returns (address)
```

Returns the address of the PT Beacon that allows to upgrade the[ Principal Token](/technical-reference/contract-functions/principal-token.md) implementation.

### getYTBeacon

```solidity
function getYTBeacon() external view returns (address)
```

Returns the address of the YT Beacon that allows to upgrade the[ Yield Token](/technical-reference/contract-functions/principal-token.md) implementation.

### getTokenizationFee

```solidity
function getTokenizationFee() external view returns (uint256)
```

Return the tokenisation fee taken on deposited [IBTs](/glossary.md#ibt) in the [Principal Token](/technical-reference/contract-functions/principal-token.md) contract.

### getYieldFee

```solidity
function getYieldFee() external view returns (uint256)
```

Return the value of the fee taken on generated yield in the [Principal Token](/technical-reference/contract-functions/principal-token.md) contract.

### getPTFlashLoanFee

```solidity
function getPTFlashLoanFee() external view returns (uint256)
```

Return the value of the fee taken for realizing a flash loan in the [Router](/technical-reference/contract-functions/router.md) contract.

### getFeeCollector

```solidity
function getFeeCollector() external view returns (address)
```

Return the address allowed to claim the fees from the [PT](/technical-reference/contract-functions/principal-token.md) contracts.

### getFeeReduction

```solidity
function getFeeReduction(address _pt, address _user) external view returns (uint256)
```

Get the fee reduction of the given `_user` for the given  `_pt` .

### isRegisteredPT

```solidity
function isRegisteredPT(address _future) external view returns (bool)
```

Returns true if an address is registered as a [PrincipalToken](/technical-reference/contract-functions/principal-token.md).

### getPTAt

```solidity
function getPTAt(uint256 _index) external view returns (address)
```

Returns the address of the [PrincipalToken](/technical-reference/contract-functions/principal-token.md) at `_index`.

### pTCount

```solidity
function pTCount() external view returns (uint256)
```

Returns the number of [PrincipalToken](/technical-reference/contract-functions/principal-token.md) that are registered.


---

# 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://dev.spectra.finance/technical-reference/contract-functions/registry.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.
