Contact
19 min
address book endpoints manage organization scoped contacts used as transaction parties contact creation and updates can require approval before the resulting contact is usable list contacts get /api/external/contacts/?limit={limit}\&cursor={cursor}&{filters} query parameters parameter type required description limit number no requested page size sdk default 20 cursor string | null no cursor for the next page filters record\<string, string> no contact filters, for example name , status , or externalid when supported request example { "query" { "limit" 20, "cursor" null, "status" "pending" } } response interface contactlistresponse { results contact\[]; nextcursor? string | null; hasnext? boolean; } json example { "results" \[ { "id" "contact 123", "orgid" "org 456", "suborgid" "sub org 123", "name" "operations wallet", "blockchain" "ethereum", "address" "0xabc1234567890abcdef1234567890abcdef1234", "status" "pending", "tags" \[ "vendor", "priority" ], "createdbyid" "api user 123", "externalid" "vendor 1001", "assetlist" \[ "usdc", "eth" ], "createdat" "2026 08 04t10 30 00z", "updatedat" "2026 08 04t10 30 00z", "isdeleted" false } ], "nextcursor" "eyjpzci6imnvbnrhy3rfmtizin0=", "hasnext" true } javascript sdk getcontacts( params? record\<string, string>, limit? number, cursor? string | null, ) promise\<contactlistresponse> retrieve a contact get /api/external/contacts/{contactid}/ request example { "path" { "contactid" "contact 123" } } response { "id" "contact 123", "orgid" "org 456", "suborgid" "sub org 123", "name" "operations wallet", "blockchain" "ethereum", "address" "0xabc1234567890abcdef1234567890abcdef1234", "status" "pending", "tags" \[ "vendor", "priority" ], "createdbyid" "api user 123", "externalid" "vendor 1001", "assetlist" \[ "usdc", "eth" ], "createdat" "2026 08 04t10 30 00z", "updatedat" "2026 08 04t10 30 00z", "isdeleted" false } javascript sdk getcontactbyid(contactid string) promise\<contact> create a contact post /api/external/contacts/ rest request body { "name" "operations wallet", "suborgid" "sub org 123", "address" "0xabc123 ", "blockchain" "ethereum", "tags" \["vendor", "priority"], "externalid" "vendor 1001", "assetlist" \["usdc", "eth"], "contactgroupids" \["contact group 123"] } field type required description name string yes contact display name suborgid string no sub organization that owns the contact address string yes destination address on the selected chain blockchain string yes rest field the sdk accepts this as chain tags string\[] no searchable contact tags externalid string no client controlled reference assetlist string\[] no assets permitted for the contact the sdk serializes an omitted value as an empty array contactgroupids string\[] no organization scoped contact groups to attach response { "id" "contact 123", "orgid" "org 456", "suborgid" "sub org 123", "name" "operations wallet", "blockchain" "ethereum", "address" "0xabc123 ", "status" "pending", "tags" \["vendor", "priority"], "createdbyid" "api user 123", "externalid" "vendor 1001", "assetlist" \["usdc", "eth"], "createdat" "2026 08 04t10 30 00z", "updatedat" "2026 08 04t10 30 00z", "isdeleted" false } javascript sdk interface createcontactrequest { name string; suborgid? string; address string; chain string; tags? string\[]; externalid? string; assetlist? string\[]; contactgroupids? string\[]; } createcontact(request createcontactrequest) promise\<contact> approval flow const contact = await apiclient createcontact(request); const approved = await apiclient createcontactapproval(contact); // convenience helper create, then approve const approvedcontact = await apiclient createcontactwithapproval(request); update contact asset and group assignments put /api/external/contacts/{contactid}/ the current sdk update contract changes only assetlist and contactgroupids it does not rename the contact or replace its address rest request body { "assetlist" \["usdc"], "contactgroupids" \["contact group 123"] } response { "id" "contact 123", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "blockchain" "ethereum", "tags" \[ "vendor", "priority" ], "externalid" "vendor 1001", "assetlist" \[ "usdc" ] } javascript sdk interface updatecontactrequest { id string; assetlist? string\[]; contactgroupids? string\[]; } updatecontact(request updatecontactrequest) promise\<updatecontactresponse> updatecontactwithapproval(request updatecontactrequest) promise\<contact>