Payment Rails CROPS Dashboard
Unaudited, unvetted, experimental. Do not use as a reference. AI-researched ratings that may be wrong; not advice or a statement of fact about any provider. Full disclaimer
Pending review. 1150 of 1150 ratings not yet checked by a human. Do not rely on unreviewed ratings.

Fluidkey

transferBase Assessed on Base (chain 8453)www.fluidkey.com

Ratings apply to this deployment only. Treat them as unverified for other chains. Why this deployment: Fluidkey's docs say deposits from other chains via Near Intents "are deposited as USDC on Base", and the earliest auto-earn profile in Fluidkey's recovery tool configures Base USDC (fluidkey/sara@e6e4fcd9 src/configs/autoEarnProfiles.ts). Unit: stealth accounts as counterfactual Safe 1.3.0 proxies on Base (singleton 0xd9Db…9552, factory 0xa6B7…6AB2) and the FluidkeyEarn module 0x3BDb…f2f9. Excluded: the other six EVM chains, Near Intents routes, bank (Noah) and tokenised-stock features.

At a glance

Category
Protocols for privacy-preserving transfers
Chain
BaseBase
CROPS tally
8 of 23 hold up · 3 no evidence
Security audits
6 published
Offered
Not on file
Last edited
2026-10-13 · History
  1. Censorship Resistance0 FailsWeakest: Reliance on hosted services; Token and chain freeze risks disclosed
  2. Open0 FailsWeakest: Can be self-hosted
  3. Free0 FailsWeakest: Open-source licences; Protection against relicensing
  4. Privacy No evidenceWeakest: Tracking and analytics; Endpoints can be changed
  5. Security No evidenceWeakest: Secrets and webhook handling

Where it is offered

No first-party country statement is on file for this provider. See the Countries index.

Censorship Resistance

Who can block valid use, and can users route around them?

0 FailsPillar rating: weakest of 5
2 of 5 Partial or better

What would raise this pillar

Admin pause or freeze powers

Can any privileged role stop, freeze, or block payments through the settlement contracts, and how is that role constrained? C1

3 Strong

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Payments are ordinary transfers into user-owned 1-of-1 Safes built on Safe's immutable 1.3.0 singleton; no Fluidkey role can pause, freeze or block them onchain. The optional earn module lets Fluidkey's relayers push received funds into preconfigured vaults, which is a custody question (S1), not a block. Refusal of service happens off-chain, in address issuance (C3, C4).

Evidence (2)2 verified
  1. Verified

    A sample Fluidkey stealth account (from an AutoEarnExecuted event at block 52372274) is a Safe 1.3.0 proxy with masterCopy 0xd9Db…9552, threshold 1, one owner 0x43D7…17EB with no code, guard slot 0, and one module, FluidkeyEarnModule 0x3BDb…f2f9.

    0xaAa5…8e70 on sourcify.dev

    0xaAa5…8e70 explorer · Sourcify · block 52372315 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Verified

    The module can only make the Safe wrap native tokens, approve and deposit into the vault configured for that Safe's config hash, with shares minted to the Safe; it has no transfer-out, pause or freeze path.

    fluidkey/fluidkey-earn-module · src/FluidkeyEarnModule.sol

    commit 122cde1994 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Settle without the provider

Can a payer or payee complete settlement by calling the public contracts directly, without the provider's API, signer, or relayer? C2

2 Partial

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Once a payer has a stealth address, settlement is a plain token transfer, and the payee can deploy the Safe and move funds with the kit and Safe's public factory, without Fluidkey. But new addresses are issued by Fluidkey's backend, and the documented direct path is recovery only. Judgment call: 2, possible and reconstructable from public code, but not documented as a settlement path.

Evidence (2)1 verified · 1 documented
  1. Verified

    The kit "enables anyone to independently generate and recover stealth smart accounts and related funds" and lists the Fluidkey parameters (chainId 0, Safe 1.3.0, default addresses, threshold 1).

    fluidkey/fluidkey-stealth-account-kit · README.md

    commit 2a4ccfafef · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Documented

    The docs present the open recovery interface (SARA) only as a way to verify addresses or "as a last resort to recover funds".

    docs.fluidkey.com/readme/recovery

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Reliance on hosted services

Does the payment flow require a relayer, paymaster, bundler, or API that only the provider runs? C3

0 Fails

Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

