rank(P, B): d = |P − B| order = d ↑ // nearest first tie1 = rating ↓ tie2 = similarCases ↓ tie3 = responseTime ↑ filter: verified(counsel) = true blocked(client, counsel) = false rating ≥ 4.0 // ad eligibility
BPS = 10_000 SIDE_FEE = 200 // 2% clientFee = gross * 200 / 10000 net = gross - clientFee slice = net * weightBps / 10000 counselFee = slice * 200 / 10000 counselPay = slice - counselFee
canTransact(from, to): ¬blacklist(from | to) ∧ whitelist(from) ∧ whitelist(to) ∧ allowedJurisdiction(jFrom) ∧ allowedJurisdiction(jTo) codes: AE-DIFC · AE-ADGM · KR