A messaging application client for ADAMANT Blockchain. See ADAMANT Project at adamant.im.
ADAMANT is a decentralized anonymous messenger based on the blockchain system. It’s independent of any governments or corporations, and even developers due to the distributed network infrastructure that contains an open-source code.
The ADAMANT blockchain system belongs to its users. Nobody can control, block, deactivate, restrict or censor accounts. Users take full responsibility for their content, messages, media, and goals and intentions of using the messenger.
Privacy is the main concept of ADAMANT: neither phone numbers nor emails are required. Apps have no access to the contact list or geotags, IPs are hidden from chatters and paranoids can use Tor app.
All the messages are encrypted with the Diffie-Hellman Curve25519, Salsa20, Poly1305 algorithms and signed by SHA-256 + Ed25519 EdDSA. Private keys are never transferred to the network. The sequence of messages and their authenticity is guaranteed by the blockchain.
ADAMANT includes crypto wallets for ADAMANT (ADM), Bitcoin (BTC), Ethereum (ETH), Dogecoin (DOGE) and Dash (DASH). Private keys for the wallets are derived from an ADAMANT passphrase. You can export the keys and use them in other wallets.
This application deployed at msg.adamant.im and available as standalone apps for macOS, Windows and Linux. Feel free to run your own messenger using this code and Build Setup.
ADAMANT Messenger has built-in crypto Exchanger and Adelina, an AI chat assistant based on ChatGPT.
Clone the repository:
git clone --recursive https://github.com/Adamant-im/adamant-im.git
Install the dependencies:
npm install
npm run dev
npm run https
npm run build
npm run build:testnet
npm run serve
npm run serve:testnet
Vercel preview/dev hosts use the same soft CSP profile as production domains (including current unsafe-inline and unsafe-eval allowances) to avoid behavior drift between environments.
Strict CSP hardening (removing unsafe-eval) is tracked separately and must be done only after runtime dependency cleanup.
npm run lint
npm run electron:dev
To force legacy Chrome extension-based Vue DevTools inside Electron:
ELECTRON_USE_CHROME_DEVTOOLS_EXTENSION=true npm run electron:devTo keep DevTools open but reduce noisy Chromium logs in terminal (default behavior):
npm run electron:devTo disable log suppression and see full Chromium/Electron internals:
ELECTRON_SUPPRESS_CHROMIUM_LOGS=false npm run electron:devnpm run electron:build
npm run electron:build:mac:arm64npm run electron:build:notarizenpm run electron:build:mac:arm64:notarizeFor distributable macOS builds, use a valid Developer ID Application certificate and notarization.
The notarization hook (scripts/electron/notarize.cjs) supports 3 auth strategies:
- Apple ID + app-specific password (current CI compatible)
- Keychain profile (
xcrun notarytool store-credentials) - App Store Connect API key
Supported environment variables:
# Common
APPLE_NOTARIZE=true
# Strategy 1 (Apple ID)
APPLE_ID=...
APPLE_APP_SPECIFIC_PASSWORD=...
APPLE_TEAM_ID=...
# Strategy 2 (Keychain profile)
APPLE_KEYCHAIN_PROFILE=...
# optional
APPLE_KEYCHAIN=...
# Strategy 3 (App Store Connect API key)
APPLE_API_KEY=/absolute/path/to/AuthKey_XXXXXXXXXX.p8
APPLE_API_KEY_ID=XXXXXXXXXX
# optional for team keys
APPLE_API_ISSUER=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxLocal builds can store these variables in electron-builder.env.local or electron-builder.env (also supported: .env.local, .env).
The notarization hook loads them automatically and does not override variables already provided by shell/CI.
For Apple ID strategy, APPLE_APP_PASSWORD is accepted as an alias for APPLE_APP_SPECIFIC_PASSWORD.
Code-signing for electron-builder:
# local identity in Keychain
CSC_NAME="Developer ID Application: <Company> (<TEAM_ID>)"
# or CI/base64 P12
CSC_LINK=...
CSC_KEY_PASSWORD=...npm run electron:serve
$ npm run android:open$ npm run android:runNote: You must have an Android emulator or a connected device to run the app.
$ cp capacitor.env.example capacitor.env # replace ENV values before build
$ npm run android:buildDownload pre-build apps for macOS, Windows and Linux.
To build on Windows you must install build tools for windows, it is easier to do this with windows-build-tools npm package.
For detailed explanation on how things work, checkout the guide and docs for vue-loader.
If you are unable to access adm.im (e.g., due to censorship), you can run a self-hosted instance of ADAMANT Messenger to:
- Increase reliability and decentralization of the ADAMANT Messenger ecosystem.
- Help other users access the messenger in countries with a strong Internet limitations.
We always encourage people to build it from source.
As an option, you can build and deploy the app to GitHub Pages.
Follow the instructions below.
- Fork the repository.
- Go to the repository Settings.
- Navigate to the Pages tab.
- Set the source as GitHub Actions.
- Go to the Actions tab.
- Enable workflows.
- Select the GitHub Pages workflow.
- Click Run workflow.
- Wait until the build succeeds.
- Open ADAMANT Messenger at
username.github.io/adamant-im
You can as well point your GitHub Pages subdomain to a custom domain.