# 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>
