GLOBAL Testbed API — server-authoritative economy

This is a reference implementation for security testing. The server owns all money, prices, and rewards — clients can only request actions.

▶ Play GLOBAL (web client)   Staff admin panel

Status

● Service healthy — /healthz

Endpoints

MethodPathAuthPurpose
POST/auth/registernoneCreate account + character
POST/auth/loginnoneGet access + refresh tokens
POST/auth/refreshnoneRotate refresh token
POST/auth/passwordBearerChange password (revokes sessions)
POST/auth/recover + /auth/recover/confirmnonePassword recovery (simulated email)
POST/auth/verify-email + /auth/verify-email/confirmBearer/noneEmail verification (simulated)
GET/DELETE/auth/sessions[/:id]BearerList / revoke own sessions
GET/meBearerAccount + balance
POST/me/deleteBearerSelf-service account deletion
GET/me/transactionsBearerOwn ledger entries
GET/me/propertiesBearerOwned properties
GET/economy/balanceBearerRead own balance
POST/economy/transferBearerSend credits (idempotent, velocity-limited)
POST/economy/purchase-propertyBearerBuy at server-set price
POST/economy/complete-jobBearerServer-decided reward
GET/properties/availablenoneList properties + prices
POST/reportsBearerReport a player (rate-limited)
POST/admin/grantsBearer (admin)Grant; large amounts need dual control
GET/POST/admin/grants/pending, /admin/grants/:id/approve|rejectBearer (admin)Approve/reject pending grants
GET/admin/accounts[/:id]Bearer (admin)Account search + detail
POST/admin/accounts/:id/status|roleBearer (admin)Suspend/delete accounts, change roles
GET/POST/admin/reports, /admin/reports/:id/resolveBearer (admin/mod)Moderation queue
POST/admin/reconcileBearer (admin)Verify balances == ledger sums
GET/admin/anomaliesBearer (admin)Anti-cheat detection output
GET/admin/transactionsBearer (admin)Global ledger view
POST/admin/grantBearer (admin)Legacy grant (dual-control applies)
GET/admin/auditBearer (admin/mod)Read audit log
GET/metricsBearer (admin)Service metrics

Try it

curl -sS ${location.origin}/healthz
curl -sS -X POST ${location.origin}/auth/register -H 'content-type: application/json' -d '{"email":"you@example.com","password":"correct-horse-battery","name":"You"}'

Security properties enforced

⚠ Testbed note: recovery/verification tokens are returned in the API response instead of being emailed (simulated delivery) so the flows can be tested end-to-end.