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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://dev.spectra.finance/technical-reference/contract-functions/registry.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