In the product flow a payer gets a fresh address from Fluidkey's offchain ENS resolver or payment page, both run only by Fluidkey with no public code. The gas relayer is also Fluidkey's. Scored 0: required, closed, single-vendor. The kit lets a payee derive addresses themselves, which keeps funds recoverable (S4).

Evidence (2)1 verified · 1 documented
  1. Verified

    The public kit contains only key derivation and address prediction; no resolver, issuance service or relayer code is published in github.com/fluidkey.

    fluidkey/fluidkey-stealth-account-kit · src

    commit 2a4ccfafef · checked 2026-10-09

  2. Documented

    The user shares a BIP-32 node of the viewing key with Fluidkey so that Fluidkey can generate stealth addresses, and ENS names resolve through Fluidkey's offchain resolver.

    docs.fluidkey.com/technical-documentation/technical-walkthrough

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Neutral settlement, disclosed filtering

Is the settlement layer free of address or geographic filtering, and is any filtering at the edge disclosed and avoidable? C4

1 Weak

Best evidence: DocumentedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

The settlement layer (token transfers into Safes) has no filtering. Screening exists in Fluidkey's closed backend and is disclosed only in the privacy policy and terms; we cannot see where it applies or whether address issuance is refused. Scored 1: edge filtering disclosed in docs only.

Evidence (2)2 documented
  1. Documented

    The privacy policy lists fraud, risk and device signals including sanctions/PEP screening indicators among the data processed, and fraud-prevention and risk-screening providers among recipients.

    www.fluidkey.com/privacy

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Documented

    The terms require that users are not subject to or resident in jurisdictions under Swiss, UN, EU, UK, US or other sanctions.

    www.fluidkey.com/terms

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Token and chain freeze risks disclosed

Are the tokens and chains the rail depends on enumerated, with their issuers' freeze powers and sequencer assumptions stated to payees? C5

0 Fails

Sets the pillar ratingBest evidence: DocumentedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Chains are listed in the docs; tokens are an open set. We found no statement that USDC or other issuers can freeze funds in a stealth account, or about Base's sequencer. Judgment call: an open token set is not enumerated, so 0, as for Railgun.

Evidence (1)1 documented
  1. Documented

    The FAQ names 7 EVM chains (Ethereum, Arbitrum, Base, Polygon, Optimism, Gnosis, BSC); receiving accepts ETH, USDC and any ERC-20.

    docs.fluidkey.com/readme/frequently-asked-questions

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Open

Is the whole stack visible?

0 FailsPillar rating: weakest of 4
1 of 4 Partial or better

What would raise this pillar

  • Can be self-hosted reaching Weak: Docs exist; reproduction not attempted, or failed with blockers listed.

Contracts verified onchain

Does the deployed bytecode match public source, and can a third party rebuild it? O1

2 Partial

Best evidence: VerifiedChecked 2026-10-09 10 days ago

UnreviewedAssessed by AI research agent (seed), 2026-10-09

All contracts in the path are full Sourcify matches. No rebuild was attempted, and the Safe contracts come from Safe's own repository rather than Fluidkey's. Judgment call: 2.

Evidence (1)1 verified
  1. Verified

    Sourcify returns exact_match on Base for the Safe singleton, proxy factory and FluidkeyEarnModule (and match for MultiSend 0xA238…7761); the module source equals src/FluidkeyEarnModule.sol at 122cde19 apart from a trailing newline.

    0x3BDb…f2f9 on sourcify.dev

    0x3BDb…f2f9 explorer · Sourcify · block 52372315 · checked 2026-10-09

Whole stack published

Are the SDK, frontend, backend or API, indexer, and deploy scripts all public? O2

1 Weak

Best evidence: VerifiedChecked 2026-10-09 10 days ago

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Only the SDK-level kit and contracts are public. The app, backend, resolver, relayer and indexer are closed. Scored 1.

Evidence (1)1 verified
  1. Verified

    github.com/fluidkey publishes the kit, the earn module, the hydrator, the SARA recovery UI and hackathon repos; no app, backend, resolver or indexer code.

    fluidkey/fluidkey-stealth-account-kit · src

    commit 2a4ccfafef · checked 2026-10-09

Can be self-hosted

Can a stranger reach a working deployment from the README? O3

0 Fails

Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

There is no path to a self-hosted Fluidkey deployment: the app and backend are closed. SARA recovers funds but does not issue addresses or receive payments. Judgment call: 0, since recovery is not a working payment deployment.

