> For the complete documentation index, see [llms.txt](https://dev.spectra.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.spectra.finance/technical-reference/contract-functions/registry.md).

# 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.
