OtterFi

Security

The one rule behind everything below: OtterFi only ever needs to know what a wallet holds, never to control it.

No custody, ever

OtterFi never asks for, receives, or could receive a private key. There's no deposit step, no wrapped token, no vault - your assets stay in your own wallet, under your own control, the entire time.

Wallet ownership verification

Verify offers two ways to prove you control a wallet, and both stop at proof - neither one hands over any control:

Connect Wallet (desktop flow)

You connect your wallet and sign a standard Sign-In With Ethereum message - plain text, never a transaction. The signature only proves you hold the private key for that address; nothing is broadcast on-chain, and nothing can be spent from a signature alone. Email or social login is intentionally not offered as an alternative here, since that would create an account that could never actually hold real on-chain assets.

Verify without connecting (self-transfer)

Instead of connecting a wallet at all, you send a tiny, uniquely-tagged amount of your chain's native token from your own address back to that same address. OtterFi watches for that exact transaction; finding it proves you control the private key, without ever seeing a signature or connecting to anything. Reusing someone else's self-transfer to impersonate them isn't possible - it would require their private key.

Why funds never leave the wallet

In the self-transfer method, the sender and recipient of the transaction are the exact same wallet - by construction, funds can't end up anywhere else. In the connect-wallet method, nothing is sent at all; a signature isn't a transfer. Either way, the only real cost is your own network's gas fee for that one small transaction, and only when you choose the self-transfer method - never a payment to OtterFi.

Every check re-verifies live, on-chain truth

Whether a re-check is triggered on a schedule, by a manual command, or by Live Membership's event detection, OtterFi never trusts that trigger as fact - it always reads your wallet's real, current holdings directly from the chain before deciding anything. A temporary read failure never revokes access; it's treated as inconclusive and retried, not as a "no."

Note

This is also why Live Membership waits for confirmations before granting access: a purchase that's reversed by a chain reorg a few blocks later should never have granted access in the first place. Removing access is dispatched immediately instead, since a mistaken removal simply self-corrects on the very next check.

Data storage and privacy

OtterFi stores the minimum needed to make access decisions - nothing more:

  • Your verified wallet address (one at a time - a new verification replaces the old one, it doesn't add a second).
  • Your Telegram or Discord user ID (a platform identifier, not your username, email, or any other personal detail).
  • Whether access is currently granted or revoked, and when it last changed.

There is no email address, no KYC, and no off-platform personal information collected anywhere in this model.

What this can't protect against

Like any wallet-signature-based system, if someone else has your private key, they can pass verification as you - there's no way to distinguish a legitimate owner from someone who stole the key, without identity verification (KYC), which OtterFi doesn't do. Keep your private key and seed phrase secret; OtterFi will never ask for either.