Back

Counterparties

P09-L04 · P09 · P09-M01

Separate observed interactions from unverified entity labels

ILLUSTRATIVE · needs_review

Prerequisites: P09-L03

Learning objectives

  • Classify execution and movement endpoints separately.
  • Count successful recipient events under an explicit rule.
  • Assess label dependency/conflict without inferring affiliation.

EN source master · P09-L04 · 45 minutes estimated · needs_review

Why this matters

A wallet can call a router, send tokens to a custody address and receive an unsolicited transfer. A graph may display all three as counterparties, although they represent different relationships. Describing them as partners or affiliates invents a meaning the ledger does not provide.

This lesson builds a typed counterparty table and a separate provider-label register. You will distinguish technical interactions, successful movements and unverified entity claims.

Explanation

Define a counterparty by event type

For a direct value transfer, the decoded source and destination are the movement endpoints. For a contract call, the called address is an execution endpoint. For a token log, the emitting contract and the from/to fields have different roles. Specify which relationship you are measuring.

A counterparty list without a rule cannot be compared reproducibly. “Unique transfer recipients” differs from “all contracts called.” A transaction might contain both categories. Do not combine them into one count and call it number of business relationships.

Asset identity and network remain necessary. A transfer of TOKEN-A and a transfer of TOKEN-B are separate quantities even when the recipient is the same. A zero-value call can establish execution interaction without establishing a native payment.

Read nested execution carefully

Geth callTracer represents call frames and can be configured to include only the top call [S09-TRACES]. An incomplete trace configuration can omit nested interactions. Record whether your source covers the relevant depth rather than assuming a top-level receiver is the only execution endpoint.

A router can delegate or route activity through other contracts. The account the user called may not be the account receiving an eventual token movement. An interaction graph should retain both edges with distinct types instead of pretending they are duplicates or equivalent economic relationships.

Ethereum receipt logs carry transaction linkage and event information [S09-RECEIPT]. Decoding an event requires the correct emitter and semantics. A contract emitting a token Transfer event is not thereby the purchaser, recipient or affiliate of every address named in that event.

Distinguish involvement from voluntary relationship

On Solana, a signature search finds transactions referencing an address in accountKeys [S09-SIGNATURES]. Reference alone does not mean the address authorized the transaction. Inspect signers, instructions and effects before assigning an active role.

An inbound transfer can be unsolicited. Mere receipt does not prove consent, membership or partnership. Even repeated direct interaction can be consistent with ordinary use of a public service rather than affiliation.

A contract-mediated transfer might involve a delegate or an application policy. Do not conclude that the visible holder personally signed every movement. Result metadata separates account roles and execution views [S09-STRUCTURES]; human intent requires additional evidence.

Store labels as source assertions

A provider label should have publisher, exact address/network, capture/update context, wording, basis and verification state. If those fields are absent, say so. “Exchange-X” displayed beside an address is not an independently established entity identity.

Two interfaces using the same underlying label feed do not provide two independent confirmations. Label agreement can motivate investigation while its dependency remains explicit. If sources conflict, retain both labels and the conflict.

A verified service deposit mechanism, when actually established, would still not identify the account's beneficial user or prove that a transfer was a sale. Technical affiliation, service custody and personal identity are separate questions.

Count the intended unit

Use unique successful event keys for movement counts. Use unique endpoint addresses for a recipient count within a stated asset/window. Repeated sends to one address count as multiple events but one unique recipient.

Exclude failed attempts from successful-flow totals while retaining them in an attempt table. Do not erase them from the investigation. If result is unavailable, keep it unresolved; neither success nor failure may be inferred from a pretty interface row.

For a direction-based report, distinguish incoming and outgoing edges. Receiving from a contract is not equivalent to calling it. A round trip does not prove ownership or refund purpose without supporting mechanism evidence.

State what would strengthen the claim

For a technical role, request decoded operations, correct code/application binary interface (ABI), trace coverage and coherent balances. For a provider identity, request the labeling basis and independent corroboration. For an affiliation claim, specify what organizational or authenticated evidence would be necessary.

Do not search for personal identity merely because a public address is interesting. Keep the question proportionate to the educational objective. This exercise contains no real people or usable addresses and requires no attribution investigation beyond supplied records.

A bounded finding such as “W made two successful TOKEN-A sends to X; X is labelled Exchange-X by one shared feed, unverified here” is informative. It does not imply a sale, a partnership or a common owner.

