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.
- 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
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. For Transactions V2, the provider must support partial signing of the transaction. - 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 | Solana transaction signing (partial signing) |