Chats and Chatrooms
List of endpoints intended to work with chats and chatrooms in ADAMANT blockchain.
See also:
Get List of Chats
GET /api/chatrooms/{ADAMANT_address}
Description
Fetch a list of an account's chats using the
/api/chatrooms
endpoint by specifying anADAMANT address
.- Supports filtering via Transactions Query Language.
- The
includeDirectTransfers
parameter includes direct token transfers. - The
returnUnconfirmed
parameter includes unconfirmed chats. - Returns transactions of:
type = 8
(messages)type = 0
(direct token transfers)
- Stores the last message in
asset.chat
(see Message Types). - Only returns:
type 1
(basic messages)type 2
(rich messages)- Does not return
type 3
(signal messages).
Response Data
participants
— sender & recipient (address
&publicKey
)lastTransaction
— last chat transaction withasset.chat
count
— total chats count
Example
Request:
shGET https://endless.adamant.im/api/chatrooms/U839357947177758191
Response:
jsonc{ "success": true, "nodeTimestamp": 63647775, "chats": [ { "lastTransaction": { "id": "438452752317142988", "height": 10224582, "blockId": "5808058151912629759", "type": 8, "block_timestamp": 58449060, "timestamp": 58449055, "senderPublicKey": "12d6b3f80221a2b0b6d2ef07ae33fce28204c1906ec1bba1d15be693d3353ec4", "senderId": "U839357947177758191", "recipientId": "U18018989827016540480", "recipientPublicKey": "ec48de9b438ae9f12e271ba28d56eb0b3f3bba7b120df7685eddda97c9f79160", "amount": 0, "fee": 100000, "signatures": [], "confirmations": null, "asset": { "chat": { "message": "3e5314dfc9a1095eb874d76cd878ea5a8420ab2a", "own_message": "e26b9454b0927c904863e44bca30aa4d05bf3ee3f9084976", "type": 1 } } }, "participants": [ { "address": "U839357947177758191", "publicKey": "12d6b3f80221a2b0b6d2ef07ae33fce28204c1906ec1bba1d15be693d3353ec4" }, { "address": "U18018989827016540480", "publicKey": "ec48de9b438ae9f12e271ba28d56eb0b3f3bba7b120df7685eddda97c9f79160" } ] }, { "lastTransaction": { "id": "6066206090642273254", "height": 10224570, "blockId": "8748908063639223318", "type": 0, "block_timestamp": 58449000, "timestamp": 58448986, "senderPublicKey": "cdab95b082b9774bd975677c868261618c7ce7bea97d02e0f56d483e30c077b6", "senderId": "U15423595369615486571", "recipientId": "U839357947177758191", "recipientPublicKey": "12d6b3f80221a2b0b6d2ef07ae33fce28204c1906ec1bba1d15be693d3353ec4", "amount": 10000000, "fee": 50000000, "signatures": [], "confirmations": null, "asset": {} }, "participants": [ { "address": "U15423595369615486571", "publicKey": "cdab95b082b9774bd975677c868261618c7ce7bea97d02e0f56d483e30c077b6" }, { "address": "U839357947177758191", "publicKey": "12d6b3f80221a2b0b6d2ef07ae33fce28204c1906ec1bba1d15be693d3353ec4" } ] } ], "count": "2" }
Get Chat Messages
GET /api/chatrooms/{ADAMANT_address}/{ADAMANT_address}
Description
To fetch messages between two accounts, use the
/api/chatrooms
endpoint and specify two ADAMANT addresses.Filtering and options are the same as for Get List of Chats.
As a success result in response, you'll get:
participants
— sender and recipient of messages, represented by ADAMANTaddress
andpublicKey
messages
— array of chat transactions withasset.chat
Endpoint also returns count of messages as an integer value.
Example
Request:
shGET https://endless.adamant.im/api/chatrooms/U8916295525136600565/U2707535059340134112?limit=2
Response:
json{ "success": true, "nodeTimestamp": 63653142, "messages": [ { "id": "8155501380173522589", "height": 10288884, "blockId": "4595637117757620800", "type": 0, "block_timestamp": 58773240, "timestamp": 58773230, "senderPublicKey": "2ac5eef60303003c90f662d89e60570d8661c8ba569e667296f5c7c97a0413ee", "requesterPublicKey": null, "senderId": "U8916295525136600565", "recipientId": "U2707535059340134112", "recipientPublicKey": "5a3c1da429ae925422892e69dc4f0ab6d7ac00cef229d2d992242dcfeca27b91", "amount": 1750000000, "fee": 50000000, "signature": "abf7966546cd99efaa81a...", "signSignature": null, "signatures": [], "confirmations": null, "asset": {} }, { "id": "9175562912139726777", "height": 10288885, "blockId": "10475460465898092643", "type": 8, "block_timestamp": 58773245, "timestamp": 58773228, "senderPublicKey": "2ac5eef60303003c90f662d89e60570d8661c8ba569e667296f5c7c97a0413ee", "requesterPublicKey": null, "senderId": "U8916295525136600565", "recipientId": "U2707535059340134112", "recipientPublicKey": "5a3c1da429ae925422892e69dc4f0ab6d7ac00cef229d2d992242dcfeca27b91", "amount": 0, "fee": 100000, "signature": "287dc2554025d8074d...", "signSignature": null, "signatures": [], "confirmations": null, "asset": { "chat": { "message": "9ae819297240f00b...", "own_message": "6802a9e744aa3ba570d7e48fce5fe0f49184d0ce38ea40f7", "type": 1 } } } ], "participants": [ { "address": "U8916295525136600565", "publicKey": "2ac5eef60303003c90f662d89e60570d8661c8ba569e667296f5c7c97a0413ee" }, { "address": "U2707535059340134112", "publicKey": "5a3c1da429ae925422892e69dc4f0ab6d7ac00cef229d2d992242dcfeca27b91" } ], "count": "7" }
Get Chat Transactions
GET /api/chats/get
Description
Use the
/api/chats/get
endpoint to get messages from ADAMANT blockchain. For filtering and options, see Transactions Query Language.As a result, you'll get a list of transactions of
type = 8
(messages) withasset.chat
fields. The structure ofchat
is described in the Chats and Message Types section. The/api/chats/get
endpoint returns messages of all types (basic messages, rich messages, signal messages).Endpoint also returns
count
of transactions as an integer value.Example
Request:
shGET https://endless.adamant.im/api/chats/get?senderId=U14236667426471084862&type=3&limit=2
Response:
json{ "success": true, "nodeTimestamp": 63653208, "transactions": [ { "id": "18398086748267364739", "height": 9108352, "blockId": "8710389658301166851", "type": 8, "block_timestamp": 52843040, "timestamp": 52842993, "senderPublicKey": "8cd9631f9f634a361ea3b85cbd0df882633e39e7d26d7bc615bbcf75e41524ef", "requesterPublicKey": null, "senderId": "U14236667426471084862", "recipientId": "U15243615587463307445", "recipientPublicKey": null, "amount": 0, "fee": 100000, "signature": "f559262305b34faa48...", "signSignature": null, "signatures": [], "confirmations": null, "asset": { "chat": { "message": "61321be1e7...", "own_message": "875836287f50328027f6bbddbec9c2c020692da371c70d04", "type": 3 } } }, { "id": "15531885854852734176", "height": 10473512, "blockId": "16237611910269371025", "type": 8, "block_timestamp": 59706995, "timestamp": 59706978, "senderPublicKey": "8cd9631f9f634a361ea3b85cbd0df882633e39e7d26d7bc615bbcf75e41524ef", "requesterPublicKey": null, "senderId": "U14236667426471084862", "recipientId": "U15243615587463307445", "recipientPublicKey": null, "amount": 0, "fee": 100000, "signature": "ce19bfd3a00b97e6...", "signSignature": null, "signatures": [], "confirmations": null, "asset": { "chat": { "message": "be0b5367c7c646fc7d3...", "own_message": "5682385d31ec3814d6c45b7196a9407f38d6c235e87dec84", "type": 3 } } } ], "count": "12" }
Register Chat Message Transaction
POST /api/chats/process
Description
Use endpoint
/api/chats/process
to broadcast transactions of type 8 — Chat/Message. It is used for messaging as well as in-Chat ADM token transfer with comment.Make POST request to the endpoint, with payload of transaction object, where
asset.chat
includes encryptedmessage
, nonceown_message
and messagetype
. Set positiveamount
value for in-Chat ADM token transfer with comment.message
contents depends on itstype
, must be encrypted, and then transaction must be formed and signed.As a success result you'll get ID of transaction registered in ADAMANT blockchain.
Example
Request:
shPOST https://endless.adamant.im/api/chats/process
json{ "transaction": { "type": 8, "amount": 0, "senderId": "U13246415250845952364", "senderPublicKey": "a448d99d5da6907dd022c62723f30971f4c1b5b79441da7f5e67f39d545f755e", "asset": { "chat": { "message": "f96383619244c7e06f39f592b55cc551acc72710", "own_message": "d0801b9a647fd1469883f918ec616241c79d6f6f7914ddb0", "type": 1 } }, "recipientId": "U15677078342684640219", "timestamp": 63652706, "signature": "9d35f06fa5b80df650bc4bdfac25974fecacb53de67d25b485f674102f77205ac1e161b13ddad98f1dd7ae0016cceaa254f401c0ee359e45e982e32b1e4fcf0b" } }
Response:
json{ "success": true, "nodeTimestamp": 63652705, "transactionId": "2515012750420367858" }