Keep causal and financial boundaries

Interaction does not establish affiliation. A large transfer to a labelled service does not establish a market trade. A chart moving afterward does not establish that the transfer caused it. These later conclusions require separate evidence and cannot be recovered from a counterparty count.

The purpose of the lesson is an accurate relationship vocabulary. More edges are not necessarily stronger evidence of a human relationship. Sometimes several lines simply expose more internal machinery for one public transaction.

Key terms

  • Execution endpoint: address called during execution.
  • Movement endpoint: source or destination of a decoded asset transfer.
  • Emitter: contract producing an event log.
  • Unique recipient: distinct destination under a declared rule.
  • Provider assertion: published label awaiting scope/provenance assessment.
  • Affiliation: organizational relationship needing independent evidence.

Historical example

ILLUSTRATIVE — FIX-P09-04. SIM-EVM-A, W, synthetic ordered T1–T4. TOKEN-A amounts normalized. All listed results are supplied, not measured.

RecordEvent/resultSupplied relationship
C1T1 successW calls ROUTER with native value0
C2T1 successnested ROUTER calls POOL; complete trace supplied
C3T1 successTOKEN-A emits transfer W→X,10
C4T2 successTOKEN-A transfer W→X,5
C5T3 successTOKEN-A transfer UNKNOWN-SENDER→W,1; no W authorization supplied
C6T4 failureattempted TOKEN-A transfer W→Y,20; successful effect0
L1Feed-Q / Xlabel “Exchange-X,” supporting basis absent
L2Interface-R / Xsame label imported from Feed-Q
L3Feed-Z / Xlabel “private treasury,” supporting basis absent

No sale record, organizational affiliation or human-control evidence is supplied. Labels have synthetic capture T5; no real timestamp exists.

What the evidence proves

OBSERVED in fixture: W calls ROUTER; nested POOL interaction and two TOKEN-A sends to X are supplied. L1/L2 share a label source; L3 conflicts.

INFERRED: Successful outbound TOKEN-A total 15, with one unique successful recipient X under this window/rule. C6 adds an attempted recipient Y, not successful flow.

What the evidence does not prove

UNKNOWN: Entity behind X, receipt consent for C5, motives and beneficial owners.

INSUFFICIENT EVIDENCE: ROUTER/POOL interactions do not prove affiliation. L1/L2 are not independent identity proof; L3 does not resolve the conflict. X receipt does not establish a sale.

Common mistakes

Counting emitter as recipient; treating router calls as partnerships; merging nested and direct endpoints without types; adopting copied labels as independent confirmation; and interpreting unsolicited receipt as voluntary membership.

Practical exercise

Produce a typed relationship table and successful TOKEN-A outbound statistic. Separate entity-label assertions from ledger records. Rewrite “W sold15 to its Exchange-X affiliate and received a partner payment.”

Show worked correction

Worked correction and expected reasoning

Execution edges: W→ROUTER and ROUTER→POOL in T1. Movement edges: W→X10 in T1, W→X5 in T2, UNKNOWN-SENDER→W1 in T3. TOKEN-A is the emitter, not an extra recipient. T4 contributes no successful TOKEN-A flow.

Outbound total 10+5=15, two events, one unique successful recipient. Attempted recipient Y is retained separately. No global all-asset counterparty count is inferred.

Rewrite: “Within the supplied window W sent 15 TOKEN-A to X across two successful events and received1 from another address. X has conflicting unverified provider labels, with two displays sharing Feed-Q. Trade purpose, affiliation and consent for the inbound event remain unresolved.”

Score out of ten: typed endpoints (four), totals/counts (two), label dependency/conflict (two), bounded rewrite (two).

Checklist

  • Define relationship and counting rules.
  • Separate caller, nested endpoint, emitter and recipient.
  • Verify result and trace coverage.
  • Record labels with source dependencies.
  • Preserve unsolicited/unknown-intent possibilities.
  • Avoid affiliation, sale and identity conclusions without evidence.

Summary

Counterparty analysis describes specific interactions. Technical participation and labelled entities do not automatically establish economic or organizational relationships.

Summary

Interaction is not affiliation. Repeated recipients differ from repeated events. Provider labels are assertions with provenance and conflicts.

Visual specifications

