Deals guide (PinchDeals)

A deal locks PINCH from a payer (A) for a payee (B). It ends in one of three ways: B is paid, the amount is split by agreement, or A gets a refund after a 180-day freeze. The rules are enforced by the PinchDeals contract at 0x00000000000000000000000000000000000dea15, which is part of the genesis block and has no owner, no admin key, no upgrade path and no pause switch.

Lifecycle

State How it is reached What can happen next
Open A opens a deal for B with a deadline of 1 to 90 days A releases · deadline passes · split agreed · A stops
Released A releases before the deadline B is paid at once
Auto-released The deadline passes and A has done nothing Anyone can call claim; B is paid
Settled One side proposes a split and the other accepts the same split Paid to A and B as agreed
Stopped A stops the deal before the deadline Frozen for 180 days; a split can still be agreed
Refunded 180 days after a stop Anyone can call claim; A is refunded

After the deadline A can no longer release or stop: the deal is confirmed and only the payout to B remains.

Using the Deals app

  1. Open a deal. Connect your wallet, enter B's address, the amount and the number of days, and confirm. Your wallet sends the amount with the transaction.
  2. Release. As A, press Release once you have what you paid for.
  3. Claim. After the deadline, or 180 days after a stop, press Claim to execute the payout. Anyone may do this; the money can only go to A or B.
  4. Settle. Either side proposes how much goes to A and to B (the two must add up to the deal amount). The other side accepts the same numbers to complete it.
  5. Stop. As A, before the deadline. Use it only when you really need it: the money is frozen for 180 days, the stop appears in your public profile, and only B may rate you.
  6. Rate. After a deal ends, rate the other party from 1 to 5, once.
  7. Withdraw. If a payout could not be delivered to an address (for example a contract that rejects payments), it is held for that address. Withdraw it to the same address or to another address you choose.

The app only reads public data and asks your wallet to sign. It never sees your keys.

Who may rate whom

Outcome A rates B B rates A
Released yes yes
Auto-released yes yes
Settled yes yes
Stopped or refunded no yes

Rating weight

Each rating's weight is fixed when it is given:

w = (1 + min(P, 10)) × (1 + floor(log2(1 + V / 1 PINCH)))

  • P is the number of distinct partners, other than the address being rated, with whom the rater completed a deal in which at least 1 PINCH was actually paid to the payee.
  • V is the amount of the deal being rated.

The profile shows the weighted average (Σ w × score / Σ w) next to the plain average. Weighting makes fake ratings expensive; it does not prove identity, delivery or honesty.

Contract interface

function open(address b, uint32 days_) external payable returns (uint256 id);
function release(uint256 id) external;
function stop(uint256 id) external;
function claim(uint256 id) external;
function proposeSettle(uint256 id, uint256 toA, uint256 toB) external;
function acceptSettle(uint256 id, uint256 toA, uint256 toB) external;
function rate(uint256 id, uint8 score) external;
function withdraw() external;
function withdrawTo(address payable to) external;

function dealCount() external view returns (uint256);
function getDeal(uint256 id) external view returns (Deal memory);
function effectiveStatus(uint256 id) external view returns (Status);
function canRate(uint256 id, address who) external view returns (bool);
function profile(address who) external view returns (Profile memory);
function dealsOf(address who) external view returns (uint256[] memory);
function pending(address who) external view returns (uint256);

Status values: None, Open, Released, AutoReleased, Disputed (stopped), Refunded, Settled. Events: Opened, Released, Stopped, Refunded, SettleProposed, Settled, Rated, Paid. The full ABI is on the Downloads page.

Things to know

  • The contract does not judge disputes, verify delivery or know what was traded. It only enforces the money flow and records outcomes.
  • A deadline is measured in block time. Leave some margin for confirmations.