Evidence (1)1 verified
  1. Verified

    The only public deployable app is the SARA recovery interface, whose README has a description and a demo link but no build steps.

    fluidkey/sara · README.md

    commit e6e4fcd9e7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Interfaces and data export

Are ABIs, event schemas, an API schema, and a payee data export in a non-proprietary format all in the repo? O4

1 Weak

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Contract interfaces are public, but there is no API schema for the backend, and the transaction export is documented only. Scored 1.

Evidence (2)1 verified · 1 documented
  1. Verified

    The earn module's events are in its source; Safe ABIs are public through safe-deployments, used by the kit.

    fluidkey/fluidkey-earn-module · src/FluidkeyEarnModule.sol

    commit 122cde1994 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Documented

    The docs describe receiving via ENS, payment pages and Near Intents; transaction export is described only in the docs (Exporting Transactions page).

    docs.fluidkey.com/readme/receiving-funds

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Free

Does the license actually let a third party fork, modify, and run it?

0 FailsPillar rating: weakest of 3
0 of 3 Partial or better

What would raise this pillar

Open-source licences

Does every repository needed to run the product carry an OSI-approved license? F1

0 Fails

Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

The required app and backend are closed, so F1 is 0 by rule.

Evidence (1)1 verified
  1. Verified

    The kit is MIT; SARA and the hydrator are MIT; the earn module has no LICENSE file (SPDX AGPL-3.0-only in source, GPL-3.0 in package.json).

    fluidkey/fluidkey-stealth-account-kit · LICENSE

    commit 2a4ccfafef · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Protection against relicensing

Can the provider unilaterally relicense future versions, and has it committed not to? F2

0 Fails

Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-09 10 days ago

UnreviewedAssessed by AI research agent (seed), 2026-10-09

No CLA and no licence-stability commitment. The kit's licence changed twice in January 2024, between two permissive licences. Judgment call: the anchor names any prior relicense as 0; we apply it as for Privacy Pools.

Evidence (1)1 verified
  1. Verified

    The kit's LICENSE went MIT (de2cc84a, 2024-01-04) to Apache-2.0 (14a11e00, 2024-01-12) and back to MIT the same day (b32f35d3); no CLA or CONTRIBUTING file.

    fluidkey/fluidkey-stealth-account-kit · LICENSE

    commit 14a11e007c · checked 2026-10-09

No proprietary dependencies

Does a production deployment need a proprietary plugin or hosted-only service? F3

1 Weak

Best evidence: DocumentedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Production depends on Fluidkey's hosted backend for issuing and tracking addresses, with no open alternative; the open kit covers key derivation and recovery. Scored 1: documented that production needs a hosted service.

Evidence (1)1 documented
  1. Documented

    Address generation for users relies on the viewing-key node shared with Fluidkey.

    docs.fluidkey.com/technical-documentation/technical-walkthrough

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Privacy

What can an observer learn, and did the user knowingly choose it?

No evidencePillar rating: weakest of 5
1 of 5 Partial or better · 2 no evidence

What would raise this pillar

Tracking and analytics

Do the SDK, widget, or frontend ship analytics, telemetry, error reporting, or fingerprinting? P1

No evidence

Sets the pillar rating

UnreviewedAssessed by AI research agent (seed), 2026-10-09

No checkable evidence settles this yet, so it counts as 0.

The app is closed and we ran no trace. The privacy policy mentions consent-based usage analysis, which does not show whether analytics is on by default.

Data collected beyond payment

Does the flow collect anything beyond addresses, amounts, token, and chain? P2

1 Weak

Best evidence: DocumentedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Beyond settlement data, Fluidkey holds the user's viewing-key node (and so the full payment history), login and contact data, and risk signals; KYC applies only to the optional Bank feature. All of it is disclosed in the policy and docs, not limited in code. Scored 1.

Evidence (2)2 documented
  1. Documented

    The policy lists contact and login details, blockchain data, identity-verification data from regulated partners, fraud/risk/device signals and, for the Bank feature, biometric data.

    www.fluidkey.com/privacy

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Documented

    Fluidkey holds a node of each user's viewing key, which lets it link all of the user's stealth accounts and payments.

    docs.fluidkey.com/technical-documentation/technical-walkthrough

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Payments linkable onchain

What do calldata and events reveal about who paid whom for what? P3

2 Partial

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Receiving uses fresh addresses with no metadata. Spending can combine several stealth accounts in one payment, linking them, and Safes created with the earn-module initializer are recognisable as Fluidkey accounts; both are documented. Fluidkey itself sees all links (P2). Judgment call: 2, minimal documented linkage, because the linking comes from the app's spending logic rather than user behaviour.

