Parties¶
The party namespace provides methods to manage wallet parties on the Canton Network. In v1, the party namespace replaces the stateful party management from v0.
Availability¶
The party namespace is always available as part of the basic SDK interface. It’s initialized automatically when you create an SDK instance and doesn’t require additional configuration via extend().
import { SDK, localNetStaticConfig } from '@canton-network/wallet-sdk'
export default async function () {
const sdk = await SDK.create({
auth: global.TOKEN_PROVIDER_CONFIG_DEFAULT,
ledgerClientUrl: localNetStaticConfig.LOCALNET_APP_USER_LEDGER_URL,
})
// party namespace is immediately available
await sdk.party.list()
}
Key changes from v0 to v1¶
v0 used a stateful approach where you set a party context once with sdk.setPartyId(). All subsequent operations acted on that party.
v1 uses an explicit approach where you pass the party ID to each operation. This enables:
Thread-safe concurrent operations
Multi-party transactions within the same application
Clearer code intent
Refer to Preparing and Signing Transactions Using External Party for more information.
Party types¶
Internal parties
The below example demonstrates the full usage of the feature:
External parties
An external party uses an external key pair for signing. You provide the public key, and the SDK generates the topology. You then sign the topology transaction with your private key and execute it on the ledger.
Note
We recommend always providing a partyHint when creating a party. Refer to Choosing a party hint for more details.
Listing parties¶
This method returns all parties where the user has CanActAs, CanReadAs, or CanExecuteAs rights. If the user has admin rights, all local parties are returned.
Offline signing workflow¶
Migration reference¶
v0 method |
v1 method |
|---|---|
|
Pass |
|
|
|
|
|
|
|
|
See also¶
Wallet SDK Configuration - SDK configuration
Preparing and Signing Transactions Using External Party - Transaction lifecycle