Releases: NeuraiProject/Neurai
Neurai 1.0.6 DePIN Messaging TEST
This is a beta version to test the capabilities of the DePIN messaging system built into the node.
DO NOT USE IN A WALLET WITH FUNDS!!!
What is DePIN Messaging?
DePIN Messaging is a decentralized encrypted communication system between holders of a specific token on the Neurai blockchain network. With a Neurai node, it is possible to easily create a communication server.
Key Features:
- Token-gated access (only asset holders can participate)
- End-to-end encryption using ECIES hybrid encryption
- Message signing using ECDSA (secp256k1)
- Distributed pool architecture (each node can run a message pool)
- Configurable message expiration (default: 7 days, max: 30 days)
- Configurable message size (default: 1KB, max: 10KB)
- Configurable recipients per message (default: 20, max: 50)
- Configurable pool size limit (default: 100MB, max: 1GB)
- Optional pool persistence to disk
CECIESEncryptedMessage (Encryption Envelope)
class CECIESEncryptedMessage {
CPubKey ephemeralPubKey; // 33 bytes (compressed secp256k1)
std::vector<unsigned char> encryptedPayload; // IV + ciphertext + HMAC
std::map<uint160, std::vector<unsigned char>> recipientKeys; // Per-recipient encrypted AES keys
};encryptedPayload Structure:
[16 bytes: AES IV]
[variable: AES-256-CBC encrypted message]
[32 bytes: HMAC-SHA256(IV || ciphertext)]
recipientKeys Entry (per recipient):
Key: uint160 (20 bytes) - RIPEMD160(SHA256(recipient_pubkey))
Value: [33 bytes: ephemeral_pubkey_for_recipient]
[32 bytes: encrypted_aes_key]
[32 bytes: HMAC-SHA256(encrypted_aes_key)]
Total: 97 bytes per recipient
CDepinMessage (Core Message Structure)
Configuration File (neurai.conf):
# Mandatory
assetindex=1 # Required for DePIN
depinmsg=1 # Enable DePIN messaging
depinmsgtoken=MYTOKEN # Token that controls access
# Network
depinmsgport=19002 # DePIN server port (default: 19002)
# Message Limits
depinmsgmaxusers=30 # Max recipients per message (default: 20, max: 50)
depinmsgsize=2048 # Max message size in bytes (default: 1024, max: 10240)
depinmsgexpire=336 # Message expiry in hours (default: 168, max: 720)
# Pool Management
depinpoolsize=200 # Max pool size in MB (default: 100, max: 1000)
depinpoolpersist=1 # Save pool to disk on shutdown (default: 0)
Verify Configuration:
neurai-cli depingetmsginfoExample Output:
{
"enabled": true,
"token": "MYTOKEN",
"port": 19002,
"maxrecipients": 30,
"maxmessagesize": 2048,
"messageexpiryhours": 336,
"maxpoolsizemb": 200,
"messages": 42,
"memoryusage": 1258496,
"memoryusagemb": 1.20,
"oldestmessage": "2025-11-14 10:30:00",
"newestmessage": "2025-11-14 18:45:23"
}Local RPC Commands
depinsendmsg
Send a message to the pool.
neurai-cli depinsendmsg "TOKEN" "192.168.1.31:19002" "Hello world" "NXsender..."Parameters:
token(string, required) - Token nameip[:port](string, required) - Remote node IP and optional portmessage(string, required) - Plaintext message (max size configurable via depinmsgsize, default: 1KB)fromaddress(string, optional) - Sender address
Process:
- Get all token holders from blockchain
- Retrieve public keys for all holders
- Encrypt message using ECIES for all recipients
- Sign message with sender's private key
- Serialize message
- Send to remote node via JSON-RPC (method:
depinsubmitmsg)
Response:
{
"result": "success",
"txid": "<message_hash>"
}depingetmsg
Retrieve and decrypt messages.
# Local pool
neurai-cli depingetmsg "TOKEN"
# Remote pool (default port 19002)
neurai-cli depingetmsg "TOKEN" "192.168.1.31"
# Remote pool with explicit port
neurai-cli depingetmsg "TOKEN" "192.168.1.31:19002"
# With specific address
neurai-cli depingetmsg "TOKEN" "192.168.1.31:19002" "NXyouraddress..."Parameters:
token(string, required) - Token nameip[:port](string, optional) - Remote node IP:PORT or local addressfromaddress(string, optional) - Specific address to decrypt with
Full Changelog: 1.0.5...1.0.6_DepinTest
Neurai 1.0.5
Non-mandatory Update.
- Update urls in depends: fa561ee
- Update chainTxData data: 8a7d58d
- Update docker files: a9a25b6
- Add Neurai links in QT version: 7024d90
Full Changelog: 1.0.4...1.0.5
===BEGIN CHECKSUMS===
9bfcd7e4c81da94a8d620d8062e6f74404586ffa3bf0ed7b066e75386573f554 neuraid
1af09de8777b13a1495785f5ead938016c1d4c75d3da99b63863173048096a43 neurai-cli
ba35cdead79ee3cb381ef1e98276849dd98168154b93a44a23d2a23699b334a5 neurai-qt
3614c4223eb8dfc71a203ded32effae3a9c6fc920da4ceb5a78f0f712b61a8b6 neuraid.exe
481e4a2b64e01937a0706fde31f64d001e442d812abbc91223cf16f5be5f878c neurai-cli.exe
4e25c7240c224b5d0fe51ab4d05016fbe7d377d3b939e26494ab1422448ed9b7 neurai-qt.exe
===END CHECKSUMS===
PGP: E04B BAAB FD79 2564 3C84 8275 5401 5574 1B13 FE02
https://github.com/NeuraiProject/electrum-neurai/blob/main/pubkeys/neurai.asc
Version for Blockbook
neurai-1.0.5.0.SLIP44-0.-x86_64-linux-gnu.tar.gz
neurai-1.0.5.0.SLIP44-1900.-x86_64-linux-gnu.tar.gz
Neurai 1.0.4
Version 1.0.4
- Add checkpoints 675d16b
- Update Readme with testnet config 675d16b
- Change buffer value 675d16b
- Update burn addresses a6346f2
- Update testnet bip44 cointype 4175ff7
- Update data to active assets in testnet c1bc2d8
Hash
- SHA256(neurai-qt)= 661c920a963e049bf99c4609ede462941bcc48c1c9860dd96da20152864ba89c
- SHA256(neurai-qt.exe)= 59c444957ec00a260617a944612dc00bb488fa07a8d2d3346733cb6cec0c5dc1
- SHA256(neurai-1.0.4.0.WITH.NEW.DERIVATION.-x86_64-linux-gnu.tar.gz)= ea2577c3038e740e264b7df1daf43195fee29b2baacb1ec865ee37a925dd60fb
Neurai 1.0.3
Version 1.0.3
- Add checkpoints and some typos 61bed49
- Update price with coingecko 9c874ee
- Fix typo in halving system 5b88a0b
- Update with .gitignore 774fc31
- Update Dockerfile for Linux & win 51a7c25
- Update images in wallet QT ce1c051
- Added a directory with several dockerfiles 603d3ab
SHA256(neurai-qt)= 9172fd0efc1a7126a1a9d66a4f56a587cf95d00419e7fb8c8ccc183cca5d148a
SHA256(neurai-qt.exe)= c903eb2ad2d9f1ce2dc824046f5656319a2799bec632fbca24b64dbfb398c001
Neurai 1.0.2
Version 1.0.2
- Add some checkpoints.
- Updated QT dependencies.
- Added burn addresses.
- Small corrections in the images.
Neurai 1.0.0
Binaries for Neurai 1.0.0