Evidence (2)1 verified · 1 documented
  1. Verified

    Each payment goes to a fresh stealth EOA's counterfactual Safe; nothing about the payee or invoice is written onchain.

    fluidkey/fluidkey-stealth-account-kit · src/generateStealthAddresses.ts

    commit 2a4ccfafef · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Documented

    When sending, the app selects "one or a few stealth accounts" to fund a payment, which can link them; labels limit which accounts are combined.

    docs.fluidkey.com/readme/sending-funds

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Third parties in the payment flow

Which third parties see a request during a payment, and can they be swapped out? P4

1 Weak

Best evidence: DocumentedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Fluidkey's backend sees every payment, and Privy, risk-screening providers and feature partners are disclosed only in docs and the policy; the app code is closed. Scored 1.

Evidence (1)1 documented
  1. Documented

    The web app derives keys through a Privy embedded wallet; other docs pages name Noah (bank KYC), Near Intents and Houdini Swap; the policy lists IT, risk-screening and identity-verification providers by type.

    docs.fluidkey.com/readme/account-set-up

    checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Endpoints can be changed

Can RPC and indexer URLs be changed, and is the indexer code public? P5

No evidence

Sets the pillar rating

UnreviewedAssessed by AI research agent (seed), 2026-10-09

No checkable evidence settles this yet, so it counts as 0.

The app is closed, so we could not check whether RPC or indexer endpoints are configurable. The SARA recovery UI accepts a custom RPC URL, but it is not the payment path.

Security

Who can cause loss, lock users in, or change the rules?

No evidencePillar rating: weakest of 6
4 of 6 Partial or better · 1 no evidence

What would raise this pillar

Who holds funds in transit

Who holds funds between payer and payee, and can the provider redirect them? S1

3 Strong

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Payments go directly into a Safe the payee alone controls; Fluidkey cannot redirect them. With auto-earn on, Fluidkey's relayers move received funds into preconfigured Morpho, Aave or InfiniFi vaults without a per-transaction signature, so custody shifts to those vaults; the shares stay with the Safe. Judgment call: 3, because the payment itself is a direct transfer and auto-earn is a disclosed, user-chosen profile.

Evidence (2)2 verified
  1. Verified

    The sample stealth Safe's threshold is 1 and its only owner is a stealth EOA derived from the user's keys; Fluidkey holds no signer.

    0xaAa5…8e70 on sourcify.dev

    0xaAa5…8e70 explorer · Sourcify · block 52372315 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Verified

    autoEarn is callable by an authorized relayer (or with a relayer signature) and deposits into the vault configured for the Safe, with shares to the Safe.

    fluidkey/fluidkey-earn-module · src/FluidkeyEarnModule.sol

    commit 122cde1994 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Who can upgrade the code

Who can change the contract code, and with how much notice? S2

3 Strong

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Nobody but the account owner can change the code behind a stealth account, and the earn module is immutable. Scored 3.

Evidence (1)1 verified
  1. Verified

    FluidkeyEarnModule is not a proxy (implementation slot zero); its owner() is Safe 0x9E3e…e7CD (1.4.1, 2-of-3, no modules, guard 0), which can add relayers and register new configs but not change code. Each stealth Safe's masterCopy can be changed only by its own 1-of-1 owner.

    0x3BDb…f2f9 on sourcify.dev

    0x3BDb…f2f9 explorer · Sourcify · block 52372315 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Token approval scope

How large an allowance does the SDK ask users to grant, and for how long? S3

2 Partial

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Receiving needs no approval, and the auto-earn path approves exact amounts. Judgment call: approvals the closed app may request for swaps or other features cannot be checked, so 2.

Evidence (1)1 verified
  1. Verified

    The only approval in public code is the module's exact-amount approval of the vault (amountToSave); a payer pays by plain transfer and needs no approval.

    fluidkey/fluidkey-earn-module · src/FluidkeyEarnModule.sol

    commit 122cde1994 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Funds safe if provider disappears Derived

If the provider disappears tomorrow, do payees keep their funds and the ability to keep settling? S4

