# 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/perspectivefi/spectra-core/blob/main/src/Registry.sol).

## View Methods [#view-methods]

### getFactory [#getfactory]

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

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

### getRouter [#getrouter]

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

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

### getPTBeacon [#getptbeacon]

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

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

### getYTBeacon [#getytbeacon]

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

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

### getTokenizationFee [#gettokenizationfee]

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

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

### getYieldFee [#getyieldfee]

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

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

### getPTFlashLoanFee [#getptflashloanfee]

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

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

### getFeeCollector [#getfeecollector]

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

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

### getFeeReduction [#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 [#isregisteredpt]

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

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

### getPTAt [#getptat]

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

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

### pTCount [#ptcount]

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

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