Fetch chats overview
These APIs are useful for fetching list of all chats (or chat requests) that a user might have, along with providing calls to get latest message or historical messages between two users (or from a group).
Chat list API
List all chats that the user are already messaging with, called chat connections. While chat requests are request from other users (or invite from group) that you haven't accepted yet. See chat requests for more info.
- js
// userAlice.chat.list(type, {options?})
const aliceChats = await userAlice.chat.list('CHATS');
Chat list parameters
Param | Type | Subtype | Default | Remarks |
---|---|---|---|---|
type | CHATS or REQUESTS | - | - | Type of Chats to be listed |
options | object | - | Optional configuration properties for listing chat | |
- | options.page | number | 1 | The page number for pagination |
- | options.limit | number | 10 | The maximum number of items to retrieve per page |
Note: Parameters
in this style
are mandatory.
Expected response
[
{
chatId: '6168440929ced5109c50534d40bb98a5e109ebf1d33df966ae898f002fac8973',
about: null,
did: 'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562',
intent: 'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562',
intentSentBy: 'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562',
intentTimestamp: '2023-08-29T08:05:03.000Z',
publicKey:
'{"key":"-----BEGIN PGP PUBLIC KEY BLOCK-----\\n\\nxsBNBGTt9AcBCADXjt9OEXDQyE7w2veaHqTUN9fALt7c+cubz2nhWfmD07M1\\n5Spm3ScT/4HdlPpUBYnGUKlCT09g663RvvmDzp8442vZhfYeKbetrcNFxfnp\\n+ePQGiLDY0h2FmjQGkmZGP43ZLyhNT4eCIGPcPSpzaWAKw4wgE/tW2hli5m/\\n7e8HFno+bHp2ycNoPJpdqhY77CJL9zPqFdctCPxI5r1/+xkVLcf+NZ+vD7mz\\nq8xVpu3Tij5Jb5ShDPQ3qqPsqdCcB/fpnEtAOT/Ryuf5Qqic/bDrzImfaIO9\\nYmdnuc6uQBR1s8WbLHmOsQvJhe2D8MtggV5HwHbkPqxXBmpGIJnMeLHZABEB\\nAAHNAMLAigQQAQgAPgWCZO30BwQLCQcICZBvKHl019glPAMVCAoEFgACAQIZ\\nAQKbAwIeARYhBEyKE1gcoT4IIxerrG8oeXTX2CU8AADltgf/dREUaHmfMnwa\\nWwcoGxfya7xeSeqGLWoWsCDg55lq0rf59IFKw59AKL+4kKQrmVDW0x6oo844\\nxBv3NBq7OssNbRr4XYIXJN4oP8g0SdOYinTTcnHFjJcRHfTIa+lmlf7fwc7d\\n2DRW3Kyu66OGq9sLzcgI3Q4Fg3VOQGRDdVGF4zJGjPEpnHsJuGCVnbn5L94p\\nMZHEMIahYrYg2asglSByNUZIH+r0Y8rCzKp8rs37X/Q8RBrmW/oTnE/bb+xo\\n1jHgRR3MUs2Ea0oAqv/TwqpBRzMIWQ8tGKfEaJ22p02FJaE5q9KMbLp0mMIe\\nd33xGwOezLKoK5L9cHKg7wmz4sWvUs7ATQRk7fQHAQgApXcZbj43S5sr7v8d\\nq9JwcXkSdpRuzGw5zyauxUUElq2RLKPvsP8En+OJQceKWQcpvz16xLjnSoZI\\nfgIl1wXUaEb2T45rUrWmnoO+Csy2h6FePNmlHOerY2/C0GHQX3XP/B0t41By\\nG/o4losESsBaHEYugHIg5kXhgsGnlgoC3Bu4zHFmIvLlZXjCWYUG2JnhNHlG\\nrD67/Xuox1FO+Hh/rR7sSsWIH6S+SFgG/P4bwiW0JAYQP6bC4tbXfzvKJk2R\\ndeySnppEAwdn/3lCU5QscYIIUXSaPoV3Q6hg+wRigBk2ixkqdOTJmJROTOo3\\nUdnaeGSwP23USJIUncZWgcIokwARAQABwsB2BBgBCAAqBYJk7fQHCZBvKHl0\\n19glPAKbDBYhBEyKE1gcoT4IIxerrG8oeXTX2CU8AABx6Af/XRamjQ4T79rf\\nhNArQt3VuHvpIUP860MCg0aW5rMtZ8q4+TwOyjiEgOUIFx215Yprb3R3NTKV\\nQWJr8n++ZGDmQ8iro8nrRMRELmoEJzyWp3yr0dyr2lx01//bud+vVw+ARPLt\\nVUnX8eguLKRrltQmIRwCqX01PCTiN2RDB2Akd+zlBGRiHoavW9dDdGGBY9wW\\nA2Pyw73BeMzVA3akiGzLsdRIshO0DBALaX0G5ytqyIf3QjXOqO6C7gp9XW7R\\njXhRhzvR9NjZPmSXEeYqYw2CUPxzaLsKoSP4dbXE7Hl+sYJptzke7LE1StzH\\nG64gRgEYMCKvRZaPXYnPJXAZwDhijw==\\n=8aQd\\n-----END PGP PUBLIC KEY BLOCK-----\\n","signature":"DEPRECATED"}',
profilePicture:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAsklEQVR4AcXBQY0DMRBE0Z+SCRhCsBhGAJiAYQwBgzGmZuDk2pPDSKPsqt57zNfzTVKPxX+K0ciEmTATZqXuSRajkdVjkcVoXKnHIovRyOqeZMJMmAmzEurcUffkF6FOJsyEmTAr3BTqXKks7hBmwkyYFb7UPflLdU+yUCcTZsJMmBW+hDong5O6J1diNE7EJWEmzIRZqccii9G4Eur8oh6LTJgJM2H2mK/nGyNhJsyE2QfJZChdHLm7QQAAAABJRU5ErkJggg==',
threadhash: 'bafyreiewla5iyd7rnvjw2c5w6dbab4zkyf2desbowzouijoea2jzakxz6i',
wallets: 'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562',
combinedDID:
'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562_eip155:0x84a9385e9b97df87b80c2e689997133703853874',
name: null,
groupInformation: null,
msg: {
fromDID: 'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562',
toDID: 'eip155:0x84a9385e9b97df87b80c2e689997133703853874',
messageObj: [Object],
messageContent: 'Hello Alice!',
messageType: 'Text',
timestamp: 1693316103747,
fromCAIP10: 'eip155:0x14727F96dF61105661E78275D1A03C4F8aeff562',
toCAIP10: 'eip155:0x84a9385e9b97df87b80c2e689997133703853874',
encryptedSecret:
'-----BEGIN PGP MESSAGE-----\n' +
'\n' +
'wcBMA3d9z8TNUuddAQf/U2hMcybh5mUt9FFen5tfZ52PaB0vc2G+wYYIsBfu\n' +
'zg58rgLy8uGMxvzhtCWhpIE91G62d8M4OmaDa+PLjs8SqyRoyih/9pt8P4cw\n' +
'UJVHHDcJNC9r6/AV4aZySdz5u5utE7o3iB1FU0Sr9HEQsImmOM7J6LZJ3xWJ\n' +
'V+o4ToLbqUFYKg2uY1kUXpyX+D6JRinagnAosh4zCICLUqrEkKNqbyV2mr+5\n' +
'FK+fClWBGCwpf38L220FqHYPQ4bQXks0N07yW4OVjVpCTZVuNttr7PIEqcyZ\n' +
'qIovbQbkltiDpsb/yYysEHTwBtvugna7xMW7SRY34x3iWm/HBNJmfBG7LnjI\n' +
'6cHATAMrTKobmmcFTAEH/20nW6aNzfj1vn/5GIWjZ5Z4Rw6G3Syt+0NxPUix\n' +
'dpKIFOR0/BEJkafGMdlk/vRElsyluKbzykBlIQ0hHGRpGMNEW8s8GrJeiXvV\n' +
'JSNZ24u5DDk8DIBaJWJnyWM7XzgcmOmn9rvVbvc9qgNNgtDeMIZwUpiDipnA\n' +
'++7n72h0JSs8dWFQ62FSf5ACHC0UVbPiL3TRrRBEo7vQp4JsJyXp70CUclqU\n' +
'3ANLvNhINV6GGtpXEKnsBVkkg35HR92nIzk+8HL86SsRUYfXkufzXdkPpmRn\n' +
'SG7MoDecNf/bwoqP8/l2X2h3R1c+WTQFb6Z+eK/NsJ/AnSErFZh3yEHAi1Rz\n' +
'yIXSQAEA2KupLnBVC9fqZqhUySvOW/Hs/hD6iEEGIl+U/RC9AwdG2jpg4sVi\n' +
'f9PhBJ5Tanynb3aHngRKtIzjP5m223A=\n' +
'=5w+B\n' +
'-----END PGP MESSAGE-----\n',
encType: 'pgp',
signature:
'-----BEGIN PGP SIGNATURE-----\n' +
'\n' +
'wsBzBAEBCAAnBYJk7fQHCZBvKHl019glPBYhBEyKE1gcoT4IIxerrG8oeXTX\n' +
'2CU8AACRLQf/bbeJoUNwRkJYz100R3ULO27HGjKnFeOaMZWRNF8JqWzNmCBL\n' +
'Cj3aIBkDuCUj7avBsanScbSa7tD8Mc8PZgpSkd22nNH5iHiDJqlPtySJ2KoZ\n' +
'3ekVXfOgfLlHtN78ghTxABewYQRuB6kwtv3XQW8X9sCL2jEF4NIIl5eXZvIT\n' +
'nhbHhhOR47k2E0hiHjPv2t3ggrwkrw6ISDgV8qYcrnf7vEFeGHpeSc25QLJH\n' +
'pXCeeHhH7h4C9L3PEdMt8T+Ne36cfNiwTGdOavin/yfNES6k0kqZxP44hn1M\n' +
'ZBk4jfyaDUh70mv4FtxdPcdb1TGQsPC1YYAIh/059EBqkdJFhVF4+A==\n' +
'=DBch\n' +
'-----END PGP SIGNATURE-----\n',
sigType: 'pgpv2',
verificationProof:
'pgpv2:-----BEGIN PGP SIGNATURE-----\n' +
'\n' +
'wsBzBAEBCAAnBYJk7fQHCZBvKHl019glPBYhBEyKE1gcoT4IIxerrG8oeXTX\n' +
'2CU8AADsmwf/UpJCmnqztJLt1Ltg0OD7xoDvumitRwkfhnXzUdBWxM3i7vj4\n' +
'cfjtcpQI2R5W0TXj9e2fymimIc98kjUqpDiUIaVAuD0OnEbJdIluGLBTJeks\n' +
'YTRikqkgjFJT9Y6/2VRQj59IR0rgC0sec8mSKPlxuhixkdSS7Wec0+84cGmX\n' +
'aieskReKeitKacYkU4Uf82Klc7Ft8+duBsaMGR3TS22PzHfYIHmy+8Z3b1SK\n' +
'pMyJ8NBXCG2F+05WdoUsXBR+lO74RjSDWnWZlgRngWjjvSXQuZ/QznIyBVmQ\n' +
'oOxJM5LSCCwH6ch5J/HmXudJG+3wsCINchvSQx0LntZUoeSp8cezvg==\n' +
'=KUqZ\n' +
'-----END PGP SIGNATURE-----\n',
link: null,
},
},
];
Param | Type | Remarks |
---|---|---|
msg | IMessageIPFS | message object |
did | string | user DID |
wallets | string | user wallets |
profilePicture | string | user profile picture |
publicKey | string | user public key |
about | string | user description |
threadhash | string | cid from the latest message sent on this conversation |
intent | string | addresses concatenated from the users who have approved the intent |
intentSentBy | string | address of the user who sent the intent |
intentTimestamp | number | timestamp of the intent |
combinedDID | string | concatenated addresses of the members of this chat (for DM the 2 addresses and from Group the addresses from all group members) |
cid | string | content identifier on IPFS |
chatId | string | chat identifier |
groupInformation | GroupDTO | if group chat, all group information |
Fetch latest chat API
Fetches latest chat between your instantiated user and any other user (or group).
- js
// userAlice.chat.latest(recipient)
const aliceChats = await userAlice.chat.latest(bobAddress);
Fetch latest chat parameters
Param | Type | Default | Remarks |
---|---|---|---|
recipient | string | - | Recipient supports a number of address format including wallet addresses, chain agnostic wallet addresses, NFT addresses or even chatid which is useful for groups |
Note: Parameters
in this style
are mandatory.
Expected response
[
{
link: 'bafyreibfikschwlfi275hr7lrfqgj73mf6absailazh4sm5fwihspy2ky4',
toDID: 'eip155:0xb340E384FC4549591bc7994b0f90074753dEC72a',
encType: 'pgp',
fromDID: 'eip155:0x0F1AAC847B5720DDf01BFa07B7a8Ee641690816d',
sigType: 'pgp',
toCAIP10: 'eip155:0xb340E384FC4549591bc7994b0f90074753dEC72a',
signature:
'-----BEGIN PGP SIGNATURE-----\n' +
'\n' +
'wsBzBAEBCAAnBQJjh5tjCRBaJmgmByp5FRYhBJC23yBJT2d/pTAID1omaCYH\n' +
'KnkVAAAZmwf/buPLw6caSZmYnw6D3/p6HF1kWlkGUOTP4RasaU/6dkeDaZs9\n' +
'SJlz2wC8oOpBGWHMJ/5n3ZWmU71E6U7IKIY793MyIv5t32vTNkwsRHUX7IIn\n' +
'QFF+FzTIEtHHVTRlnkqNR2YUk1kqcpZCZWHfahi5W2d/WkXlFNdvyyFH4W8L\n' +
'd03FGhOyXbWwU3xicBz5mSBpIFaaSCXl1SdgJDPXLSk3b65EEOjCOaiz85xC\n' +
'G+6SW4RUzCGSDcOd9F2EXvvY5H9LgQNi1jjlZn6JrPTPJTJ+wXZXzcZmtOXG\n' +
'EKcwvPbbPY9wd+gavRSOgYLYn5xoZQW/o3hW7AQlbC5Kj6js48Z0HQ==\n' +
'=qLiJ\n' +
'-----END PGP SIGNATURE-----\n',
timestamp: 1669831523684,
fromCAIP10: 'eip155:0x0F1AAC847B5720DDf01BFa07B7a8Ee641690816d',
messageType: 'Text',
messageContent: 'Hi',
encryptedSecret:
'-----BEGIN PGP MESSAGE-----\n' +
'\n' +
'wcBMA1fn1CNqxQ7nAQgArlo75qe54WerfRKFv1+F9j4NRMvSTgUztvIe51eg\n' +
'd5MVuj6RYxKERr2bTuBt5cMDJMlNuTnBBkPe4L8+SlsI46L9wmXV9xLoZq1a\n' +
'94JdxD98RGMF99Jde/3hC/X6GS1yVqPpKPKdWx/tkOPeyqeO/wFF7kqShgIi\n' +
'Wgq6hGz1fzD3GZhKGY0VSLuC3s0aUy/qw5En1Xd0uX0jdXBl07IIj8p1G2zx\n' +
'9BuVlksSK34yvIc0RQfCeRadMHkxbA0Hyj31Wrr+Y310YLTppL0s5bQR9APL\n' +
'WHsIztJ1fHTnXsPhnA7YG0SQpHTyJhuX3rgBjxGrvbZBArmZ+R/Pq9IkOkJe\n' +
'z8HATAMOsbaZjGN5JwEH/jYjLN6AFRWeaB5CSBSAF+CvHsUgadGmxTdSHBM6\n' +
'LM9rfGg/MCnpRBuHckA0NNZh+wepq6TDA54ZopsdP14gHj4MKCdfqZr86Jft\n' +
'ldtjeSgPTFEEJxPMJ4/Z3UeFU9rvOgfxX6l0eHWS0MYwJ3sVYvSyqqHir1K5\n' +
'TRdEIgtQ3NvLTKkX4bKTSU+SInrvDA+wsc2BcBsbgNhRiGb+XYrbqXBshL1a\n' +
'lIdpnomkAQgOZMO2n347uURYoruH3OtFeNABJ9D/nEU+LdhDOPGZPefvPBc5\n' +
'BxK4ExKZ2Wo/TZw8lgC53uqOljsGV63Hp71LkyesKWu5/+vdVrYx/vU63shh\n' +
'x/TSQAEiaFYEfkWSOthtH0nrJHhkY7FWgjp/1bj/J4J9HCQrVtt2WlQfhowZ\n' +
'ILxhKk/vep0sJviM3SfJ4hPtoYpZESc=\n' +
'=43Ta\n' +
'-----END PGP MESSAGE-----\n',
},
];
Param | Type | Remarks |
---|---|---|
fromCAIP10 | string | sender address |
toCAIP10 | string | receiver address |
fromDID | string | sender did |
toDID | string | receiver did |
messageType | string | message type |
messageContent | string | message content |
signature | string | signature of the message |
sigType | string | signature type |
link | string | content identifier of the previous messages |
timestamp | number | timestamp of the message |
encType | string | encryption type |
encryptedSecret | string | encrypted secret |
Fetch chat history API
Fetches historical messages between your instantiated user and any other user (or group).
- js
// userAlice.chat.history(recipient. {options?})
const aliceChatHistoryWithBob = await userAlice.chat.history(bobAddress);
Fetch chat history parameters
Param | Type | Subtype | Default | Remarks |
---|---|---|---|---|
recipient | string | - | - | Target DID ( For Group Chats target is chatId, for 1 To 1 chat target is Push DID ) |
options | object w | - | - | Optional Configuration for fetching chat history |
- | options.reference | string or null | - | Refers to message refernce hash from where the previous messages are fetched. If null, messages are fetched from latest message |
- | options.limit | number | 10 | No. of messages to be loaded |
Note: Parameters
in this style
are mandatory.
Expected response
[
{
link: 'bafyreibfikschwlfi275hr7lrfqgj73mf6absailazh4sm5fwihspy2ky4',
toDID: 'eip155:0xb340E384FC4549591bc7994b0f90074753dEC72a',
encType: 'pgp',
fromDID: 'eip155:0x0F1AAC847B5720DDf01BFa07B7a8Ee641690816d',
sigType: 'pgp',
toCAIP10: 'eip155:0xb340E384FC4549591bc7994b0f90074753dEC72a',
signature:
'-----BEGIN PGP SIGNATURE-----\n' +
'\n' +
'wsBzBAEBCAAnBQJjh5tjCRBaJmgmByp5FRYhBJC23yBJT2d/pTAID1omaCYH\n' +
'KnkVAAAZmwf/buPLw6caSZmYnw6D3/p6HF1kWlkGUOTP4RasaU/6dkeDaZs9\n' +
'SJlz2wC8oOpBGWHMJ/5n3ZWmU71E6U7IKIY793MyIv5t32vTNkwsRHUX7IIn\n' +
'QFF+FzTIEtHHVTRlnkqNR2YUk1kqcpZCZWHfahi5W2d/WkXlFNdvyyFH4W8L\n' +
'd03FGhOyXbWwU3xicBz5mSBpIFaaSCXl1SdgJDPXLSk3b65EEOjCOaiz85xC\n' +
'G+6SW4RUzCGSDcOd9F2EXvvY5H9LgQNi1jjlZn6JrPTPJTJ+wXZXzcZmtOXG\n' +
'EKcwvPbbPY9wd+gavRSOgYLYn5xoZQW/o3hW7AQlbC5Kj6js48Z0HQ==\n' +
'=qLiJ\n' +
'-----END PGP SIGNATURE-----\n',
timestamp: 1669831523684,
fromCAIP10: 'eip155:0x0F1AAC847B5720DDf01BFa07B7a8Ee641690816d',
messageType: 'Text',
messageContent: 'Hi',
encryptedSecret:
'-----BEGIN PGP MESSAGE-----\n' +
'\n' +
'wcBMA1fn1CNqxQ7nAQgArlo75qe54WerfRKFv1+F9j4NRMvSTgUztvIe51eg\n' +
'd5MVuj6RYxKERr2bTuBt5cMDJMlNuTnBBkPe4L8+SlsI46L9wmXV9xLoZq1a\n' +
'94JdxD98RGMF99Jde/3hC/X6GS1yVqPpKPKdWx/tkOPeyqeO/wFF7kqShgIi\n' +
'Wgq6hGz1fzD3GZhKGY0VSLuC3s0aUy/qw5En1Xd0uX0jdXBl07IIj8p1G2zx\n' +
'9BuVlksSK34yvIc0RQfCeRadMHkxbA0Hyj31Wrr+Y310YLTppL0s5bQR9APL\n' +
'WHsIztJ1fHTnXsPhnA7YG0SQpHTyJhuX3rgBjxGrvbZBArmZ+R/Pq9IkOkJe\n' +
'z8HATAMOsbaZjGN5JwEH/jYjLN6AFRWeaB5CSBSAF+CvHsUgadGmxTdSHBM6\n' +
'LM9rfGg/MCnpRBuHckA0NNZh+wepq6TDA54ZopsdP14gHj4MKCdfqZr86Jft\n' +
'ldtjeSgPTFEEJxPMJ4/Z3UeFU9rvOgfxX6l0eHWS0MYwJ3sVYvSyqqHir1K5\n' +
'TRdEIgtQ3NvLTKkX4bKTSU+SInrvDA+wsc2BcBsbgNhRiGb+XYrbqXBshL1a\n' +
'lIdpnomkAQgOZMO2n347uURYoruH3OtFeNABJ9D/nEU+LdhDOPGZPefvPBc5\n' +
'BxK4ExKZ2Wo/TZw8lgC53uqOljsGV63Hp71LkyesKWu5/+vdVrYx/vU63shh\n' +
'x/TSQAEiaFYEfkWSOthtH0nrJHhkY7FWgjp/1bj/J4J9HCQrVtt2WlQfhowZ\n' +
'ILxhKk/vep0sJviM3SfJ4hPtoYpZESc=\n' +
'=43Ta\n' +
'-----END PGP MESSAGE-----\n',
},
{
link: null,
toDID: 'eip155:0x0F1AAC847B5720DDf01BFa07B7a8Ee641690816d',
encType: 'PlainText',
fromDID: 'eip155:0xb340E384FC4549591bc7994b0f90074753dEC72a',
sigType: '',
toCAIP10: 'eip155:0x0F1AAC847B5720DDf01BFa07B7a8Ee641690816d',
signature: '',
timestamp: 1669831499724,
fromCAIP10: 'eip155:0xb340E384FC4549591bc7994b0f90074753dEC72a',
messageType: 'Text',
messageContent: 'Hey Fabio!',
encryptedSecret: '',
},
];
Param | Type | Remarks |
---|---|---|
fromCAIP10 | string | sender address |
toCAIP10 | string | receiver address |
fromDID | string | sender did |
toDID | string | receiver did |
messageType | string | message type |
messageContent | string | message content |
signature | string | signature of the message |
sigType | string | signature type |
link | string | content identifier of the previous messages |
timestamp | number | timestamp of the message |
encType | string | encryption type |
encryptedSecret | string | encrypted secret |