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

# Teller

The Teller contract handles all interactions with end users and manages tokens issued to represent bond positions.&#x20;

Users purchase bonds by depositing Quote Tokens and receive a Bond Token (token type is implementation-specific) that represents their payout and the designated maturity.&#x20;

Once a bond vests, users can redeem their Bond Tokens for the underlying Payout Token.&#x20;

A Teller requires one or more Auctioneer contracts to be deployed to provide markets for users to purchase bonds from.&#x20;

A Teller depends on an Aggregator contract to get market information to complete purchases.

<figure><img src="/files/jqhUYr7BtbHghDiV8vf5" alt=""><figcaption></figcaption></figure>
