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

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.

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

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

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