Eco's Echo

Posted on Dec 10, 2021Read on Mirror.xyz

The bots that power Eco's Secret Discord (they're yours now, too)

Discord is ubiquitous and quite powerful under the hood. But it doesn't always make it easy to access that power, and features that should be table stakes for the emerging generation of collaborative communities simply don't exist.

So we've created bots to level Discord up. We built some of them at Eco Inc., and Eco community members built others.

We believe that pretty much every Discord server could use these bots. So now, we and our community members put in the elbow grease to open source them.

The Bots

They’re listed below roughly in order of how important we believe they've been for our early success. The quick summary:

The big ones

  • The Accountant Bot

  • Management Dashboard

  • Invite Role Bot

Some of the rest

  • Sweepstakes Bot

  • Hodl Bot

  • Voting CAPTCHA Bot

  • Top Meme Bot

  • Mantra Bot

  • Deleted Messages Bot

  • Story Bot

  • FAQ Bot

We’ll share a little context on Eco and then more info below on each of the bots. Enjoy, contribute, and let us know what you think.

What’s Eco?

On the outside, Eco is a beautiful, simple consumer financial product built for everyone. It abstracts "crypto" away from users and gives them a single, rewarding balance for their whole financial life. It's the bridge to crypto we've all been waiting for all these years.

But behind the curtain, there's quite a bit more happening. One of those hidden initiatives is our vibrant, secret Discord community.

We’ve intentionally added friction to getting into the Eco community, but here’s a hint: having everyone’s favorite 🦊 unlocks a different signup flow on our site. Or you can just answer the riddle correctly. Or there might be other ways to get in, too...

We'll start sharing more about what's going on there soon — why it’s so hidden and high-friction to get in, how we manage it, who these people are, what they're doing there, and what we're building together — but today, we'd like to focus on bots.

On to the bots.

The Bots, in detail

The Accountant

GitHub link.

The Accountant manages Points. In the Eco Discord, Points are "for research purposes only," as we often say — but they have become the lifeblood of our community. (And we've got quite some plans for the future, too.)

We grant Points to community members, and then anyone can send those Points to each other. They’ve become an incredible, vibrant transactional layer across our community. Points can represent anything you and your community want them to — a reward, a thank you, a reputation layer, a place in line… anything that can be represented by a number.

We’ll leave it there for now. #KYEP

We're making it easy to choose between two ways to use The Accountant:

  1. Deploy The Accountant into your server with your own Points, separate from Eco Points. If you do this, you'll be able to grant Points freely — as many as you want. But they won't have any link to Eco Points.

    You can do anything you want with Points. And I'm sure you can imagine some of the things we've been brainstorming.

    Here’s the code — you’re welcome to deploy it and create your own points system.

  2. Perhaps even cooler: invite The Accountant into your server using Eco Points. If you do this, members of the Eco Discord can (and will) come over and already have Points in your server. And you can request grants of Eco Points from the Eco community for you to re-distribute to your own community. The Points will persist across every server that has invited The Accountant.

    Being a part of the Eco network is powerful. We're building a coalition of projects, all allowing the same Points to move across different servers and serve as a pro-social transactional layer. We’ll have embassies between different Discord communities, cross-community collaboration, and more.

    And as always with Eco — it pays to be early. Adopting Eco Points and successfully petitioning the Eco Community for Points grants means being rewarded yourself.

    Here’s a brief explanation about why we’re giving away Points to other communities in the first place.

    If you’re even vaguely interested in the idea of adding Eco Points to your server, getting grants of Points, and enabling that cross-community interaction and transaction layer, here’s a link to join a Discord channel where you can chat with us. We’d love to discuss.

    And here’s the link again to add The Accountant to your server with Eco Points.

Management Dashboard

GitHub link.

One of the most inconvenient things about Discord’s native moderation functionality is the inability to view, interact with and modify all community members in a single place. Discord’s “Server Members” functionality only shows a cross-section of community members at any given time.

This makes it impossible to view all members of a community, batch add or remove roles, or ban multiple users. Trying to perform any of these actions is laborious and time consuming. The Management Dashboard makes all of these actions simple, straightforward and efficient. It’s been a huge time saver in the Eco Discord.

You can track account ages, messages sent, if they’re Nitro subscribers, and much more. Plus: the Management Dashboard watches out for users impersonating your team members or moderators (by using the same name) and auto-bans them.

There’s a lot more coming, too — and it’s just the beginning of customizing this dashboard.

This bot — and many others — was primarily built by @Modestolich#0001, otherwise known as Artem Bernatskyy. Thank you Modestolich!

Invite Role Bot

GitHub link.

As you're likely aware, "roles" coordinate everything in Discord — access, permissions, status, reputation, and more (we'll do a writeup of our role structure at some point, but that’ll take another long, in-depth post).

One critical use case for us is "roles as a funnel." When new people come into Discord, we assign them specific roles based on how they came in.

For example: people who are eligible to use the Eco App get a role with certain access privileges, people who aren't eligible get another role with different privileges, people we have an existing relationship with get another role with kick-started reputation, etc.

