I have not seen anything that does exactly what you are asking for. What you are describing would require the app/bot to store dates, usernames, and tipping history for longer than the length of your broadcast. This is not currently possible with CB's API. While the program could store session data, and then output that data privately via a command, the broadcaster would need to maintain this data on their own. Perhaps in a text file or Google Docs, but they would be responsible for this data and formatting it in a way the app/bot would understand. Then each time the app/bot is re-loaded, this data would need to be entered to maintain preservation. Otherwise, the app/bot wouldn't know where to start again, who has tipped what, etc. If you are hard set on achieving results exactly as you described them, then you would need a custom bot.
The simplest *free* solution would be to manage the usernames and tipping history on your own. Once a user meets or exceeds your criteria, you could then add their name to any app/bot that assigns icons/emoticons/titles.
The Alias Bot is one such example. With it you can enter any icon/emoticon/title you like and assign it on a per-username basis. You can also assign custom foreground and background colors.
Example for The Alias Bot (username^alias):
cexmental^
,anyi_osito^?-asker
When you type in chat you would see... anyi_osito [ ?-asker ] this is what you typed in chat!
When I type in chat you would see... cexmental [
] this is what I typed in chat!
Example assigning colors for The Alias Bot (Hex values):
#000000#DDA0DDcexmental^
If you want a more customizable 'virtual fan club'-like experience, check out
Virtual Clubs. With Virtual Clubs you could have different clubs, each with different costs (1 time tip or cumulative per-broadcasting session), each providing different icons/chat colors per-club. Club perks (icons & colors) are stackable, so a user can earn more than one. Colors which are stacked will be represented by a custom background gradient. The bot has commands for privately listing users, new members, etc. You would still need to maintain this list of 'new members' and then update the bot manually before starting a new session. Again, this is simply how CB functions.
It's easy to say out loud "has a user tipped so much over a certain length of time". However, the way CB's API currently works, it would take some work to make that happen programitcally and the end-user would be responsible for day-to-day data collection, formatting, and input.
Cheers,
Cexmental