What are the allowed characters and max length for DAML Party literals/names?

Hi team,

When using the SDK daml ledger allocate-parties ... command, what are the permitted characters?

I know ^ is not, and gives me daml-helper: GRPCIOBadStatusCode StatusInternal (StatusDetails {unStatusDetails = "non expected character 0x5e in \"^\""}), what is the full list of allowed chars please, and max length of the Party?

Thanks,

Viv

2 Likes

You can find this kind of information in the DAML-LF specification. For party names, the relevant part is

PartyIdString  ∈  [a-zA-Z0-9:-_ ]{1,255}

So the length is between 1 and 255 and apart from digits, upper and lowercase ascii letters you can use :, -, _ and spaces.

5 Likes

At some point, parties were updated to consist of two parts – the name (aka the party hint) and the namespace. See Maximum length of the parts of a Daml Party Id?

Here is a regex to validate the party name (aka wallet address):

^(?<id>[A-Za-z0-9_-]{1,185})::(?<ns>1220[a-f0-9]{64})$

https://regex101.com/r/3t6yCA/1

1 Like