
Lightweight PaperMC plugin allowing apps to verify Minecraft players through in-game code validation
Lightweight PaperMC plugin allowing apps to verify Minecraft players through generated in-game codes.
MineVerify lets external apps verify that a Minecraft account is controlled by a real player on
your server.
The app creates an internal verification request and asks the player to run /mineverify.
The plugin then polls configured apps, generates a temporary code, validates /mineverify <code>
in game, and reports the verified Minecraft UUID and username back to the app.
MineVerify only makes outbound requests to configured apps. It does not expose a public HTTP API on
the Minecraft server.
[See the gallery]
MineVerify-x.x.x+mcx.x.x.jar from the releases pageplugins/ folder/reload confirmplugins/MineVerify/config.yml| Command | Permission | Description |
|---|---|---|
/mineverify |
mineverify.use |
Starts checking configured apps for pending verification requests. |
/mineverify <code> |
mineverify.use |
Validates a generated code for the connected player. |
/mineverify status |
mineverify.admin |
Shows polling state, configured apps, stored requests, and last app responses. |
/mineverify status requests |
mineverify.admin |
Shows admin status with stored request details. |
/mineverify and /mineverify <code> must be run by a real player. Admin status commands can be
run by admins or from the console.
config.yml defines the language, remote apps, and code validity.
language: "en_us"
apps:
my-app:
name: "Your App"
base-url: "https://your-app.com"
token: "generated-token-from-your-app"
poll-interval-seconds: 3
linking:
code-ttl-seconds: 60
| Key | Default | Description |
|---|---|---|
language |
en_us |
In-game message language. Available values are listed in config.yml. |
apps.<id>.name |
<id> |
Player-facing app name. |
apps.<id>.base-url |
Required | App backend base URL. |
apps.<id>.token |
Required | Bearer token used by MineVerify when calling this app. |
apps.<id>.poll-interval-seconds |
3 |
Poll interval used only during an active player-triggered polling session. |
linking.code-ttl-seconds |
60 |
Generated code validity duration. |
/mineverify./mineverify <code> to the user./mineverify <code> in game.It's always MineVerify that contacts the app, never the opposite.
In this way, each app configured in config.yml must implement these endpoints on its own backend.
| Endpoint | Method | Description |
|---|---|---|
/api/mineverify/pending-requests |
GET |
Returns app requests waiting for a generated code. |
/api/mineverify/code-created |
POST |
Receives the generated code and expiration time. |
/api/mineverify/validated |
POST |
Receives the verified Minecraft UUID and username. |
/api/mineverify/expired |
POST |
Receives an expiration event for an unused code or a graceful server shutdown. |
Every request sent by MineVerify includes:
Authorization: Bearer <app-token>
IMPORTANT:
To fully integrate MineVerify into your app, followdocs/APP_INTEGRATION.md.