PeerTalk
Developer portal

Build on PeerTalk & PeerTalkID

Everything you need to integrate private, anonymous chat and passwordless identity into your platform — components, SDK, API reference and licensing in one place.

Components

The PeerTalk platform consists of three components.
peertalk-chatPrivate

Real-time anonymous chat platform: token chat rooms, DMs, embeddable widget, moderation, premium and wallet alerts.

JavaScriptNode.js · Fastify · uWebSocketsPostgreSQL · Redis
peertalkid-serverPrivate

Anonymous identity provider: 12-word recovery phrase, Ed25519 challenge login, JWT access/refresh tokens, OpenID discovery.

JavaScriptNode.js · ExpressSQLite
peertalkid-jsv1.0.0

Official JavaScript SDK for PeerTalkID — browser client, Node.js token verification & Express middleware, React hooks.

JavaScriptESMNode ≥ 18 · React ≥ 17

Quick start

Add “Login with PeerTalkID” to any website in two lines.
<script src="https://id.peertalk.chat/peertalkid-button.js"></script>
<peertalkid-button onlogin="onLogin"></peertalkid-button>

<script>
  function onLogin(session) {
    console.log('Logged in as', session.accountId, session.isPremium);
  }
</script>

Embed a PeerTalk chat widget

<iframe src="https://widget.peertalk.chat/token/<TOKEN_ADDRESS>"
        style="width:100%;height:600px;border:0" allow="clipboard-write"></iframe>

More examples and the visual widget configurator: id.peertalk.chat/integration · peertalk.chat/integration

SDK & downloads

The SDK is distributed directly from PeerTalkID — no third-party registry required.
npm install https://id.peertalk.chat/sdk/peertalkid-js-1.0.0.tgz

Usage

// Browser
import { PeerTalkID } from 'peertalkid-js';
const client = new PeerTalkID();
client.login('https://your-site.com/callback');

// Node.js / Express
import { verifyToken, peertalkidMiddleware } from 'peertalkid-js/server';
app.use('/api', peertalkidMiddleware({ required: true }));

// React
import { usePeerTalkID, PeerTalkIDProvider, PeerTalkIDButton } from 'peertalkid-js/react';

Without a bundler (ES module)

<script type="module">
  import { PeerTalkID } from 'https://id.peertalk.chat/sdk/peertalkid-js/index.js';
</script>

API reference

Base URL https://id.peertalk.chat · JSON over HTTPS · Bearer tokens (JWT, issuer https://id.peertalk.chat, audience peertalkid-clients).
MethodEndpointDescription
POST/auth/registerCreate an account from a client-derived public key (wallet hash only, no personal data).
POST/auth/challengeRequest a one-time login challenge for a public key.
POST/auth/loginSubmit the Ed25519-signed challenge; returns access + refresh token.
POST/auth/refreshRotate the refresh token and issue a new access token.
POST/auth/verifyValidate an access token and return the session.
POST/auth/logoutRevoke the current session.
POST/auth/logout-allRevoke all sessions of the account.
GET/auth/sessionsList active sessions of the account.
GET/auth/notificationsAccount notifications.
POST/auth/profileUpdate display name / avatar seed.
GET/api/userinfoOpenID-style user info for a bearer token.
POST/api/verifyServer-to-server token verification for integrators.
GET/api/statusService and database health.
GET/avatar/:seedDeterministic SVG avatar for a seed.
GET/.well-known/openid-configurationOpenID discovery document.
GET/healthLiveness probe.

Security model

PeerTalkID never sees a secret. The 12-word recovery phrase is generated and stored only in the user's browser; a key pair is derived locally (PBKDF2-SHA-256, 210,000 iterations → Ed25519). The server stores a salted hash of the public key and short-lived session records — no email, phone number, password or IP address is linked to an account. Logins are challenge–response signatures with single-use nullifiers to prevent replay. Chat messages on PeerTalk are encrypted at rest and expire automatically.

Keys derived client-side; the phrase never leaves the browser.
Only a salted hash of the public key is stored.
Ed25519 challenge–response with single-use nullifiers.
No email, phone, password or IP address linked to an account.

License

PeerTalk, PeerTalkID and peertalkid-js

Proprietary Software License — All rights reserved

Copyright © 2026 Mind Chat AI. All rights reserved.

  1. Ownership. The PeerTalk and PeerTalkID software, including source code, object code, designs, documentation, names and logos (“Software”), is the exclusive property of its owner and is protected by copyright and trademark law.
  2. Integration grant. You may use the public PeerTalkID API, the peertalkid-js SDK and the embeddable widgets free of charge to integrate login and chat into your own website or application.
  3. Restrictions. Except under a separate written agreement you may not copy, modify, distribute, sublicense, sell, rent, host as a service, or reverse-engineer the Software or any part of its server components.
  4. Commercial licensing. Source code licenses, white-label deployments and transfer of rights are available under a separate commercial agreement. Contact contact@peertalk.chat.
  5. No warranty. The Software is provided “as is”, without warranty of any kind. In no event shall the owner be liable for any claim, damages or other liability arising from the use of the Software.

Third-party notices

PeerTalk is built with the following open-source packages. Their licenses apply to those packages only.
PackageVersionLicenseUsed by
Loading…

Changelog

VersionChanges
1.0.0Initial PeerTalk release — anonymous token chat, DMs, embeddable widget, PeerTalkID login, premium, moderation tools, wallet alerts, peertalkid-js SDK.