2 Partial

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Derived from S1=3, C2=2, C3=0, O3=0. Funds sit in user-owned Safes (S1). If Fluidkey disappears, a user with their login or key backup can rebuild addresses with the kit and move funds through the public Safe contracts, for example with SARA (C2). New addresses, ENS resolution and gas sponsorship stop, because they need the closed backend (C3), and the app cannot be self-hosted (O3). Scored 2: funds retrievable without the provider; settlement stops. Keys created through Privy depend on that login or a backup.

Evidence (1)1 verified
  1. Verified

    The kit replays stealth EOAs from the user's keys and predicts each Safe address from Safe's public deployments, so funds can be located and recovered without Fluidkey.

    fluidkey/fluidkey-stealth-account-kit · src/predictStealthSafeAddress.ts

    commit 2a4ccfafef · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Secrets and webhook handling

Are secrets kept out of client bundles and are webhooks signed and verified? S5

No evidence

Sets the pillar rating

UnreviewedAssessed by AI research agent (seed), 2026-10-09

No checkable evidence settles this yet, so it counts as 0.

The app bundle is closed and not inspected. The docs say spending keys never leave the client, while a viewing-key node is shared with Fluidkey by design (P2).

Audits and bug bounty

Has the code been audited at a pinned commit, were findings fixed traceably, and is there a live bounty? S6

1 Weak

Best evidence: VerifiedChecked 2026-10-19 today

UnreviewedAssessed by AI research agent (seed), 2026-10-09

Audit reports for the kit and the earn module are in their repos. We could not extract the audited commits from the PDFs, so we cannot tie them to the deployed code. The app and backend have no published audit, and we found no bounty. Scored 1.

Evidence (1)1 verified
  1. Verified

    The kit was audited by Dedaub (May 2024, PDF in audits/); the earn-module repo holds an Ackee report (March 2025) and its source has commits after an "implement audit recommendations" commit (8263b4f8, 2025-02-24).

    fluidkey/fluidkey-stealth-account-kit · README.md

    commit 2a4ccfafef · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

Security audits 6

Published audits and similar reviews of this provider's code, newest first. Context for the Audits and bug bounty rating, which scores them; this list does not change any rating, and an audit of older code says little about what is deployed now.

DateAuditorTypeScopeCovers deployed codeFindings
2026-08-17Nethermind SecuritySecurity reviewShared component, Safe Smart Account v1.3.0 (Safe, SafeL2, handlers, libraries, proxy factory) at 767ef36bba
Retrospective review of the v1.3.0-libs.0 tag; the core contracts are unchanged from the 2021 audited code that the canonical Base deployments (singleton 0xd9Db…9552, factory 0xa6B7…6AB2) were built from. The fixes are not in the deployed 1.3.0 contracts.
Yes1 low, 1 informational; addressed in Safe v1.4.0, not in 1.3.0
2026-07CertoraAuditShared component, Safe Smart Account v1.3.0 (GnosisSafe, GnosisSafeL2, accessors, base managers, handlers, libraries, proxies) at 767ef36bba
Review dated 20-29 July 2026 of the v1.3.0-libs.0 tag.
Yes1 low, 2 informational; all acknowledged
2025-03-04Ackee Blockchain SecurityAuditFluidkeyEarnModule (src/FluidkeyEarnModule.sol), the optional auto-earn Safe module at 6aca8f7e20
The deployed module matches src at 122cde19, which adds about 260 changed lines to the module after the reviewed fix commit (ownership/CREATE3 and calldata changes, March-April 2025) that the report does not cover.
Partly1 high, 1 medium, 3 warning, 4 info; all fixed (re-review at 66510813)
2024-05-24DedaubAuditFluidkey Stealth Account Kit (TypeScript key derivation, stealth address generation and Safe address prediction) at 518a4dec1c
Covers the open library only, not the Fluidkey app or backend. src/ has changed since (predictStealthSafeAddress and new files), so current releases are partly covered.
Partly1 medium, 1 low, 1 advisory; all resolved (fixes reviewed at 192a2260)
2021-05G0 GroupAuditShared component, Gnosis Safe 1.3.0 contracts (all Solidity files), final audit at ad6c7355d5
Core contracts are unchanged between this commit and the v1.3.0-libs.0 tag used for the canonical deployments.
YesNo issues; 1 note
2021-04G0 GroupAuditShared component, Gnosis Safe 1.3.0 contracts (all Solidity files), initial audit at 4bfc0c8519
Superseded by the May 2021 final audit.
PartlyNo issues; 5 optimisation notes

