> 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/auctioneer-interfaces.md).

# Auctioneer Interfaces

The [Auctioneer Interface](https://github.com/Bond-Protocol/bond-contracts/blob/master/src/interfaces/IBondAuctioneer.sol) defines the external functions that all Auctioneer contracts must implement. Specifically, each Auctioneer should have the following functions:

```solidity
createMarket
closeMarket
purchaseBond // Only Teller
getMarketInfoForPurchase
marketPrice
payoutFor
maxAmountAccepted
isInstantSwap
isLive
getTeller
getAggregator
currentCapacity
```

#### Sequential Dutch Auction (SDA) Interface

The [SDA Interface](https://github.com/Bond-Protocol/bond-contracts/blob/master/src/interfaces/IBondSDA.sol) extends the Auctioneer interface and adds two functions specific to Olympus' implementation:

```solidity
currentDebt
currentControlVariable
```

Additionally, it defines five structs that are used in the SDA implementation:

```solidity
MarketParams
BondMarket
BondTerms
BondMetaData
Adjustment
```

#### Fixed Price Auctioneer (FPA) Interface

The FPA Interface extends the Auctioneer interface and adds a couple functions specific to global FPA parameters. These functions are in lieu of the existing `setDefaults` and `setIntervals` functions, which, in hindsight, were too specific to the SDA case to be in the general Auctioneer Interface.

```
setMinMarketDuration
setMinDepositInterval
```

Additionally, it defines three structs specific to the FPA implementation:

```
MarketParams
BondMarket
BondTerms
```
