> For the complete documentation index, see [llms.txt](https://dev.bondprotocol.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.bondprotocol.finance/smart-contracts/bond-system/auctioneer/oracle-based-auctioneers/oracle-interface.md).

# Oracle Interface

## IBondOracle

### Methods

#### currentPrice

```solidity
function currentPrice(uint256 id_) external view returns (uint256)
```

Returns the price as a ratio of quote tokens to base tokens for the provided market id scaled by 10^decimals

**Parameters**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id\_ | uint256 | undefined   |

**Returns**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

#### currentPrice

```solidity
function currentPrice(contract ERC20 quoteToken_, contract ERC20 payoutToken_) external view returns (uint256)
```

Returns the price as a ratio of quote tokens to base tokens for the provided token pair scaled by 10^decimals

**Parameters**

| Name          | Type           | Description |
| ------------- | -------------- | ----------- |
| quoteToken\_  | contract ERC20 | undefined   |
| payoutToken\_ | contract ERC20 | undefined   |

**Returns**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \_0  | uint256 | undefined   |

#### decimals

```solidity
function decimals(uint256 id_) external view returns (uint8)
```

Returns the number of configured decimals of the price value for the provided market id

**Parameters**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id\_ | uint256 | undefined   |

**Returns**

| Name | Type  | Description |
| ---- | ----- | ----------- |
| \_0  | uint8 | undefined   |

#### decimals

```solidity
function decimals(contract ERC20 quoteToken_, contract ERC20 payoutToken_) external view returns (uint8)
```

Returns the number of configured decimals of the price value for the provided token pair

**Parameters**

| Name          | Type           | Description |
| ------------- | -------------- | ----------- |
| quoteToken\_  | contract ERC20 | undefined   |
| payoutToken\_ | contract ERC20 | undefined   |

**Returns**

| Name | Type  | Description |
| ---- | ----- | ----------- |
| \_0  | uint8 | undefined   |

#### registerMarket

```solidity
function registerMarket(uint256 id_, contract ERC20 quoteToken_, contract ERC20 payoutToken_) external nonpayable
```

Register a new bond market on the oracle

**Parameters**

| Name          | Type           | Description |
| ------------- | -------------- | ----------- |
| id\_          | uint256        | undefined   |
| quoteToken\_  | contract ERC20 | undefined   |
| payoutToken\_ | contract ERC20 | undefined   |
