Can be deployed on EVM-compatible blockchains. Creates and manages escrow processes where sellers and buyers of services or goods can confidently conduct transactions. A controlling party can deploy the EscrowManager
contract once and then run an escrow service. A single transaction can also be handled by just deploying the Escrow
class.
-
Buyer deploys the
Escrow
contract themselves or callsinitiateEscrow(SELLER_ADDRESS)
on anEscrowManager
. Either way, the agreed amount is sent with this transaction and held by the contract. The contract can be cancelled by callingprematurelyCancel()
. Initiating the contract through anEscrowManager
returns an id that both parties may use to interact with a single Escrow, or multiple, if they have the ids for them and are authorized to do so. -
The Seller calls
declarePerformedService()
once they have performed the service, or shipped/delivered the good and awaits the buyer confirmation. The contract cannot be cancelled after this point, except by the contract owner. -
Buyer calls
declareReceivedService()
and funds are transferred to the seller, completing the transaction.