SERVER
Teal: the request card (integrity token + Rampart report digest)Cases 1–4: genuine, replayed token, re-signed app, rooted deviceIndigo: the server's decision, and what it caughtThe wall: only your backend talks to Google or AppleYour backend issues a one-time nonce; the app binds Rampart's report digest and a Play Integrity or App Attest token to it. Only your server checks the vendor's signature and the nonce. A replayed token finds its nonce already on the spike; a re-signed app fails the signature; a rooted device passes app checks but not device integrity, so it gets step-up auth instead of a hard deny.