Andamio Logo
Apps & Tooling

Discord Bot

A self-hosted Discord bot (v1.0) that reads members' Andamio credentials and gates Discord roles on them. Fork the template and stand up your own instance.

The Andamio Discord bot brings on-chain credentials into a Discord community. A member proves they control an Andamio alias with /login, sees their earned credentials with /credentials, and is automatically granted Discord roles based on what they hold.

At v1.0, the bot is self-hosted: there is no managed service to sign up for. You install it by forking the repo (a GitHub template) and standing up your own instance against your Discord server and an Andamio deployment.

It does what a plain wallet-verification bot cannot: it reads each member's credentials from the authenticated Andamio API and gates Discord roles on them, with no wallet handling by adopters. The bot never touches a wallet, seed phrase, or private key. You need no wallet, no ADA, no Cardano knowledge, and no Andamio CLI or account to deploy.

Full documentation

Andamio Bot is open source (Apache 2.0), and the andamio-bot repo is the source of truth. It ships with task-oriented guides:

The rest of this page is a quick orientation.

What it does

Members interact with the bot through slash commands:

CommandWhat it does
/login · /logoutLink or unlink a Discord account to an Andamio alias, via the hosted Andamio login.
/credentialsShow the member the Andamio credentials they have earned.
/availableList the credentials this server gates channels on, each marked held or not.
/checkRe-read credentials live, update roles, and report where the member stands.
/progressThe member's Andamio progress across courses and per-module status.
/previewPreview a course's modules and a lesson or assignment as an embed.
/faqA get-started guide plus server-specific Q&A, with autocomplete.

Moderators with Manage Roles (or a configured MOD_ROLE_ID) also get a deny-list (/deny, /allow, /denials) to withhold a gated role from a specific member even when they hold the credential.

How it works

  • /login reuses the Andamio app's hosted login to prove a Discord member controls an alias, then stores the discord_id-to-alias link plus the member's login token. No wallet logic lives in the bot.
  • Reads run on the authenticated Andamio API (POST /api/v2/user/dashboard): an operator key authenticates the bot, and the member's bearer token selects whose dashboard to read.
  • config/role-mappings.json maps earned credentials to Discord roles. The bot grants and revokes only the roles it manages, never a moderator, booster, or other role.
  • Roles re-evaluate on /login, on /check, when a member rejoins, and on a periodic sweep. The datastore is file-based SQLite (zero-ops).

Deploy your own

The repo is a GitHub template: use "Use this template" to start your own, or fork it. Follow the Quickstart to deploy with values you were given, or the Builder guide to define what your server gates on. Deploy guidance for any host is in DEPLOY.md.