Compiled from: The audits/ folders of github.com/fluidkey/fluidkey-stealth-account-kit and fluidkey-earn-module (fluidkey-hydrator and sara have none), the kit's README, fluidkey.com, and for the shared Safe 1.3.0 contracts the docs/ folder of github.com/safe-global/safe-smart-account (audit_1_3_0.md and the PDFs it lists). No published audit of the Fluidkey app, backend, relayer or ENS resolver was found. Checked 2026-10-13. Only published reports are listed; private audits a provider mentions without a report are not.

Operational and procurement

Facts an institution's procurement, finance and security functions ask for. Separate from the CROPS ratings and never scored.

Group A: operational facts. Group B: 45 due-diligence controls derived from a UN agency's vendor requirements: 5 evidenced, 0 attested, 6 absent, 0 not applicable, 34 unknown. "Not applicable" means there is no operator to hold the control: it falls to whoever deploys the rail. How to read this.

Group A: operational facts

Fees

Unknown

Custody model

Unknown

Licences and registrations

Unknown

Cash-out options

Unknown

First deployment

Unknown

Operating entity

Unknown

Security incidents

Unknown

Absence of a found incident is not evidence that none occurred.

Product changes affecting users

Unknown

Volume transacted (verified only)

Unknown

Group B: institutional due diligence

