Application security for your industry

Crypto wallet app security

Otukan protects crypto wallet and investment apps on the phone: local key material, the transaction a user approves and the client your backend trusts.

  • Android
  • iOS
  • Flutter
  • React Native
  • Keys stay out of reach

    Otukan hardens the code and storage around local key material, so extracting it from the app or its memory becomes slow, noisy work.

  • What you see is what you sign

    Hooking detection protects the gap between the transaction shown to the user and the transaction the app actually signs or submits.

  • A client your backend can trust

    Attestation and integrity evidence let your withdrawal and trading services tell your genuine app from clones and scripts.

How Otukan handles wallet threats

Choose a threat to see what Otukan detects, how the app reacts and what your services receive.

Address swap by hooking

  1. Detect

    Otukan detects instrumentation frameworks and function hooks attached to the app while a transfer is prepared.

  2. Respond

    Signing or submission stops and the user is told the session cannot be trusted.

  3. Report

    Hooking evidence is sent with the transfer request so your backend can hold it.

Seed phrase screenshot

  1. Detect

    On Android, sensitive screens are marked secure against capture; on iOS, Otukan detects recording and mirroring and reacts when a screenshot is taken.

  2. Respond

    Recovery phrase content is hidden while capture is active, and the user is warned.

  3. Report

    Capture attempts on sensitive screens are logged for your security team.

Local key extraction

  1. Detect

    Runtime checks flag debuggers, memory inspection and root or jailbreak conditions around key handling.

  2. Respond

    Key operations are refused in an untrusted environment, per your policy.

  3. Report

    Environment status accompanies every signing session.

Repackaged wallet app

  1. Detect

    Integrity checks spot modified binaries and foreign signing certificates; attestation exposes them to your servers.

  2. Respond

    The modified copy fails the attestation check and your backend refuses its requests.

  3. Report

    Your backend receives attestation outcome and integrity status per session.

Scripted withdrawals

  1. Detect

    Protected withdrawal and order calls carry fresh attestation, which scripts and emulators fail to present.

  2. Respond

    Your backend declines or steps up unattested requests.

  3. Report

    Attestation and device binding results reach your risk service.

Wallet threats and the Otukan controls that meet them

Each card matches a threat to wallet and investment apps with the Otukan control designed for it.

  • Key and seed extraction

    Secrets protection wraps locally held key material in platform key storage and obfuscated code paths, and keeps it out of logs and backups.

  • Transaction rewriting

    Hooking detection catches instrumentation that swaps a destination address or amount after the user has reviewed it.

  • Recovery phrase capture

    Screen capture protection shields seed phrase and key export screens from screenshots, recordings and mirroring, within what each platform allows.

  • Cloned wallet clients

    Attestation verified on your servers exposes repackaged wallets and scripted clients calling withdrawal and order APIs.

How Otukan works with a wallet team

  1. Draw the boundaries

    We map where keys live, where transactions are built and where your backend authorises them.

  2. Harden the client

    Obfuscation, secrets protection and runtime checks go into the build inside your own release pipeline.

  3. Guard the approval

    Hooking and capture controls protect the review, signing and recovery phrase screens.

  4. Prove it server side

    Attestation and integrity results travel with each withdrawal and trade for your services to verify.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

Wallet and investment apps protect sensitive client-side flows by separating three things and defending each one: where keys are held, where a transaction is built and shown to the user, and where your backend authorises it. Otukan protects the first two on the phone and gives the third trustworthy evidence. It hardens code and storage around local key material, detects hooking that rewrites a transfer after the user checks it, shields recovery phrase screens and proves to your servers that requests come from your genuine app. Custody design, protocol safety and market risk sit with other controls. Android and iOS scope is stated per control.

Asset boundaries in a wallet app

Every wallet or trading app has the same three boundaries, even when the architectures differ. Knowing which one an attack crosses tells you which control must stop it.

BoundaryWhat lives thereTypical attackOtukan control
Key custodyPrivate keys, seed phrases, session keys, API tokensExtraction from storage, memory or screenSecrets protection, runtime checks, screen capture protection
Transaction preparationDestination, amount, fees, order details shown for approvalInstrumentation that rewrites the transaction after reviewHooking detection, integrity checks
Backend authorisationWithdrawal approval, order execution, limitsScripts and cloned clients calling your APIsAttestation, device binding

