# Sigilry > Canton Network dApp SDK for CIP-0103 wallet connections, with TypeScript providers, React hooks, and Send Connect integration guides. Sigilry is a [CIP-103](https://github.com/canton-foundation/cips/blob/main/cip-0103/cip-0103.md)-compliant dApp connectivity library for Canton Network. CIP-103 is the approved Canton standard for dApp ↔ wallet JSON-RPC. Sigilry implements the CIP-103 dApp API as typed TypeScript clients and servers, ships Zod schemas generated from the CIP-103 OpenRPC spec, and exposes React Query hooks. Packages: - **@sigilry/dapp** (3.x): CIP-103 provider interface (`SpliceProvider`), RPC client/server, message schemas, provider discovery, and the `WindowTransport` and `WalletConnectTransport` transports. - **@sigilry/react** (3.x): `CantonReactProvider` and React Query hooks such as `useConnect`, `useAccounts`, `useLedgerApi`, and `useDiscovery`. - **@sigilry/canton-json-api** (1.x): Canton JSON Ledger API v2 types and Zod schemas for `ledgerApi` bodies. - **@sigilry/cli**: TypeScript codegen from DAML DARs. - **@sigilry/splice-dars**: Vendored Splice DAR files with typed path exports. Integration notes: - Wallet extensions inject the provider at `window.canton`. Import `@sigilry/dapp/browser-globals` to type it; it is optional because no wallet may be installed. - Code samples on package, guide, and concept pages are compiled against the current packages in CI. Migration guides show historical APIs on purpose. - Each page is available as Markdown by appending `.md` to its URL or by requesting it with `Accept: text/markdown`. - The per-method CIP-103 surface, including push events, is in [CIP-103 Conformance](concepts/cip-103-conformance/). Full signatures are in the [API Reference](api-reference/readme/). ## Documentation Sets - [Abridged documentation](llms-small.txt): a compact version of the documentation for Sigilry, with non-essential content removed - [Complete documentation](llms-full.txt): the full documentation for Sigilry ## Pages - [Connect Canton dApps to wallets](/index.md): A typed CIP-103 provider, RPC client, and React hooks for Canton Network, built and used in production by Send. - [Demo App](/getting-started/demo-app.md): A guided walkthrough of the Sigilry demo app and how it mirrors a real Canton dApp flow. - [Introduction](/getting-started/introduction.md): What Sigilry is, when to use it, and how the pieces fit. - [Quick Start](/getting-started/quick-start.md): Go from zero to a working connection in under 10 minutes. - [Read holdings](/guides/read-holdings.md): Query Canton token holdings through CIP-0103 ledgerApi using a ledger-end snapshot and the Splice Holding interface filter. - [Connect to Send Connect testnet](/guides/send-connect-testnet.md): Install the stable Sigilry 3.x SDK, connect the Send Connect extension to Canton testnet, and check the active network. - [Verify signMessage](/guides/verify-sign-message.md): Verify Send Connect's hex DER ECDSA P-256 signatures with WebCrypto and a base64 SPKI public key, including delegated signing keys. - [@sigilry/canton-json-api](/packages/canton-json-api.md): Generated Canton JSON API v2 types and Zod schemas for typed ledgerApi requests and responses. - [@sigilry/cli](/packages/cli.md): CLI and programmatic API for generating TypeScript from DAML DARs. - [@sigilry/dapp](/packages/dapp.md): Core provider, RPC client and server, message schemas, and transports. - [@sigilry/react](/packages/react.md): React Query hooks and context for Canton wallet integration. - [@sigilry/splice-dars](/packages/splice-dars.md): Vendored Splice DAR files with typed path exports for Canton Network development. - [API Reference](/api.md): Where to find the generated TypeScript API reference and the OpenRPC schema. - [Choosing a Canton dApp SDK](/compare/canton-dapp-sdks.md): A sourced comparison of Sigilry, the Canton dApp SDK, PartyLayer, and the Console Wallet dApp SDK. - [Architecture](/concepts/architecture.md): How Sigilry components fit together across dApp and wallet. - [CIP-103 Conformance](/concepts/cip-103-conformance.md): How Sigilry conforms to CIP-103, the Canton Network dApp API standard. - [Provider Discovery](/concepts/discovery.md): How dApps discover Send Connect and other Canton wallet providers, and how a discovered provider delivers CIP-103 push events. - [RPC Protocol](/concepts/rpc-protocol.md): JSON-RPC method contract, validation, and error handling. - [Transports](/concepts/transports.md): The transport layer that moves JSON-RPC between dApps and wallets. - [Migrations](/migrations.md): Release cadence, versioning policy, and per-version migration guides for Sigilry packages. - [1.x → 2.0 migration](/migrations/v1-to-v2.md): Breaking changes in @sigilry/dapp and @sigilry/react 2.0 — CIP-0103 alignment, EIP-6963-style discovery, ledgerApi contract rewrite. - [2.x → 3.0](/migrations/v2-to-v3.md): Moving from the @sigilry/dapp / @sigilry/react 2.x pre-release line to the stable 3.x line — push events, discovery, and the one breaking change for wallet implementers. - [defineConfig](/api-reference/cli/src/functions/defineConfig.md) - [generateTypes](/api-reference/cli/src/functions/generateTypes.md) - [loadConfig](/api-reference/cli/src/functions/loadConfig.md) - [resolveConfig](/api-reference/cli/src/functions/resolveConfig.md) - [watchDars](/api-reference/cli/src/functions/watchDars.md) - [SigilryConfig](/api-reference/cli/src/interfaces/SigilryConfig.md) - [cli/src](/api-reference/cli/src/readme.md) - [defaultConfig](/api-reference/cli/src/variables/defaultConfig.md) - [RpcClientError](/api-reference/dapp/src/classes/RpcClientError.md) - [SpliceProviderBase](/api-reference/dapp/src/classes/SpliceProviderBase.md) - [WalletConnectTransport](/api-reference/dapp/src/classes/WalletConnectTransport.md) - [WindowTransport](/api-reference/dapp/src/classes/WindowTransport.md) - [announceProvider](/api-reference/dapp/src/discovery/functions/announceProvider.md) - [createDiscoveryStore](/api-reference/dapp/src/discovery/functions/createDiscoveryStore.md) - [createProvider](/api-reference/dapp/src/discovery/functions/createProvider.md) - [requestProviders](/api-reference/dapp/src/discovery/functions/requestProviders.md) - [dapp/src/discovery](/api-reference/dapp/src/discovery/readme.md) - [DiscoveredWallet](/api-reference/dapp/src/discovery/type-aliases/DiscoveredWallet.md) - [DiscoveryStore](/api-reference/dapp/src/discovery/type-aliases/DiscoveryStore.md) - [DiscoveryStoreListener](/api-reference/dapp/src/discovery/type-aliases/DiscoveryStoreListener.md) - [DiscoveryStoreMeta](/api-reference/dapp/src/discovery/type-aliases/DiscoveryStoreMeta.md) - [Listener](/api-reference/dapp/src/discovery/type-aliases/Listener.md) - [SpliceAnnounceDetail](/api-reference/dapp/src/discovery/type-aliases/SpliceAnnounceDetail.md) - [SpliceProviderInfo](/api-reference/dapp/src/discovery/type-aliases/SpliceProviderInfo.md) - [Store](/api-reference/dapp/src/discovery/type-aliases/Store.md) - [WalletEvent](/api-reference/dapp/src/enumerations/WalletEvent.md) - [createCantonClient](/api-reference/dapp/src/functions/createCantonClient.md) - [createCantonServer](/api-reference/dapp/src/functions/createCantonServer.md) - [createRpcError](/api-reference/dapp/src/functions/createRpcError.md) - [createStubHandlers](/api-reference/dapp/src/functions/createStubHandlers.md) - [isApprovalBridgeMessage](/api-reference/dapp/src/functions/isApprovalBridgeMessage.md) - [isRpcError](/api-reference/dapp/src/functions/isRpcError.md) - [isRuntimeMessage](/api-reference/dapp/src/functions/isRuntimeMessage.md) - [isSpliceMessage](/api-reference/dapp/src/functions/isSpliceMessage.md) - [isSpliceMessageEvent](/api-reference/dapp/src/functions/isSpliceMessageEvent.md) - [jsonRpcRequest](/api-reference/dapp/src/functions/jsonRpcRequest.md) - [jsonRpcResponse](/api-reference/dapp/src/functions/jsonRpcResponse.md) - [rpcError](/api-reference/dapp/src/functions/rpcError.md) - [BidirectionalTransport](/api-reference/dapp/src/interfaces/BidirectionalTransport.md) - [CantonClient](/api-reference/dapp/src/interfaces/CantonClient.md) - [CantonServer](/api-reference/dapp/src/interfaces/CantonServer.md) - [CantonServerHandlers](/api-reference/dapp/src/interfaces/CantonServerHandlers.md) - [ExtendedSpliceProvider](/api-reference/dapp/src/interfaces/ExtendedSpliceProvider.md) - [RpcTransport](/api-reference/dapp/src/interfaces/RpcTransport.md) - [SpliceProvider](/api-reference/dapp/src/interfaces/SpliceProvider.md) - [TransportOptions](/api-reference/dapp/src/interfaces/TransportOptions.md) - [WalletConnectTransportConfig](/api-reference/dapp/src/interfaces/WalletConnectTransportConfig.md) - [dapp/src](/api-reference/dapp/src/readme.md) - [AnyTypedRequestPayload](/api-reference/dapp/src/type-aliases/AnyTypedRequestPayload.md) - [ApprovalBridgeMessage](/api-reference/dapp/src/type-aliases/ApprovalBridgeMessage.md) - [ApprovalRequestData](/api-reference/dapp/src/type-aliases/ApprovalRequestData.md) - [ApprovalResult](/api-reference/dapp/src/type-aliases/ApprovalResult.md) - [ErrorResponse](/api-reference/dapp/src/type-aliases/ErrorResponse.md) - [EventListener](/api-reference/dapp/src/type-aliases/EventListener.md) - [JsonRpcMeta](/api-reference/dapp/src/type-aliases/JsonRpcMeta.md) - [JsonRpcRequest](/api-reference/dapp/src/type-aliases/JsonRpcRequest.md) - [JsonRpcResponse](/api-reference/dapp/src/type-aliases/JsonRpcResponse.md) - [NotificationListener](/api-reference/dapp/src/type-aliases/NotificationListener.md) - [NotificationMeta](/api-reference/dapp/src/type-aliases/NotificationMeta.md) - [RequestPayload](/api-reference/dapp/src/type-aliases/RequestPayload.md) - [ResponsePayload](/api-reference/dapp/src/type-aliases/ResponsePayload.md) - [RpcError](/api-reference/dapp/src/type-aliases/RpcError.md) - [RpcErrorCode](/api-reference/dapp/src/type-aliases/RpcErrorCode.md) - [RpcMethodName](/api-reference/dapp/src/type-aliases/RpcMethodName.md) - [RuntimeMessage](/api-reference/dapp/src/type-aliases/RuntimeMessage.md) - [SpliceMessage](/api-reference/dapp/src/type-aliases/SpliceMessage.md) - [SpliceMessageEvent](/api-reference/dapp/src/type-aliases/SpliceMessageEvent.md) - [SpliceWalletExtAckMessage](/api-reference/dapp/src/type-aliases/SpliceWalletExtAckMessage.md) - [SpliceWalletExtOpenMessage](/api-reference/dapp/src/type-aliases/SpliceWalletExtOpenMessage.md) - [SpliceWalletExtReadyMessage](/api-reference/dapp/src/type-aliases/SpliceWalletExtReadyMessage.md) - [SpliceWalletIdpAuthSuccessMessage](/api-reference/dapp/src/type-aliases/SpliceWalletIdpAuthSuccessMessage.md) - [SpliceWalletRequestMessage](/api-reference/dapp/src/type-aliases/SpliceWalletRequestMessage.md) - [SpliceWalletResponseMessage](/api-reference/dapp/src/type-aliases/SpliceWalletResponseMessage.md) - [SuccessResponse](/api-reference/dapp/src/type-aliases/SuccessResponse.md) - [TypedRequestFn](/api-reference/dapp/src/type-aliases/TypedRequestFn.md) - [TypedRequestPayload](/api-reference/dapp/src/type-aliases/TypedRequestPayload.md) - [TypedResult](/api-reference/dapp/src/type-aliases/TypedResult.md) - [CANTON_DAPP_API_VERSION](/api-reference/dapp/src/variables/CANTON_DAPP_API_VERSION.md) - [DEFAULT_TRANSPORT_OPTIONS](/api-reference/dapp/src/variables/DEFAULT_TRANSPORT_OPTIONS.md) - [ErrorResponse](/api-reference/dapp/src/variables/ErrorResponse.md) - [JsonRpcMeta](/api-reference/dapp/src/variables/JsonRpcMeta.md) - [JsonRpcRequest](/api-reference/dapp/src/variables/JsonRpcRequest.md) - [JsonRpcResponse](/api-reference/dapp/src/variables/JsonRpcResponse.md) - [RequestPayload](/api-reference/dapp/src/variables/RequestPayload.md) - [ResponsePayload](/api-reference/dapp/src/variables/ResponsePayload.md) - [RpcError](/api-reference/dapp/src/variables/RpcError.md) - [RpcErrorCode](/api-reference/dapp/src/variables/RpcErrorCode.md) - [RpcErrorMessage](/api-reference/dapp/src/variables/RpcErrorMessage.md) - [SpliceMessage](/api-reference/dapp/src/variables/SpliceMessage.md) - [SpliceWalletExtAckMessage](/api-reference/dapp/src/variables/SpliceWalletExtAckMessage.md) - [SpliceWalletExtOpenMessage](/api-reference/dapp/src/variables/SpliceWalletExtOpenMessage.md) - [SpliceWalletExtReadyMessage](/api-reference/dapp/src/variables/SpliceWalletExtReadyMessage.md) - [SpliceWalletIdpAuthSuccessMessage](/api-reference/dapp/src/variables/SpliceWalletIdpAuthSuccessMessage.md) - [SpliceWalletRequestMessage](/api-reference/dapp/src/variables/SpliceWalletRequestMessage.md) - [SpliceWalletResponseMessage](/api-reference/dapp/src/variables/SpliceWalletResponseMessage.md) - [SuccessResponse](/api-reference/dapp/src/variables/SuccessResponse.md) - [applyPrunedOffsetFloor](/api-reference/react/src/functions/applyPrunedOffsetFloor.md) - [CantonReactProvider](/api-reference/react/src/functions/CantonReactProvider.md) - [createWalletConnectProvider](/api-reference/react/src/functions/createWalletConnectProvider.md) - [deriveRecentBeginExclusive](/api-reference/react/src/functions/deriveRecentBeginExclusive.md) - [isMaximumListElementsError](/api-reference/react/src/functions/isMaximumListElementsError.md) - [parseError](/api-reference/react/src/functions/parseError.md) - [parseJwt](/api-reference/react/src/functions/parseJwt.md) - [parseLatestPrunedOffsetResponse](/api-reference/react/src/functions/parseLatestPrunedOffsetResponse.md) - [parseLedgerEndResponse](/api-reference/react/src/functions/parseLedgerEndResponse.md) - [parsePartyId](/api-reference/react/src/functions/parsePartyId.md) - [useAccounts](/api-reference/react/src/functions/useAccounts.md) - [useActiveAccount](/api-reference/react/src/functions/useActiveAccount.md) - [useActiveContracts](/api-reference/react/src/functions/useActiveContracts.md) - [useCanton](/api-reference/react/src/functions/useCanton.md) - [useCantonProvider](/api-reference/react/src/functions/useCantonProvider.md) - [useConnect](/api-reference/react/src/functions/useConnect.md) - [useContractStream](/api-reference/react/src/functions/useContractStream.md) - [useDisconnect](/api-reference/react/src/functions/useDisconnect.md) - [useDiscovery](/api-reference/react/src/functions/useDiscovery.md) - [useExerciseChoice](/api-reference/react/src/functions/useExerciseChoice.md) - [useLedgerApi](/api-reference/react/src/functions/useLedgerApi.md) - [useLedgerEnd](/api-reference/react/src/functions/useLedgerEnd.md) - [useLedgerUpdates](/api-reference/react/src/functions/useLedgerUpdates.md) - [useSession](/api-reference/react/src/functions/useSession.md) - [useSignMessage](/api-reference/react/src/functions/useSignMessage.md) - [useSubmitCommand](/api-reference/react/src/functions/useSubmitCommand.md) - [WalletPicker](/api-reference/react/src/functions/WalletPicker.md) - [ActiveContract](/api-reference/react/src/interfaces/ActiveContract.md) - [ActiveContractsResponse](/api-reference/react/src/interfaces/ActiveContractsResponse.md) - [ArchivedEvent](/api-reference/react/src/interfaces/ArchivedEvent.md) - [CantonContextValue](/api-reference/react/src/interfaces/CantonContextValue.md) - [CreatedEvent](/api-reference/react/src/interfaces/CreatedEvent.md) - [ExerciseChoiceRequest](/api-reference/react/src/interfaces/ExerciseChoiceRequest.md) - [JwtPayload](/api-reference/react/src/interfaces/JwtPayload.md) - [LedgerApiResponse](/api-reference/react/src/interfaces/LedgerApiResponse.md) - [LedgerEndResponse](/api-reference/react/src/interfaces/LedgerEndResponse.md) - [ParsedError](/api-reference/react/src/interfaces/ParsedError.md) - [StreamedContract](/api-reference/react/src/interfaces/StreamedContract.md) - [TransactionUpdate](/api-reference/react/src/interfaces/TransactionUpdate.md) - [UseAccountsResult](/api-reference/react/src/interfaces/UseAccountsResult.md) - [UseActiveAccountResult](/api-reference/react/src/interfaces/UseActiveAccountResult.md) - [UseActiveContractsOptions](/api-reference/react/src/interfaces/UseActiveContractsOptions.md) - [UseActiveContractsResult](/api-reference/react/src/interfaces/UseActiveContractsResult.md) - [UseConnectResult](/api-reference/react/src/interfaces/UseConnectResult.md) - [UseContractStreamOptions](/api-reference/react/src/interfaces/UseContractStreamOptions.md) - [UseContractStreamResult](/api-reference/react/src/interfaces/UseContractStreamResult.md) - [UseDisconnectResult](/api-reference/react/src/interfaces/UseDisconnectResult.md) - [UseExerciseChoiceResult](/api-reference/react/src/interfaces/UseExerciseChoiceResult.md) - [UseLedgerApiOptions](/api-reference/react/src/interfaces/UseLedgerApiOptions.md) - [UseLedgerApiResult](/api-reference/react/src/interfaces/UseLedgerApiResult.md) - [UseLedgerEndOptions](/api-reference/react/src/interfaces/UseLedgerEndOptions.md) - [UseLedgerEndResult](/api-reference/react/src/interfaces/UseLedgerEndResult.md) - [UseLedgerUpdatesOptions](/api-reference/react/src/interfaces/UseLedgerUpdatesOptions.md) - [UseLedgerUpdatesResult](/api-reference/react/src/interfaces/UseLedgerUpdatesResult.md) - [UseSessionOptions](/api-reference/react/src/interfaces/UseSessionOptions.md) - [UseSessionResult](/api-reference/react/src/interfaces/UseSessionResult.md) - [UseSignMessageResult](/api-reference/react/src/interfaces/UseSignMessageResult.md) - [UseSubmitCommandResult](/api-reference/react/src/interfaces/UseSubmitCommandResult.md) - [WalletConnectTransportConfig](/api-reference/react/src/interfaces/WalletConnectTransportConfig.md) - [react/src](/api-reference/react/src/readme.md) - [Account](/api-reference/react/src/type-aliases/Account.md) - [CantonProvider](/api-reference/react/src/type-aliases/CantonProvider.md) - [ConnectionState](/api-reference/react/src/type-aliases/ConnectionState.md) - [ContractEvent](/api-reference/react/src/type-aliases/ContractEvent.md) - [DiscoveredWallet](/api-reference/react/src/type-aliases/DiscoveredWallet.md) - [ErrorAction](/api-reference/react/src/type-aliases/ErrorAction.md) - [ExecutedPayload](/api-reference/react/src/type-aliases/ExecutedPayload.md) - [KnownErrorCode](/api-reference/react/src/type-aliases/KnownErrorCode.md) - [LedgerApiRequest](/api-reference/react/src/type-aliases/LedgerApiRequest.md) - [SessionState](/api-reference/react/src/type-aliases/SessionState.md) - [SignMessageRequest](/api-reference/react/src/type-aliases/SignMessageRequest.md) - [SignMessageResult](/api-reference/react/src/type-aliases/SignMessageResult.md) - [SpliceProviderInfo](/api-reference/react/src/type-aliases/SpliceProviderInfo.md) - [StatusResult](/api-reference/react/src/type-aliases/StatusResult.md) - [StatusType](/api-reference/react/src/type-aliases/StatusType.md) - [SubmitCommandRequest](/api-reference/react/src/type-aliases/SubmitCommandRequest.md) - [SubmitCommandResult](/api-reference/react/src/type-aliases/SubmitCommandResult.md) - [TxEvent](/api-reference/react/src/type-aliases/TxEvent.md) - [UpdateTemplateFilter](/api-reference/react/src/type-aliases/UpdateTemplateFilter.md) - [UseCantonProviderResult](/api-reference/react/src/type-aliases/UseCantonProviderResult.md) - [WalletPickerProps](/api-reference/react/src/type-aliases/WalletPickerProps.md) - [sigilry](/api-reference/readme.md) - [splice-dars/src](/api-reference/splice-dars/src/readme.md) - [allSpliceDars](/api-reference/splice-dars/src/variables/allSpliceDars.md) - [SPLICE_VERSION](/api-reference/splice-dars/src/variables/SPLICE_VERSION.md) - [spliceDars](/api-reference/splice-dars/src/variables/spliceDars.md) ## Notes - The complete documentation includes all content from the official documentation - The content is automatically generated from the same source as the official documentation