ControlStateWhat was found
Assurance and certifications
B1.1 ISO 27001, developer organisation
Is the organisation that develops the product ISO 27001 certified, and does the certificate name that entity?
Unknown
implied from the component list
B1.2 ISO 27001, hosting and support organisation
Is the organisation that hosts and supports the service ISO 27001 certified in its own name, with a scope covering the service?
Unknown
implied from the component list
B1.3 SOC 2 Type II or ISAE 3000/3402 reports
Does the provider undergo periodic SOC 2 Type II or ISAE 3402 Type II assessments and make reports available?
Unknown
implied from the component list
B1.4 Independent source-code security review before go-live
Was the application reviewed by an independent party before launch, and is the report linked?
Unknown
implied from the component list
B1.5 Penetration testing
Is the service penetration-tested before go-live and at least every three years, with results available?
Unknown
implied from the component list
B1.6 Vulnerability scanning cadence
Are the platform and the application scanned for vulnerabilities at least every six months?
Unknown
implied from the component list
Vulnerability and patch management
B2.1 Security contact and disclosure policy
Is there a published way to report a vulnerability (SECURITY.md, security.txt, or a disclosure page)?
Absentnone of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ no security policy file; fluidkey/fluidkey-earn-module ✗ no security policy file; fluidkey/sara ✗ no security policy file; fluidkey/fluidkey-hydrator ✗ no security policy file
source 1 · source 2 · source 3 · source 4
B2.2 Patch service levels
Does the provider commit to patch timelines for known vulnerabilities (the partner expects 30 days critical, 40 high, 90 medium)?
Unknown
implied from the component list
B2.3 Dependency and vulnerability scanning in CI
Do the public repositories run dependency or code scanning automatically?
Absentnone of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ no scanning config or workflow step found; fluidkey/fluidkey-earn-module ✗ no scanning config or workflow step found; fluidkey/sara ✗ no scanning config or workflow step found; fluidkey/fluidkey-hydrator ✗ no scanning config or workflow step found
source 1 · source 2 · source 3 · source 4
Incident reporting and continuity
B3.1 Incident reporting commitment
Does the provider commit to notify customers of security or data incidents within a stated time (the partner expects 24 hours)?
Unknown
implied from the component list
B3.2 Backups and restore testing
Are customer records backed up daily and restores tested on a schedule?
Unknown
implied from the component list
B3.3 Recovery plan
Is there an approved and tested recovery plan for the service?
Unknown
implied from the component list
B3.4 Status page and post-mortems
Does the provider publish service status and post-mortems for incidents?
Unknown
implied from the component list
Identity and access (operator side)
B4.1 MFA for end users
Can or must end users protect accounts with multi-factor authentication?
Unknown
implied from the component list
B4.2 MFA and separate accounts for privileged access
Is privileged access protected by MFA and kept on separate accounts?
Unknown
implied from the component list
B4.3 Periodic access reviews
Are user access rights reviewed at least annually and privileged accounts at least six-monthly?
Unknown
implied from the component list
B4.4 Segregation of duties and joiner-mover-leaver controls
Is there a documented segregation-of-duties model and a joiner-mover-leaver process?
Unknown
implied from the component list
B4.5 Session timeout
Are idle interactive sessions terminated after a defined period (the partner expects 60 minutes)?
Unknown
implied from the component list
API and integration
B5.1 API authentication, browser to server
Which standard (OAuth 2.0, OpenID Connect, SAML, JWT) protects browser-to-server API calls?
Unknown
implied from the component list
B5.2 API authentication, server to server
Are server-to-server calls authenticated with keys or PKI certificates, and are keys scoped and rotatable?
Unknown
implied from the component list
B5.3 Token expiry
Do API tokens expire, and within what period (the partner caps it at 120 minutes for public data, 30 otherwise)?
Unknown
implied from the component list
B5.4 Export controls
If an API exports data, does it limit volumes and log exports?
Unknown
implied from the component list
Data protection and privacy governance
B6.1 Data classification and encryption
Does the provider state a data classification and enforce encryption at rest and TLS 1.2 or better in transit?
Unknown
implied from the component list
B6.2 Production data kept out of test environments
Does the provider state that production or real personal data is not used in development and testing?
Unknown
implied from the component list
B6.3 Data retention and deletion on termination
What is retained, for how long, and is customer data removed on termination?
Unknown
implied from the component list
B6.4 Data protection impact assessment and roles
For systems holding personal data, has a DPIA been completed and are controller and processor defined?
Unknown
implied from the component list
B6.5 Data processing or sharing agreement available
Can a customer obtain a data processing agreement or equivalent?
Unknown
implied from the component list
Logging and monitoring
B7.1 Audit logging
Are account changes, logins and activity on important records logged and retained?
Unknown
implied from the component list
B7.2 Central monitoring and endpoint detection
Are logs sent to a managed SIEM and is endpoint detection running on all platforms?
Unknown
implied from the component list
Hosting and network
B8.1 Hardened hosting
Are hosts hardened to a recognised benchmark, with only essential ports open, IDS/IPS, a WAF for internet-facing applications and tenant isolation?
Unknown
implied from the component list
B8.2 Deployment configuration and infrastructure as code
Does the repository ship reproducible deployment configuration (containers, IaC, Helm) that a self-hoster can harden?
Absentnone of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ no deployment configuration; fluidkey/fluidkey-earn-module ✗ no deployment configuration; fluidkey/sara ✗ no deployment configuration; fluidkey/fluidkey-hydrator ✗ no deployment configuration
source 1 · source 2 · source 3 · source 4
Engineering practice in public repositories
B9.1 Default branch protected
Does the default branch require reviews and passing checks, with no direct pushes?
Absentnone of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ no branch rules visible (classic branch protection is not readable without push access); fluidkey/fluidkey-earn-module ✗ no branch rules visible (classic branch protection is not readable without push access); fluidkey/sara ✗ no branch rules visible (classic branch protection is not readable without push access); fluidkey/fluidkey-hydrator ✗ no branch rules visible (classic branch protection is not readable without push access)
source 1 · source 2 · source 3 · source 4
B9.2 CI runs on pull requests
Does every pull request trigger automated checks?
Evidencedsome of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✓ 3 workflow file(s); fluidkey/fluidkey-earn-module ✗ no .github/workflows; fluidkey/sara ✗ no .github/workflows; fluidkey/fluidkey-hydrator ✗ 1 workflow file(s)
source 1 · source 2 · source 3 · source 4
B9.3 Tests run in CI
Do the CI workflows run the test suite?
Evidencedsome of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ test command in a workflow; fluidkey/fluidkey-earn-module ✗ test command in a workflow; fluidkey/sara ✗ test command in a workflow; fluidkey/fluidkey-hydrator ✓ test command in a workflow
source 1 · source 2 · source 3 · source 4
B9.4 Coverage reported
Is test coverage measured and reported (the partner expects 85%)?
Absentnone of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ coverage tooling referenced; fluidkey/fluidkey-earn-module ✗ coverage tooling referenced; fluidkey/sara ✗ coverage tooling referenced; fluidkey/fluidkey-hydrator ✗ coverage tooling referenced
source 1 · source 2 · source 3 · source 4
B9.5 Versioned releases
Are releases tagged with immutable semantic versions?
Evidencedsome of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✓ latest tags: v1.1.1, v1.1.0, v1.0.1; fluidkey/fluidkey-earn-module ✗ no tags; fluidkey/sara ✗ no tags; fluidkey/fluidkey-hydrator ✗ no tags
source 1 · source 2 · source 3 · source 4
B9.6 Signed tags or commits
Are release tags or recent commits cryptographically signed?
Absentnone of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✗ 1 of 10 recent commits signed; fluidkey/fluidkey-earn-module ✗ 0 of 10 recent commits signed; fluidkey/sara ✗ 0 of 10 recent commits signed; fluidkey/fluidkey-hydrator ✗ 1 of 10 recent commits signed
source 1 · source 2 · source 3 · source 4
B9.7 Changelog
Is a changelog maintained with the code?
Evidencedsome of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✓ 10 release(s) with notes; fluidkey/fluidkey-earn-module ✗ no changelog or release notes; fluidkey/sara ✗ no changelog or release notes; fluidkey/fluidkey-hydrator ✗ no changelog or release notes
source 1 · source 2 · source 3 · source 4
B9.8 Contribution and branching model documented
Does the README or contribution guide state how changes are proposed, reviewed and released?
Evidencedsome of 4 repo(s): fluidkey/fluidkey-stealth-account-kit ✓ contribution section in README; fluidkey/fluidkey-earn-module ✗ none found; fluidkey/sara ✗ none found; fluidkey/fluidkey-hydrator ✗ none found
source 1 · source 2 · source 3 · source 4
Architecture documentation
B10.1 Architecture documentation
Is there a public architecture document covering logical, infrastructure and integration architecture and the components used?
Unknown
implied from the component list
Commercial and financial
B11.1 Contracting entity
Which legal entity would an institution contract with, and in which jurisdiction?
Unknown
implied from the component list
B11.2 Funding of ongoing operation
How is ongoing operation and maintenance funded (revenue, foundation, grants, fee switch), per a primary source?
Unknown
implied from the component list
B11.3 Termination terms
What happens to customer funds and data on termination by either side?
Unknown
implied from the component list
AI components
B12.1 AI in the payment path
Does an AI system take part in payment processing or compliance decisions (for example automated transaction screening)?
Unknown
implied from the component list
B12.2 AI controls documented
If AI is used, are monitoring, validation, override, decommissioning and bias evaluation documented?
Unknown
implied from the component list

