Zero compromise

Implement simple and secure QR login with just a few lines of code.

Scan a QR code with your camera app on this desktop webpage to log in.

Mobile SDKs ready to deploy in your app

We’ve done the hard work so you don’t have to. Keyri’s mobile SDKs offer complete UI, secure cryptographic key generation, key storage, encryption, websocket communications, desktop session identification, session management, and QR scanning required to make a QR login system work.
iOS, Android, React Native, and Flutter SDKs
Simply scan the QR code with your phone, pass biometrics, and you're logged in on desktop

MFA in a simple step

It doesn't get any easier than this.

Forget about typing usernames and passwords at every login. No more 2FA texts or emails. No more authenticator codes. Your users just scan a QR code on your login page with their phone and pass biometrics in your app to log in on their the web app session.

Verification for
high-risk situations

Protect your users' important transactions.

Not ready to add QR codes to your login page but want better security? Use our platform to verify customer identities in high-stakes scenarios like wire transfers or crypto withdrawals.

Wire Transfer with QR

Advanced risk analytics

Digest in-depth location and device intelligence.

Simultaneous, non-invasive risk signals from web and mobile apps identify and prevent MitM attacks like never before, including devious ones like endpoint malware and DNS spoofing.

Do more with QR codes

Increase app downloads and user engagement.

Boost user engagement by driving your desktop users to your mobile app. Keyri’s QR codes direct your users to your app store listing if they don’t already have your app.

If they do, the QR code instantly directs them to your app, where they pass biometrics and the Keyri SDK triggers a login on their desktop web session.

Deeplinking decision tree
					import keyri-pod

func process(url: URL) {
    let sessionId = URLComponents(url: url, resolvingAgainstBaseURL: true)?
        .queryItems?.first(where: { $ == "sessionId" })?.value ?? ""
    let payload = "Whatever data you want to send"
    let appKey = "yourAppKey" // Get this value from the Keyri Developer Portal
    let keyri = Keyri()
    keyri.initializeQrSession(username: username, sessionId: sessionId, appKey: appKey)
        { res in
        switch res {
        case .success(var session):
            session.payload = payload
            do {
                try session.confirm() // or session.deny()
            } catch {
        case .failure(let error):

Secure data transfer
via QR

Leverage QR codes for any use case.

Use Keyri’s QR infrastructure to securely transfer whatever you want, wherever you want. Build your dream app with Keyri’s encrypted custom object exchange capabilities. Think payments, e-signatures, and sensitive files, or something the world has yet to see.

Security by design


Extreme phishing resistance

Phishing is a massive problem. You know it. We know it. Stop phishing today without sacrificing UX.
Device Fingerprinting

Proven device fingerprinting

Highly secure and accurate mobile and desktop device fingerprinting establishes trusted devices and helps you know who your users are to keep attackers out.