Note: USDC implements EIP-3009 with the EIP-7598 extension, enabling both EOAs and SCAs to authorize transfers via the EIP-3009 mechanism.
CPN allows you to bring your own wallet provider when integrating with the network. Circle Wallets is an option for your integration, but not a requirement. When bringing your own wallet provider, you should make sure that they support the features and signing methods that are required to interact with CPN.
The following features and signing methods are required for a wallet provider to be able to integrate with CPN:
Custodial wallet support: The provider must be able to sign transactions for wallets without requiring user interaction.
Ethereum virtual machine (EVM) raw transaction signing: For Transactions V1, the provider must be able to sign raw EVM transactions without broadcasting them to the blockchain. This is not required for Transactions V2.
EIP-712 signing: The provider must support EIP-712 typed data. This is a requirement for both Transactions V1 and V2. The resulting signature can be used in one of the following ways:
The signature can be verified by recovering the signer's address with the hash of the typed data (on behalf of an EOA).
The signature can be validated by the isValidSignature method defined in
EIP-1271 with the hash of the typed data (on behalf of an SCA).
Note: USDC implements EIP-3009 with the EIP-7598 extension, enabling both EOAs and SCAs to authorize transfers via the EIP-3009 mechanism.
SCA wallet interface: When using an SCA wallet as the sender wallet, the wallet contract must implement the following two interfaces:
supportsInterface
function must return true for the EIP-1271 interface ID.isValidSignature function.Solana signing: The provider must support signing raw Solana transaction
using Ed25519, without broadcasting them to the blockchain.
Solana memo field: The provider must support a memo field for Solana transactions.
| Blockchain | Transactions V1 | Transactions V2 |
|---|---|---|
| EVM | EIP-712 typed data signing Raw EVM transaction signing | EIP-712 typed data signing |
| Solana | Solana transaction signing | Not supported |