Skip to content

Connect to Send Connect testnet

Send Connect is a browser extension for Canton Network. Its Chrome Web Store listing supports switching between Mainnet and Testnet.

  1. Install Send Connect in desktop Chrome.
  2. Open the extension popup and use the network switch to select Testnet.
  3. Sign in or complete wallet setup at testnet.cantonwallet.com on Testnet. Approve the dApp connection when prompted.
  4. Open or reload the dApp page after installing the extension. Use a separate dApp origin; Send excludes its own wallet pages from provider injection.
SettingTestnet value
Wallettestnet.cantonwallet.com
API gatewayhttps://api-testnet.cantonwallet.com
Network IDcanton:testnet

The gateway is the wallet’s authenticated API endpoint. A dApp uses the provider’s ledgerApi method for ledger reads; the gateway URL alone does not grant ledger access.

Terminal window
yarn add @sigilry/dapp@^3
# For React applications
yarn add @sigilry/react@^3 @tanstack/react-query

Both dapp/react packages ship the stable 3.x line on latest. The next tag is frozen on an old 2.0 prerelease. The current Send Connect message contract is incompatible with the legacy 1.x client; follow Migrations to upgrade.

This example assumes Send Connect is the selected injected wallet. With several installed wallets, use provider discovery to select Send Connect explicitly.

import type { SpliceProvider } from "@sigilry/dapp";
import "@sigilry/dapp/browser-globals";
async function connectToTestnet(provider: SpliceProvider) {
const connection = await provider.request({ method: "connect" });
if (!connection.isConnected || connection.isNetworkConnected === false) {
throw new Error("Wallet connection is not ready");
}
const network = await provider.request({ method: "getActiveNetwork" });
if (network.networkId !== "canton:testnet") {
throw new Error("Select Testnet in the Send Connect popup, then reconnect");
}
return provider.request({ method: "listAccounts" });
}
if (!window.canton) throw new Error("Install Send Connect and reload the dApp");
const accounts = await connectToTestnet(window.canton);
console.log(accounts.map(({ partyId, networkId }) => ({ partyId, networkId })));

Recheck the network before a transaction, and refresh account state after accountsChanged. The current Send Connect extension uses this event for account and connection changes; it does not emit statusChanged. A party and its contracts belong to their network; switching the popup does not move mainnet holdings to testnet.

  • Provider missing: Confirm the extension is enabled for the dApp origin and reload the page. Test on the dApp page rather than a Send wallet page.
  • Wrong network: Select Testnet in the popup and reconnect. Check getActiveNetwork().networkId before using accounts.
  • Legacy SDK: Install dapp/react 3.x together. Avoid the frozen next tag.
  • Connected but ledger unavailable: Inspect the error returned by ledgerApi to diagnose authentication, gateway, or ledger failures. The extension’s isNetworkConnected reports whether a network ID and gateway URL are configured; it is not a ledger availability probe and can remain true when the ledger is down.

Next: verify a signed message or read token holdings.