Self-custody and custodial models

In a self-custody wallet the phone holds the keys, so the first boundary carries the most weight. In a custodial exchange or brokerage app, keys sit with your service and the third boundary becomes decisive, because whoever convinces your backend controls the funds. Many products mix the two. Otukan sets its controls to match your model rather than a generic checklist. For key handling in detail, see secrets and key protection.

Threat model: hooking, screen capture and modified clients

Hooking

Instrumentation frameworks let an attacker change what a running app does without changing its file on disk. In a wallet, the classic target is the moment between display and signature: the user approves one address and the hooked function signs another. Otukan detects these frameworks and the hooks they place, stops signing or submission in that session and tells your backend. For how detection works, see hooking detection.

Screen capture

A recovery phrase shown on screen is a key in plain sight. Malicious apps, screen recording and mirroring can all copy it. Android allows an app to mark a screen as secure, which blocks screenshots and screen recording of it. iOS offers apps no supported way to block screenshots, so Otukan detects recording and mirroring, hides the phrase while capture is active and reacts to screenshots. The two platforms get different controls because they offer different tools.

Modified clients

A repackaged wallet looks like yours, carries your name and quietly sends keys or funds elsewhere. Integrity checks inside the app notice a foreign signing certificate or altered code. More importantly, a modified copy fails attestation, so your servers refuse it. Play Integrity and App Attest each supply that proof on their own terms. For the server side, see app attestation.

What app protection covers, and what it leaves to others

Clear limits make a stronger security case, not a weaker one. Otukan protects the mobile client and the evidence it sends. It does not decide custody arrangements, and it does not replace audits of contracts or protocols. It also makes no statement about asset value or investment returns.

  • App protection (Otukan). Hardened code, protected local key material, detection of hooking, debugging, emulation, root and jailbreak, capture protection on sensitive screens, and attestation for your backend.
  • Custody and key management (your architecture). Where keys are generated, stored, backed up and recovered, and who can sign.
  • Protocol and contract security (your engineering and auditors). The correctness of on-chain logic and the networks you connect to.
  • Investment and market outcomes (your business). Prices, liquidity and returns, which no security control addresses.

That split gives your risk review, your auditors and your users a precise answer to “which control owns this risk”.

Otukan’s full set of application controls is listed on mobile app security. A wallet already live in the stores can get a free App Exposure Check of its public build.

Common questions

  • Does Otukan hold or manage our users' keys?

    No. Custody stays exactly where your architecture puts it, whether keys live on the device, in your service or split between the two. Otukan protects the app that touches that material: it hardens the code and storage around keys held on the phone, and it gives your backend evidence about the client asking to move funds. Wallet keys and recovery phrases never pass to Otukan.

  • Where does app protection stop in a crypto product?

    Otukan protects the mobile client and the requests it sends. Smart contract logic, blockchain protocol behaviour, exchange solvency and market outcomes belong to other controls and other teams, and no app layer can speak for them. Being clear about that split is useful: it lets your security review assign each risk to the control that actually owns it.

  • Can Otukan stop users from photographing their recovery phrase?

    Otukan makes capture of recovery phrase screens by software much harder. On Android the screen can be marked secure, which blocks screenshots and recordings. On iOS, apps cannot block screenshots, so Otukan detects recording and mirroring, hides the content while capture is active and reacts when a screenshot is taken. A camera pointed at the screen is outside any app's control, so user guidance still matters.

  • Will runtime checks disturb users on custom devices?

    Some wallet users run rooted or customised phones by choice. Otukan lets you decide per flow: viewing balances might only be observed, while exporting a key or sending funds is restricted on a compromised device. Signals start in observe mode so you can see how your user base behaves before any response is enforced.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

Protect the moment users approve a transfer

Tell us the platform, the app framework, whether keys are held on the device or by your service, and the flow you most need to protect. We do not ask for binaries, signing keys, wallet keys, recovery phrases or production credentials.

Or request a technical demo