Core Entities
- Service Provider:
- Definition: The entity (person, business, platform) that provides the service or delivers the product. This is the party that will receive the funds once the escrow conditions are met.
- Role: Completes the agreed-upon work or delivers the product as defined in the Escrow Contract. The Service Provider is the funds receiver.
- Signer:
- Definition: The entity responsible for signing or approving the release of funds. This could be the client, a platform acting on behalf of a user, an API, a backend system, or a multi-signature wallet.
- Role: Approves the release of funds in the Escrow Contract after the Service Provider fulfills their obligations. The Signer has the authority to confirm that the service/product has been satisfactorily delivered.
Escrow Structure
- Escrow Contract:
- Definition: The smart contract that holds funds and enforces the conditions of the agreement between the Service Provider and the Signer.
- Attributes:
- Contract Address: The unique blockchain address of the escrow contract.
- Engagement ID: The unique identifier linking this escrow to a specific project or transaction.
- Description: A brief summary or metadata describing the scope of the service/product.
- Issuer Address: The address of the party that created the escrow contract.
- Service Provider Address: The address of the entity receiving the payment.
- Signer Address: The address authorized to approve the release of funds.
- Amount: The amount pacted (price of product/service).
- Balance: The amount currently in the contract.
Payment and Validation
- Signer:
- Definition: The party responsible for releasing funds by signing and approving the contract.
- Rationale: In many use cases, the Signer may not necessarily be the "Client" or "User." It could be any entity with the authority to release the funds, such as a platform, an API, or even a multi-signature wallet. This abstraction helps accommodate a wide variety of use cases and scenarios.
- Service Provider:
- Definition: The receiver of the funds upon successful delivery of the service or product.
- Condition Validation (not implemented):
- Definition: An automated or manual process that ensures the conditions of the contract are met before the Signer can approve the release of funds.
- Role: This could be an API check, a third-party verification service, or any external input that determines whether the service/product has been delivered as agreed.
Simplified Workflow
- Escrow Creation: The Issuer creates the Escrow Contract, associating it with an Engagement ID and defining key parameters (service provider, signer, amount, etc.).
- Fund Deposit: Funds are deposited into the escrow contract, either manually by a party or automatically via an API call.
- Service Completion: The Service Provider completes the service or delivers the product.
- Approval: The Signer approves the release of funds. This could be done via an API call, user action, or another platform's system.
- Payment: Funds are released from the smart contract to the Service Provider.