Skip to main content
You need a restore bot connected before any of this works.

Setting it up

Run !restore and pick This Server from the menu, then press Set Up. Before you post anything, pick two things:
  • The verified role. This is the role members get once they’re through. It can’t have moderation permissions, and it has to be below your own top role.
  • The channel. Wherever new members land first, usually a #verify channel that’s the only thing they can see.
Then press Post Message. If the restore bot isn’t in the server yet, press Invite Bot first. One thing that catches people out: the restore bot is the one giving out the role, so its role needs to be above your verified role in Server Settings, Roles. If it isn’t, the panel shows a warning about role order. The usual setup is to lock your channels so @everyone can only see the verify channel, and let the verified role see the rest. That way nobody gets in without verifying.

What members see

They press Authorize on the message and Discord asks them to let your bot know who they are and join servers for them. That second part is what makes pulling possible later. After that they land on a short verification page with a captcha, and a password box if you set one. Once they pass, they get the role and they’re in. Members can come back and verify again at any time, it just refreshes their spot in the pool.

Changing the message

By default the message is a simple embed with your server’s name and icon and an Authorize button. Press Edit Message to write your own using embed scripting, for example:
The Authorize button is always added for you, so don’t worry about making one. Leave the box empty to go back to the default. If the message is already posted, it updates in place. Send as mira decides who posts it. With it on, mira sends the message. Turn it off and your restore bot sends it instead, which looks a little more like your own setup.

Requirements

Under Requirements you can make it harder to get through:
  • Password Members have to type it on the verification page.
  • Profile picture Blocks accounts still on the default avatar.
  • Account age Blocks accounts younger than 1, 7, 30 or 90 days.
  • Extra roles Anything here gets handed out along with the verified role.

Firewall

The firewall checks where someone is verifying from and blocks them.
  • Block VPNs also covers proxies.
  • Block Tor blocks Tor exit nodes.
  • Block Hosting blocks connections from servers and cloud providers.
  • Block Alts stops someone verifying if their device already verified a different account.
  • Block Banned Alts stops someone verifying if their device was used by an account you’ve banned. This one is worth turning on even if you skip the rest.
Block or Unblock lets you block specific things by hand: an IP address, an IP range like 203.0.113.0/24, a whole network by ASN like AS13335, or a country by its two letter code like DE. IP addresses are saved as a one way hash, so mira never stores the actual address. If someone gets caught by mistake, add them (or a role they have) to the skip list on the same page and they’ll go straight through. Blocked members are told why on the verification page, like their account being too new or their connection going through a VPN. Their authorization gets thrown away, so they don’t end up in your pool. Country blocks only ever look at the country, never their location or IP.

Auto-kick

Auto-kick removes people who join and never verify. Pick how long they get, anywhere from 10 minutes to 3 days (1 day by default), and turn it on. A few things it never does:
  • It never kicks members who were already in the server before you turned it on.
  • It never kicks anyone with the verified role or one of the exempt roles you pick.
  • It never DMs anyone, they just get removed.

Logs

You can have every verification posted in a channel:
Or set it from the Logs page. You’ll see who verified, who verified again, who got blocked and why, and who got auto-kicked.

When someone can’t verify

Most of the time the page tells them what went wrong. The ones you’ll hear about the most:
  • “You’re already in 100 servers.” Discord won’t let anyone join more than 100, so they need to leave one first.
  • “This link has expired.” They took too long on the page. Pressing Authorize again starts over.
  • “Verification isn’t available for this server right now.” Either verification is turned off, or your restore bot is lacking role hierarchy.
  • “This browser has already verified a different account.” That’s from the Block Alts firewall. If it’s a real person sharing a computer, add them to the firewall skip list.

If someone else set it up

A pool belongs to whoever set up verification in that server, not to the server owner. If that person leaves or loses access, the server owner or an admin can press Take Over to switch verification over to their own restore bot. Members who verified with the old bot can’t be pulled with yours, so post the message again and ask people to verify one more time. When members are verifying, you can pull them whenever you need to.