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.
Each layer answers a different question. Each layer is yours to enable, watch, or enforce.
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.
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.
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.
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.
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.
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.
The same screen lets you mark any entry as 'not unwanted', which adds the number to your allow list.
Per-layer control + the filter log are the parts other filters skip. Here's how the categories stack up.
| Capability | WIGGWIGG | Typical 3rd-party app | Carrier-side blocking |
|---|---|---|---|
| Per-layer control | Each of 5 toggles | On or off | None |
| Filter log of would-have-blocked verdicts | Yes, in your account | Often hidden | No |
| You see what we spent on third-party lookups | Yes, transparent + capped | Hidden in subscription | Bundled in your plan |
| Personal allow list overrides everything | Yes | Varies | No |
| Bypass entirely | Master switch in settings | Uninstall the app | Call carrier support |
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.
Your carrier delivers the call or message, with the STIR/SHAKEN verification level already attached for voice.
Free local checks first (STIR, neighbor-spoof). Paid carrier lookup only if the caller isn't already in your contacts. Cache hits cost nothing.
The gate produces a verdict (clean, suspicious, likely spam) with the reasons that matched. Both go to your filter log.
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.
Every WIGGWIGG number includes the spam filter. You decide which layers run and when each one starts blocking.