Scope of assessment

Components in the payment path

ComponentRolePublicLicenceOperatorRequired
Stealth Safe accounts (Safe 1.3.0 proxy, singleton and factory)contractsYesLGPL-3.0none (each Safe is 1-of-1, owned by a user-derived stealth EOA)Yes
Fluidkey backend (stealth address issuance, ENS offchain resolver, indexing)backendNoproprietaryFluid Privacy SAYes
Fluidkey app (web and mobile)frontendNoproprietaryFluid Privacy SAYes
Fluidkey Stealth Account Kit (@fluidkey/stealth-account-kit)sdkYesMITuser or Fluidkey appYes
Base and a JSON-RPC endpointledgerYesMITBase sequencer (Coinbase)Yes
Gas sponsorship relayerrelayerNoproprietaryFluid Privacy SANo
FluidkeyEarnModule and authorized relayers (auto-earn)contractsYesAGPL-3.0Fluid Privacy SA (owner Safe 2-of-3)No
Privy embedded wallet (web login key derivation)walletNoproprietaryPrivyNo
SARA recovery interface (recovery.fluidkey.com)frontendYesMITFluid Privacy SA, or self-hostedNo
Noah (bank feature, KYC), Near Intents, Houdini SwapotherNoproprietarythird partiesNo

Repositories

Contracts

RoleAddressSource verified
Safe 1.3.0 singleton (stealth account logic)0xd9Db…9552 explorer · Sourcifysourcify
Safe 1.3.0 proxy factory0xa6B7…6AB2 explorer · Sourcifysourcify
FluidkeyEarnModule (optional auto-earn)0x3BDb…f2f9 explorer · Sourcifysourcify

Assessor notes

Unit: Fluidkey stealth accounts on Base. Fluidkey runs no settlement contract of its own: payments are transfers into counterfactual Safe 1.3.0 proxies owned by stealth EOAs, and the optional FluidkeyEarnModule moves balances into vaults. Reads at block 52372315 via base-rpc.publicnode.com (the sample Safe 0xaAa5…8e70 came from an AutoEarnExecuted log at block 52372274). Authorized-relayer events could not be enumerated (public Base RPCs cap log ranges). No availability block: the terms refer to sanctions regimes without naming countries. No transactions, app runs, traces or self-host attempts.