This lets us make our community members’ stories visible immediately, helps us meet their needs by knowing how they got involved, and also lets us create a tangible reward for people who deserve it from something they did before they joined the Discord.

Discord does not offer this functionality. So we worked with Modestolich and @rdfbbx#6437 to build it. They worked around Discord's limitations beautifully.

With this bot, you can link roles to specific Discord invite links, and whenever each link is used, the user gets auto-assigned the corresponding roles.

Then, you can put those invite links in your funnel or give them out to specific people to get them into the right part of the community.

The rest of the Bots

Those three above are the most high-leverage things we’ve built. A few more are below.

Sweepstakes Bot

GitHub link.

The Sweepstakes Bot is related to The Accountant — it allows you to run configurable sweepstakes where members can buy tickets with Points, their funds are pooled, and then (provably) random winners get the proceeds.

An added feature: the tickets can be configured on a per-sweepstakes basis to be purchasable by users with a certain role on behalf of other users — like giving a friend a lottery ticket as a gift!

This bot came out of the community’s desire for it, and was entirely developed by Modestolich without our input.

Hodl Bot

GitHub link.

The Hodl Bot is also related to The Accountant. It lets users “stake” the Points they’ve earned, keeping track of those users’ balances over the course of an arbitrary “staking period” and rewarding them with more Points based on that balance. Of course, it’s not a real staking mechanism like in a true cryptoeconomic system. But it’s a fun way to replicate the feeling and build an understanding of that sort of functionality.

Modestolich built this bot as well.

Voting CAPTCHA Bot

GitHub link.

With this bot, when using emoji reactions for voting, you can include "#votehere" in the voting post and users will be required to fill out a CAPTCHA (in their DMs). If they fail to, their vote is removed. This helps us limit (but not eliminate) Sybil attacks.

We’ll write a whole separate post about that at some point, too —ideas for managing voting and reward processes in a pseudonymous Discord world.

This was originally built by Saurois#0323 (Twitter), and Modestolich contributed after.

Top Meme Bot

GitHub link.

This bot makes sure the best memes get noticed. It watches a specified channel—in our case, #meme-lab—for posts that reach a certain number of users who have reacted to them. Once a post hits that threshold, it is reposted into another channel—for us, the #top-memes channel.

This really cuts down on some annoying logistic busywork, and ensures that the users are in control of which memes get promoted, instead of having that dependent on individual subjective curation.

rdfbbx and Modestolich built this bot.

Mantra Bot

This is a fun little bot that lets you determine a daily rotating “mantra.” Every day, community members can post that day’s mantra in a specific channel (and any other posts get auto-deleted). The bot keeps track of how many days in a row each person has posted the mantra, and can reward them with Points for certain streak lengths.

This isn’t yet open sourced.

Deleted Messages Bot

This bot watches for deleted messages and reposts them in another channel (along with noting the author of the message). This is used by our moderation team to watch for any odd behavior.

This bot also isn’t open source yet.

Story Bot

This bot DMs users (after they prompt it) with a classic-style text adventure game you’ve written in Ink. Optionally, it can reward the users with Points once they finish the game. It’s a fun way to do an onboarding sequence or educate community members.

This bot also hasn’t been open sourced yet, but if you want it, hop into Discord and ask. It was built by @KingSuper#3702 (Twitter).

FAQ Bot

GitHub link.

You can load this bot up with FAQs for your community to reference — for example, sending "faq.points" causes the bot to spit out our FAQ answer covering "what are points?"

Even cooler: you can translate your FAQs and configure the bot to use a different locale/language depending on which channel the prompt is posted in. Sending "faq.points" in our Russian language channel returns the same FAQ answer but in Russian. This is especially useful, since while Eco is an English-language company, perhaps a majority of our community is from non-English speaking countries.

This bot is open source, but still very Eco-centric. If you’d like to submit a PR to generalize it, please feel free!

rdfbbx built most of this bot, along with contributions from a number of other community members.

What’s next?

And that’s not even all of them. But we’ll save the deeper dive on our remarkable community for another day.

We’d love to hear your feedback — or, even better, see contributions to these bots. There’s lots we want to add to these bots — like making it easy to simply invite them to your Discord instead of deploying the code on your own servers. We’ll be continuing to improve them and create more whenever the need arises (or when we just think that we can do something fun).

If any of this piqued your interest personally, we’re hiring for pretty much every role. Check out our jobs to see if there’s a fit — and if nothing jumps out, drop us an email or DM — andy@[ourdomain] for email, @andy_bromberg on Twitter. Maybe even send us a useful bot.

And, as always: #KYEP for what’s next 👀

These bots are being open sourced (variously by either Eco or by Eco community members) under the MIT License, and as such are provided "as-is" pursuant to that license. Some were built by Eco, some by our community, and some as a collaboration between us and our community — but all should be independently tested and verified by you before being used. Please consider all code in “beta.” There may be issues or bugs. But as always, our earliest users win with us.