# What's the best way to get a Canton participant's fingerprint/namespace?

**URL:** <https://forum.canton.network/t/whats-the-best-way-to-get-a-canton-participants-fingerprint-namespace/4943>\
**Category:** App Development\
**Tags:** canton\
**Created:** [July 20, 2022, 7:45pm UTC](https://forum.canton.network/t/whats-the-best-way-to-get-a-canton-participants-fingerprint-namespace/4943 "2022-07-20T19:45:37Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel\_Porter](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/daniel_porter/32/1171_2.png) [@Daniel\_Porter](https://forum.canton.network/u/Daniel_Porter)\
**Post date:** [July 20, 2022, 7:45pm UTC](https://forum.canton.network/t/whats-the-best-way-to-get-a-canton-participants-fingerprint-namespace/4943/1 "2022-07-20T19:45:38Z")

</div>

When you allocate a party in Canton, it returns as `partyName::fingerprint`. As an actor outside of the participant, I’d like to figure out the participant’s fingerprint so I can know, prior to allocation, what my party’s name will be. Is that possible?

---

<div class="post-metadata">

**Author:** ![cocreature](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/cocreature/32/36_2.png) [@cocreature](https://forum.canton.network/u/cocreature)\
**Post date:** [July 20, 2022, 7:51pm UTC](https://forum.canton.network/t/whats-the-best-way-to-get-a-canton-participants-fingerprint-namespace/4943/2 "2022-07-20T19:51:27Z")

</div>

The best option I’m aware of is to query the participant id and use the namespace from that, e.g., see this grpcurl session:

```haskell
moritz@right-adjunct ~/foobar> grpcurl -plaintext localhost:6865 com.daml.ledger.api.v1.admin.PartyManagementService/GetParticipantId
{
  "participant_id": "sandbox::1220ac922ccc5e275ccc65d61b37e4f31897f7504b7bf9a0d204956dc6798a682889"
}
moritz@right-adjunct ~/foobar [1]> grpcurl -plaintext -d '{"party_id_hint": "alice"}' localhost:6865 com.daml.ledger.api.v1.admin.PartyManagementService/AllocateParty
{
  "party_details": {
    "party": "alice::1220ac922ccc5e275ccc65d61b37e4f31897f7504b7bf9a0d204956dc6798a682889",
    "is_local": true
  }
}

```

---

<div class="post-metadata">

**Author:** ![Stephen](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/stephen/32/102_2.png) [@Stephen](https://forum.canton.network/u/Stephen)\
**Post date:** [July 20, 2022, 8:55pm UTC](https://forum.canton.network/t/whats-the-best-way-to-get-a-canton-participants-fingerprint-namespace/4943/3 "2022-07-20T20:55:23Z")

</div>

You can guess this if you like, but the ledger API doesn’t permit you to make this assumption; the produced party ID “is implementation-specific”.

I don’t know whether Canton provides stricter guarantees, if you intend for your allocator to only work with Canton.

---

<div class="post-metadata">

**Author:** ![stefanobaghino-da](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/stefanobaghino-da/32/7057_2.png) [@stefanobaghino-da](https://forum.canton.network/u/stefanobaghino-da)\
**Post date:** [July 21, 2022, 7:30am UTC](https://forum.canton.network/t/whats-the-best-way-to-get-a-canton-participants-fingerprint-namespace/4943/4 "2022-07-21T07:30:15Z")

</div>

> [@Stephen](#):
>
> You can guess this if you like, but the ledger API doesn’t permit you to make this assumption; the produced party ID “is implementation-specific”.

+1 to this!

> [@Stephen](#):
>
> I don’t know whether Canton provides stricter guarantees, if you intend for your allocator to only work with Canton.

Regardless, Canton could decide to change this between versions, so only Ledger API guarantees should be taken as such. I think the way to think of party IDs is as opaque handles, which is what they are as per Ledger API.
