Managed Signing
Circle Payment Network (CPN)
5. CPN V1 (Optional)

Knit API Documentation

CPN V1: Raw Transaction Signing (Optional)

Endpoint

POST

{{baseUrl}}/api/v1/managed-signing/requests

CPN V1 uses traditional on-chain transactions instead of EIP-712 signatures. Only use this if you specifically need CPN V1 support.

When to Use CPN V1
  • Legacy integrations that don't support Permit2
  • Specific Circle requirements for your use case

For new integrations, CPN V2 is recommended as it's gasless and more efficient.

Prerequisites
  1. Update your policy to allow raw transactions:
{
  "name": "cpn-v1",
  "rules": {
    "chains": ["MATIC_MAINNET"],
    "allowRawTx": true
  }
}
Headers
  • X-API-KEY: Your API key for authentication.
  • Accept: Set to application/json to receive responses in JSON format.
  • Content-Type: Set to application/json.
Request Body
{
  "walletId": "<local-wallet-id>",
  "network": "MATIC_MAINNET",
  "type": "evm_tx",
  "kind": "raw",
  "payload": {
    "tx": {
      "to": "0x...",
      "data": "0x...",
      "value": "0x0",
      "gas": "0x...",
      "maxFeePerGas": "0x...",
      "maxPriorityFeePerGas": "0x...",
      "nonce": 123
    }
  },
  "broadcast": false
}
FieldTypeDescription
walletIdstringYour local wallet ID
networkstringTarget network
typestringMust be evm_tx
kindstringMust be raw for raw transaction signing
payload.txobjectRaw transaction object
broadcastbooleanWhether to broadcast (usually false for CPN V1)
Transaction Fields
FieldTypeDescription
tostringRecipient contract address
datastringEncoded transaction data
valuestringETH value in hex (usually 0x0)
gasstringGas limit in hex
maxFeePerGasstringMax fee per gas in hex (EIP-1559)
maxPriorityFeePerGasstringPriority fee in hex (EIP-1559)
noncenumberTransaction nonce
Sample Request
curl --location -g '{{baseUrl}}/api/v1/managed-signing/requests' \
--header 'X-API-KEY: {{apiKey}}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "walletId": "<local-wallet-id>",
    "network": "MATIC_MAINNET",
    "type": "evm_tx",
    "kind": "raw",
    "payload": {
        "tx": {
            "to": "0x...",
            "data": "0x...",
            "value": "0x0",
            "gas": "0x5208",
            "maxFeePerGas": "0x59682f00",
            "maxPriorityFeePerGas": "0x59682f00",
            "nonce": 1
        }
    },
    "broadcast": false
}'
Sample Response
Sample Response
{
  "statusCode": 201,
  "message": "Signing request created",
  "data": {
    "id": "<local-request-id>",
    "businessId": "<business-id>",
    "walletId": "<local-wallet-id>",
    "network": "MATIC_MAINNET",
    "type": "evm_tx",
    "kind": "raw",
    "status": "SIGNED",
    "payload": {
      "tx": { "..." }
    },
    "signedTx": "0x...",
    "broadcast": false,
    "createdAt": "2026-01-20T18:30:40.912Z",
    "updatedAt": "2026-01-20T18:30:40.912Z"
  },
  "success": true
}
Important Notes
  • Raw transaction signing requires all fields to be provided (gas, fees, nonce)
  • If RPCs are configured, the service can auto-fill gas estimation
  • The signedTx in the response is the signed raw transaction to submit to Circle
  • CPN V1 transactions require gas fees paid by the wallet
Security Considerations

Enabling allowRawTx: true in your policy allows signing arbitrary transactions. Consider:

  • Only enable if you specifically need CPN V1
  • Restrict chains to only the networks you need
  • Monitor audit logs for unexpected raw transaction requests

Contact

business@useknit.io

Knit Business Financial Services Ltd.
3080 Yonge St
Toronto ON, M4N 3N1, Canada

Subscribe to our newsletter

A monthly digest of the latest news, articles, and resources.

Knit logo

© KNIT BUSINESS FINANCIAL SERVICES LIMITED is duly registered by the Financial Transactions and Reports Analysis Centre of Canada (FINTRAC) as a Money Service Business (C100000256)