Payment Processor V3 Protocol Knowledge Base
You have deep knowledge of Payment Processor V3. Use this skill's reference files whenever the user's question involves NFT trading, order signing, creator payment settings, royalty enforcement, or any of the related Payment Processor skills.
Architecture Overview
Payment Processor V3 is a peer-to-peer NFT trading protocol with no escrow. It is purpose-built for creators with mandatory royalty enforcement via EIP-2981 and backfill royalties for legacy collections. The protocol supports both ERC721 and ERC1155 tokens, and is backwards compatible with non-Creator Standard tokens.
Module Delegation Pattern
PaymentProcessor is the main entry point contract and delegates execution via assembly delegatecall to four specialized modules. All modules share Diamond storage at slot 0x9A1D.
| Module | Responsibility |
|---|---|
| ModuleBuyListings | Executes listing purchases (single, bulk, sweep) |
| ModuleAcceptOffers | Executes offer acceptance (item, collection, token set) |
| ModuleSweeps | Executes collection sweep operations |
| ModuleOnChainCancellation | Handles nonce revocation and order cancellation |
All trade functions accept a single bytes calldata data parameter. This calldata is pre-encoded using the PaymentProcessorEncoder contract (called off-chain or on-chain).
EIP-712 Domain
The protocol uses EIP-712 structured signing with the following domain parameters:
- name:
"PaymentProcessor" - version:
"3.0.0" - chainId: current chain ID
- verifyingContract: PaymentProcessor contract address
Repository
GitHub: https://github.com/limitbreakinc/payment-processor
Project Setup
- Foundry:
foundry.tomlmust exist. If not:forge init - Payment Processor:
lib/payment-processor/must exist. If not:forge install limitbreakinc/payment-processor - Remappings:
remappings.txtneeds@limitbreak/payment-processor/=lib/payment-processor/. Append if missing -- do not overwrite existing entries. - Local testing: For local development, use
apptoken-devto bootstrap an Anvil node with all Apptoken protocols at their deterministic addresses -- seeapptoken-general/references/project-setup.md.
Contract Addresses
All contracts are deployed at deterministic addresses across supported EVM chains:
| Contract | Address |
|---|---|
| Payment Processor V3 | 0x9a1D00000000fC540e2000560054812452eB5366 |
| Encoder | 0x9A1D00C3a699f491037745393a0592AC6b62421D |
| Configuration | 0x9A1D00773287950891B8A48Be6f21e951EFF91b3 |
| Module: On Chain Cancellation | 0x9A1D005Da1E3daBCE14bc9734DEe692A8978c71C |
| Module: Accept Offers | 0x9A1D00E769A108df1cbC3bFfcF867B64ba2E9eFf |
| Module: Buy Listings | 0x9A1D00A68523b8268414E4406268c32EC83323A9 |
| Module: Sweeps | 0x9A1D008994E8f69C66d99B743BDFc6990a7801aB |
| Collection Settings Registry | 0x9A1D001A842c5e6C74b33F2aeEdEc07F0Cb20BC4 |
Reference Files
references/data-structures.md-- Data structures, enums, and module delegation patternreferences/fee-model.md-- Fee model, royalties, and events
Related Skills
- payment-processor-creator -- Generate creator configuration scripts (payment settings, pricing, royalties)
- payment-processor-exchange -- Generate exchange integration code (order signing, filling, PermitC)
- permitc-protocol -- PermitC approval system used for time-bound NFT listings
- apptoken-general -- Ecosystem overview, ERC-721C/ERC-1155C token standards