> ## Documentation Index
> Fetch the complete documentation index at: https://docs.layerzero.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Canton Coin Troubleshooting

> Answers for Canton Coin transfers that fail or do not arrive: unregistered parties, expired offers, single holdings, unvetted packages, Solana, and HyperCore.

> [!NOTE]
>
> Available when Canton Coin launches on Stargate and the Value Transfer API.

> [accordion] I sent CC to a Canton party that is not registered. Is it lost?
>
> If `to` is the party's correct fingerprint, the CC is not lost. It waits. It is already burned on the source chain, and the delivery on Canton cannot settle until the party registers. Register the receiving party (see [Register Your Canton Party](https://docs.layerzero.network/v2/developers/canton/canton-coin/bridge-with-stargate.md#one-time-setup-register-your-canton-party)). The LayerZero executor can then retry the settlement, which delivers the CC.
>
> If `to` was set incorrectly, the delivery will not settle, and registering a party does not help. See the next answer.
>
> To register, the party signs a Canton transaction with its own Canton wallet and pays the fee in CC from its holdings on Canton. It cannot register from BSC, HyperEVM, or Solana. Stargate and the Value Transfer API refuse to build a transfer to an unregistered party, so this happens only if the sender built the transfer another way.

> [accordion] Why did CC from my own OFT send into Canton not arrive?
>
> Check the `to` value that you sent. It must be the 64 hex characters after `1220` in the receiver's party ID.
>
> * If it is the right fingerprint and the party is not registered, register the party. See the previous answer.
> * If the fingerprint is registered to another party in the same namespace, the CC went to that party. The validator operator who controls that namespace controls the party. Ask the operator to send the CC back.
> * If it is not a party fingerprint, for example a hashed party ID or an EVM address, no party can register it. [Contact the LayerZero team](https://layerzeronetwork.typeform.com/to/U9hMgxf1) with the source transaction hash.
>
> To avoid this, use Stargate or the Value Transfer API, or check the [pre-send checklist](https://docs.layerzero.network/v2/developers/canton/oft/overview.md#pre-send-checklist).

> [accordion] An incoming CC offer expired before I accepted it. What now?
>
> Without One-step Transfers (a transfer preapproval), inbound CC arrives as an offer that expires after 24 hours. You cannot claim an expired offer yourself. The CC returns to the LayerZero CC adapter.
>
> LayerZero does not resend an expired instruction automatically. To have the tokens delivered again, [contact the LayerZero team](https://layerzeronetwork.typeform.com/to/U9hMgxf1). Include your Canton party ID and the source transaction hash.
>
> Turn on One-step Transfers in Loop before your next transfer.

> [accordion] My send from Canton was rejected. Where is my CC?
>
> If LayerZero rejects a send after the LayerZero CC adapter receives your CC, the CC that you sent can be refunded to your Canton party. This refund is available through the protocol, but it is not settled automatically today. If a refund does not arrive, [contact the LayerZero team](https://layerzeronetwork.typeform.com/to/U9hMgxf1) with your Canton party ID and the update ID of the send. The LayerZero request fee on Canton is not refunded. A refund can arrive as an offer. Accept it within 24 hours. If it expires, contact the LayerZero team.

> [accordion] The app says my CC is held in one holding. Why can't I send?
>
> A send from Canton pays the amount and the protocol fee from different holdings, so you need at least two. One or more holdings pay the fee, and the holdings that are left must cover the amount. With one holding, the send fails, whatever the balance. Your Loop Fee Balance does not count: it pays Canton network costs, not the protocol fee.
>
> Receive a second transfer of at least the fee from another wallet or an exchange. Then send again. The error message also suggests a transfer to yourself to split a holding. In Loop, receive a second transfer instead.
>
> If you send from a party in a Splice validator wallet, the wallet merges your holdings back into one about every 30 seconds. Send from an external party instead. See [Market Makers and Integrators](https://docs.layerzero.network/v2/developers/canton/canton-coin/value-transfer-api.md#prerequisites).

> [accordion] Why does the app say the validator has not vetted a LayerZero package?
>
> The node that hosts your Canton party does not have the LayerZero packages it needs. The error names the first package that the Value Transfer API checks: `layerzero-ioapp` when you send, or `layerzero-iregistry` when you register. Vetting only that package does not fix the problem. The API then accepts the request, but the transaction fails when it is submitted, because it also runs code in other LayerZero packages. Ask your wallet operator to upload and vet the full [LayerZero package set](https://docs.layerzero.network/v2/developers/canton/technical-overview.md#layerzero-packages) on every node that hosts your party, and to check them against the [mainnet package IDs](https://docs.layerzero.network/v2/developers/canton/technical-overview.md#mainnet-package-ids). If you are a retail user, use Loop.

> [accordion] Why can't I send CC from my Solana wallet?
>
> A send of CC from Solana uses Solana's v1 transaction format, and your wallet must be able to sign it. If your wallet does not report v1 support, Stargate stops the send before your wallet signs. Use a wallet that signs v1 transactions, for example Backpack or Jupiter. See [Solana Wallets](https://docs.layerzero.network/v2/developers/canton/canton-coin/bridge-with-stargate.md#solana-wallets) for each wallet's support.
>
> Transfers from other chains into Solana are not affected.

> [accordion] Why is my CC on HyperEVM instead of HyperCore?
>
> Check the destination you selected. If you selected HyperEVM, the CC is on HyperEVM by design. Stargate and the Value Transfer API deposit to HyperCore only when HyperCore is the destination, and they do not send to an address that is not activated on HyperCore. If you built the deposit yourself and the address was not activated, the composer sent the CC to the same address on HyperEVM. To move it, [activate the address on HyperCore](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/activation-gas-fee). Then transfer the CC on HyperEVM to the asset bridge `0x20000000000000000000000000000000000004E7`. See [Deposit Directly to HyperCore](https://docs.layerzero.network/v2/developers/canton/canton-coin/value-transfer-api.md#deposit-directly-to-hypercore).

> [accordion] How do I move CC from HyperCore back to Canton?
>
> HyperCore has no direct route to Canton. Hold at least 0.001 HYPE on HyperCore for gas. First, spot-send `LZCC` on HyperCore to the asset bridge `0x20000000000000000000000000000000000004E7`. The CC appears at the same address on HyperEVM. Then bridge it from HyperEVM to Canton.

> [accordion] How do I check that I have bridged Canton Coin from LayerZero Labs?
>
> Compare the token address with the [token table](https://docs.layerzero.network/v2/developers/canton/canton-coin/overview.md#token-identifiers). A different token named "wCC" exists on BSC and Base. LayerZero Labs did not deploy it and does not administer it.
