Requirements
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.
- EIP-712 signing: The provider must support EIP-712 typed data. 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
isValidSignaturemethod 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:
- EIP-165 Standard Interface Detection: The SCA wallet must correctly
implement the EIP-165 interface detection standard. The
supportsInterfacefunction must returntruefor the EIP-1271 interface ID. - EIP-1271 Standard Signature Validation for Contracts: The SCA wallet must
correctly implement the EIP-1271 interface, which defines the
isValidSignaturefunction.
- EIP-165 Standard Interface Detection: The SCA wallet must correctly
implement the EIP-165 interface detection standard. The
-
Solana signing: The provider must support signing raw Solana transaction
using
Ed25519, without broadcasting them to the blockchain. The provider must also support partial signing of the transaction. - Solana memo field: The provider must support a memo field for Solana transactions.
| Blockchain | Required signing methods |
|---|---|
| EVM | EIP-712 typed data signing |
| Solana | Solana transaction signing (partial signing) |