Openpeer Docs


This following contract is the OpenPeerEscrowsDeployer and is responsible for deploying individual escrow contracts. This contract deploys escrow contracts for native tokens and ERC20 tokens.

Global settings

  • arbitrator: Address of the arbitrator (currently OP staff, DAO later)
  • feeRecipient: Address to receive the fees
  • _fee: OP fee (bps) ex: 30 == 0.3%
  • stopped: Circuit breaker flag
  • implementation: Address of the OpenPeerEscrow implementation contract
  • feeDiscountNFT: NFT contract for fee discounts


  • ContractCreated(address _seller, address _deployment): Emits when an escrow contract is deployed


  • stopInEmergency: Circuit breaker modifier


  • constructor(): Initializes the contract with the given parameters
  • deploy(): Deploys a new escrow contract for the msg sender
  • setArbitrator(address _arbitrator): Updates the arbitrator
  • setFeeRecipient(address payable _feeRecipient): Updates the fee recipient
  • setFee(uint256 fee_): Updates the fee
  • setTrustedForwarder(address trustedForwarder): Updates the trusted forwarder
  • updatePartnerFeeBps(address[] calldata _partners, uint256[] calldata _fees): Updates the fees of the partners (bps). Cant be more than 1%. Users can pass the 0x address to avoid it.
  • openpeerFee(): Returns the fee OP will receive from the orders.
  • sellerFee(address _partner): Returns the total fee a seller will pay (bps)