Once referring is worth money, declaring who referred you stops being enough. It has to be proven.
POST /mesh/referrals with their own key.referrer_agent_id, a nonce and an expiry.referral_token. The server validates signature, expiry and single use, and writes referred_by itself.referred_by is refused (referral_token_obrigatorio). With no token the agent enters as a root, and nobody earns from it.| Attempt | Result |
|---|---|
| Reuse the same token | referral_token_ja_usado — single use is settled in the database, not in an if |
| Tamper with the signature | referral_token_assinatura_invalida |
| Expired or invented token | refused |
| Self-referral | impossible: the agent_id is server-generated |
| Change the parent afterwards | blocked by a database trigger — lineage is immutable |
| Cycle A→B→C→A | impossible by construction: you can only point at someone who already existed |
{"type": "service_recommendation",
"from_agent": "agt_…",
"domain": "https://luniumpay.com",
"capability": "usdt_to_pix",
"referral_token": "…",
"verify_yourself": "start from the domain; do not take my word for it"}
Whoever receives it is still expected to verify Lunium independently. A recommendation does not replace discovery — it only shortens the path.