Your position, live from the blockchain.
Enter your RM Circle member ID to see your payments, your team, and your lineage — everything verified on Polygon.
Member position
Position #— Verified on-chain
Member position
Position #— Verified on-chain
Your team
Your position's matrix — the rollup line on each card counts everyone underneath, all the way down. Open slots are where the next placements land.
Payments received
Every payment your position has received, straight from the smart contract.
open
slot
';
const badge=n.tier===2?'P':'S';
+ const qmark=n.directCount>=2?'✓':'';
const down=n.downCount?`⬇ ${n.downCount} below · ${fmt(n.downPol)} POL`:'no downline yet';
- return `slot
${badge} #${n.id}${esc(n.levelName)}${n.directCount}/2 · ${fmt(n.earnedPol)} POL${down}
`;
+ return `${qmark}${badge} #${n.id}${esc(n.levelName)}${n.directCount}/2 · ${fmt(n.earnedPol)} POL${down}
`;
}
function renderTree(root){
if(!root){document.getElementById('dTree').innerHTML='Team view is still indexing — check back in a few minutes.
';return}
@@ -22,6 +23,10 @@
function render(d){
prompt.classList.add('hidden');dash.classList.remove('hidden');
document.getElementById('dTitle').textContent='#'+d.id;
+ const qb=document.getElementById('dQualified');
+ if(qb)qb.outerHTML=d.directCount>=2
+ ?'★ Qualified'
+ :`${2-d.directCount} more direct${2-d.directCount===1?'':'s'} to qualify`;
document.getElementById('dFacts').innerHTML=
`Tier${esc(d.tierName)}
`+
`Level${esc(d.levelName)}
`+
diff --git a/public/styles.css b/public/styles.css
index 42addf3..8497e51 100644
--- a/public/styles.css
+++ b/public/styles.css
@@ -99,3 +99,10 @@ a{color:inherit}.wrap{width:min(1160px,calc(100% - 32px));margin:auto}.nav{heigh
.mtp-down{font-size:10.5px;color:var(--gold);border-top:1px solid #21405a;margin-top:4px;padding-top:4px;width:100%}
.mtp-down-none{color:#4e6578}
+
+/* Qualification badges */
+.q-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.8px;vertical-align:middle}
+.q-yes{background:linear-gradient(135deg,rgba(243,190,67,.18),rgba(243,190,67,.08));color:var(--gold);border:1px solid rgba(243,190,67,.45);box-shadow:0 0 18px rgba(243,190,67,.15)}
+.q-no{background:rgba(174,189,202,.08);color:var(--muted);border:1px solid #33506a}
+.mtp-card{position:relative}
+.mtp-qmark{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--gold),#f7d173);color:#152033;font-size:12px;font-weight:900;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.4)}