Skip to content
Discussions/App Development/PartyIdHint and displayName in Canton 3.x?Forum ↗

PartyIdHint and displayName in Canton 3.x?

App Development3 posts113 views2 likesLast activity May 2025
WA
WallaceKellyOP
May 2025

In the Canton 3.x snapshots, I’ve noticed some changes (from Canton 2.x) related to PartyIdHint and displayName. Additionally, the /v2/parties endpoint introduces a new localMetadata field.

For example, the following Daml Script…

  alice <- allocatePartyWithHint "Alice" (PartyIdHint "Alice")

…results in 2.10.0, /v1/parties:

{
   "displayName": "Alice",
   "identifier": "Alice::1220ecc4fb65988e736b61c06fb8082d586a66365e643514c28945e79018181b9c98",
   "isLocal": true
}

In contrast, the same Daml Script in 3.3.0-snapshot.20250319.0, /v1/parties:

{
   "identifier": "Alice::1220ecc4fb65988e736b61c06fb8082d586a66365e643514c28945e79018181b9c98",
   "isLocal": true
}

And the following /v2/parties

{
  "party": "Alice::12209ae25620faea9a248780009170e7da367f0736d13e6e86a081151d10c7be89c8",
  "isLocal": true,
  "localMetadata": {
      "resourceVersion": "0",
      "annotations": {}
  },
  "identityProviderId": ""
}

What is the plan for PartyIdHint and displayName in Canton 3.x?

WA
WallaceKelly
May 2025

On a related note, the following Daml Script:

  alice <- allocatePartyWithHint "Alice Cooper" (PartyIdHint "Alice")

Results in 2.10.0:

{
  "displayName": "Alice Cooper"
  "identifier": "Alice::1220d00714b4f9d734e19ad9dbeff0a22bd8e42eee3890fa963e139bb0ffef00fc2a",
  "isLocal": true
}

Results in 3.3.0-snapshot.20250319.0:

Requested name 'Alice Cooper' cannot be different from id hint 'Alice'
MA
Marcin_Ziolek
May 2025

The display_name functionality has been folded into the more general local_metadata concept. It allows for a more complete and elaborate annotation of the parties with additional name:value pairs. In a grpcurl request, you can do:

grpcurl -d '
 {"party_id_hint": "Max",
  "local_metadata":{
    "annotations":{
      "display_name":"Maximus Decimus Meridius",
      "profession":"general"
    }
   } 
 }' 
 --plaintext 
 localhost:5001
 com.daml.ledger.api.v2.admin.PartyManagementService/AllocateParty

Similarly in the json

curl -d '{
  "partyIdHint":"Lucilla",
  "identityProviderId":"", 
  "synchronizerId":"", 
  "localMetadata":{
    "resourceVersion":"", 
    "annotations":{
      "display_name":"Annia Aurelia Galeria Lucilla",
      "profession":"empress"
    }
  }
}' 
-H "Content-Type: application/json" 
-X POST 
localhost:8080/v2/parties
← Back to Discussions