Use distinct call and transfer edge styles with record IDs; TOKEN-A emitter separate. Mark C6 failed, C5 consent unknown. Display X labels in source register with L1/L2 shared-feed bracket and L3 conflict, no identity badge.

Illustrative counterparty types; interaction does not prove affiliation.

Use deterministic SVG/HTML or charts with units, evidence locators and text alternatives. Navy/black with restrained cyan, electric blue and violet; no decorative or fabricated explorer screenshots. At 390px stack annotations; verify 768px, desktop and Arabic RTL when assets are implemented. Keep identifiers LTR and factual time/edge/axis directions unchanged. Use only the official supplied ZECOIN mark. Both visual records remain specifications.

Tools

WALLET_INTELLIGENCE maps to read-only inspection of public address records, relationships and provenance. Verify supported network, exact identifiers, fields and coverage before any runtime integration; no live provider capability is claimed here. Use the embedded offline exercise if data or paid access is unavailable. No wallet connection, credentials, private key, signature or live trade is required. Missing data stays unknown. Academy progress, creator status, payments and referrals never alter Radar evidence.

Sources & claim boundaries

All example records are original ILLUSTRATIVE fixtures, not historical/live chain measurements. Documentation explains mechanisms, not invented amounts or labels. Synthetic chronology is explicitly bounded; observedAt=null is intentional. OBSERVED in an exercise means a supplied fixture record. Re-review documentation and deployed decoding before publication. Provider labels do not establish identity; address control and human attribution require distinct evidence.

Next lesson

P09-L05 after the worked exercise and question review.

Visual specifications

P09-L04-V01

SPECIFICATION_ONLY · ILLUSTRATIVE

Which interaction is technical, economic or only provider-labelled?

Illustrative counterparty types; interaction does not prove affiliation.

Use distinct call and transfer edge styles with record IDs; TOKEN-A emitter separate. Mark C6 failed, C5 consent unknown. Display X labels in source register with L1/L2 shared-feed bracket and L3 conflict, no identity badge.

W calls router and sends 15 tokens to X; X labels conflict and share a feed; one inbound transfer has unknown consent.

390px stacked annotations and accessible text equivalent; 768px/desktop verification pending

Native RTL labels/layout; identifiers LTR; preserve time, number-axis and transfer direction.

FIX-P09-04

P09-L04-V02

SPECIFICATION_ONLY · ILLUSTRATIVE

What is observed, inferred, unknown or insufficiently supported?

Illustrative evidence states and attribution boundaries.

Four labelled rows bound to this lesson's record IDs, claim, limitation and next check; never display a human identity or safety verdict.

Four-state evidence table with record locators and uncertainty.

390px stacked annotations and accessible text equivalent; 768px/desktop verification pending

Native RTL labels/layout; identifiers LTR; preserve time, number-axis and transfer direction.

FIX-P09-04

Sources & claim boundaries

S09-SIGNATURES · official_documentation_or_standard

Solana getSignaturesForAddress

Supported claim
Referenced-address signature history, newest-first order and pagination.
Verification boundary
Primary page inspected; no illustrative ledger values or entity labels independently verified.
Checked at
2026-09-30
Open primary source
https://solana.com/docs/rpc/http/getsignaturesforaddress

S09-STRUCTURES · official_documentation_or_standard

Solana RPC JSON Structures

Supported claim
Result metadata, fee, instructions and balances as distinct views.
Verification boundary
Primary page inspected; no illustrative ledger values or entity labels independently verified.
Checked at
2026-09-30
Open primary source
https://solana.com/docs/rpc/json-structures

Dataset provenance

id: FIX-P09-04

dataStatus: ILLUSTRATIVE

observedAt: null

source: Original frozen educational records embedded in this lesson

scope: Fictional typed execution/transfer records and conflicting dependent entity labels.

identifiers: Invalid training labels; no usable addresses or signatures

timeBasis: Synthetic S/T or SIM-DAY markers explicitly defined in example; no real ledger/UTC observation

Test your reasoning

P09-L04-Q1 · Who is T1's TOKEN-A movement recipient?
P09-L04-Q2 · What is successful outbound TOKEN-A total?
P09-L04-Q3 · How many unique successful TOKEN-A recipients are supplied?
P09-L04-Q4 · Do L1/L2 independently prove X's identity?
P09-L04-Q5 · What does C5's receipt establish about affiliation?