> 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="https://content.gitbook.com/content/RLNHGppzWLIBhbHOvrRS/blobs/kqZaOpoVK5zLud7EtlDc/Bond%20System%20-%20Teller%20Inheritance%20(1).png" alt=""><figcaption></figcaption></figure>
