A Spam Filter That Actually Shows Its Work

Most spam filters block silently or miss everything. Ours runs five inbound checks on every call, text, and MMS, then shows you what it saw and lets you decide what blocks.

Five Layers

What We Check on Every Inbound

Each layer answers a different question. Each layer is yours to enable, watch, or enforce.

STIR/SHAKEN Verification

Your carrier already runs cryptographic verification on every call before it reaches us. The result comes in three levels: A (verified), B (partial), C (could not verify). We read what's there, no extra lookup. Free, always on. Strict mode (opt-in): block calls your carrier could not verify.

Neighbor-Spoof Detection

Detects callers faking a number with your local prefix to look like a friendly neighbor. Pure local heuristic, nothing leaves the server. Free, always on.

Carrier Reputation Lookup

Looks up the carrier and line type for callers we don't recognize (mobile, landline, VoIP, toll-free). Our reputation provider returns the result; we cache it 90 days, so the same caller costs nothing on the second call. Up to $0.004 per cache miss, capped at $1 per phone per day. Default on. Flip it off if you'd rather we never query a third party. Strict mode (opt-in): block VoIP from unidentified carriers.

Community Signals

Numbers other users have flagged as spam, shared as one-way fingerprints (your phone number never leaves your account in plaintext). Infrastructure ready. The toggle exists in your settings, but doesn't act on anything yet: we're holding the source feed back until we have one we trust. Off by default. No ETA.

Your Personal Lists

Block list and allow list, per phone or account-wide. Your block list always rejects, even when the rest of the filter is off. The 'mark not spam' button on the filter log feeds your allow list. Always enforced.

What You See

Your Filter Log, in Your Account

Every inbound goes through the gate, gets a verdict, and lands in your in-app filter log. You see exactly what each layer flagged and why. Below is a sample of what shows up after a few calls.

Filter log
  • +1 437-555-0142 Call · 2:14pm
    suspicious · Neighbor spoofing
    would have blocked
  • +1 800-555-0023 Call · 1:48pm
    clean · STIR/SHAKEN attested · Toll-free (carrier)
  • +1 514-555-0099 SMS · 1:12pm
    likely unwanted · Low VoIP reputation
    would have blocked
  • +1 416-555-0037 Call · 12:45pm
    clean · STIR/SHAKEN attested

The same screen lets you mark any entry as 'not unwanted', which adds the number to your allow list.

How We're Different

Most Spam Blockers Are a Black Box. Ours Isn't.

Per-layer control + the filter log are the parts other filters skip. Here's how the categories stack up.

CapabilityWIGGWIGGTypical 3rd-party appCarrier-side blocking
Per-layer controlEach of 5 togglesOn or offNone
Filter log of would-have-blocked verdictsYes, in your accountOften hiddenNo
You see what we spent on third-party lookupsYes, transparent + cappedHidden in subscriptionBundled in your plan
Personal allow list overrides everythingYesVariesNo
Bypass entirelyMaster switch in settingsUninstall the appCall carrier support
How It Works

One Gate. Five Questions. Your Call.

Every inbound voice call, SMS, and MMS passes through the same gate. The gate consults the layers you've enabled, scores the call, and writes the verdict to your filter log.

1. Inbound Arrives

Your carrier delivers the call or message, with the STIR/SHAKEN verification level already attached for voice.

2. We Check the Layers You Trust

Free local checks first (STIR, neighbor-spoof). Paid carrier lookup only if the caller isn't already in your contacts. Cache hits cost nothing.

3. Score and Log

The gate produces a verdict (clean, suspicious, likely spam) with the reasons that matched. Both go to your filter log.

4. Routing Decides

Your personal block list rejects. Otherwise the call follows your routing rules (forward, voicemail, screening). Strict mode on any layer turns its 'would-have-blocked' verdict into a real block.

Frequently Asked Questions

Why aren't you blocking spam automatically?

Because false positives are expensive: a missed call from your kid's school stings more than a robocall that got through. We're tuning the thresholds against real traffic right now. The layers run, the verdicts are logged, but nothing automated rejects your call. Personal blocks always enforce. When the stats are clean for your line, you flip strict mode on yourself.

What does the carrier reputation lookup cost me?

Nothing directly. It costs us up to $0.004 per unknown number, cached for 90 days, capped at $1 per phone per day. The same caller calling you twice in 90 days only triggers one paid lookup. We meter and report it in our admin dashboard. The toggle is yours: leave it on (default) for stronger spam signal, or turn it off if you'd rather we never query a third party.

Can I turn the whole thing off?

Yes. The master switch is on every phone's spam filter page. When off, only your personal block and allow lists apply. Every individual layer also has its own switch, so you can keep STIR/SHAKEN on but disable carrier lookups (or vice versa).

Do you use the CRTC fraud database?

No. The Canadian Anti-Fraud Centre publishes an open dataset, but it doesn't include actionable phone numbers (they strip identifying details before publication). The community-signal layer is built but dark for the same reason: we want a trustworthy source feed before turning it on.

Why call this 'spam filter' when it also handles SMS and MMS?

Because the same gate runs on calls, texts, and picture messages, and 'spam filter' is the term you actually search for. Every layer applies to all three channels (with one exception: STIR/SHAKEN is only delivered with voice calls, not SMS). The filter log shows verdicts for all three.

How does this interact with my personal block list?

Your personal block list always wins. If a number is on your block list, the call is rejected before any other layer runs (no carrier lookup, no logging). If a number is on your allow list, the spam filter is bypassed entirely (so a friend on a sketchy carrier can still reach you). Filter layers only run for callers you haven't already decided about.

What happens to the data we collect about spam calls?

Carrier lookups are cached as a phone fingerprint (not your phone number) plus the carrier name and line type. The cache is anonymous to the system: we know who triggered it (for cost attribution) but the lookup result isn't tied to a specific identity. Filter log entries on your account stay encrypted and are deleted with your account.

What about non-spam strangers I still don't want to talk to?

That's what call screening is for, and it pairs with the spam filter. Caller-intro screening makes unknown callers record a 10-second 'who's calling and why' before your phone rings. The announcement mode plays a custom message and optionally requires the caller to press a key. Both are free, both run after the spam filter.

Take Control of Who Reaches You

Every WIGGWIGG number includes the spam filter. You decide which layers run and when each one starts blocking.