> 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/integration-reference/spectra-oracles/oracle-deployment/twap-and-hybrid-oracles-deployment.md).

# TWAP and Hybrid Oracles Deployment

### Overview

To deploy a standard TWAP Oracle, as well as a hybrid oracle, you can use the `TwapOracleFactorySNG` ,

### Deployment

Deployment of Spectra TWAP oracles as well as the hybrid oracle is done through the `deployOracle()`  method described below

```solidity
    /**
     * @notice Deploys an oracle for a given principal token, pool, and oracle type
     * @param _pt The address of the principal token
     * @param _pool The address of the pool
     * @param _impliedRate The implied rate. Relevant only for hybrid oracles
     *                     1e18 represents 100%, so for example an implied rate of 30%
     *.                    is represesnted
     * @return oracleAddress The address of the deployed oracle
     */
    function deployOracle(
        address _pt,
        address _pool,
        uint256 _impliedRate,
        OracleType _oracleType
    ) external returns (address oracleAddress)
```

It deploys an oracle of `_oracleType` for a market composed of a PT of address `_pt` and of market address `_pool` . The `OracleType _oracleType` field allows you to choose the type of oracle you want to deploy.  The `_impliedRate` field is used exclusively for the [Hybrid Oracle](/integration-reference/spectra-oracles/hybrid-oracles.md) and ignored otherwise. The possible types are

```solidity
enum OracleType {
        PTIBT,
        PTUND,
        YTIBT,
        YTUND,
        LPIBT,
        LPUND,
        PTUNDHYBRID
    }
```

The possible types specify the base asset (PT, YT, LP) followed by the quote asset (IBT, Underlying).&#x20;
