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.

Nullmask

incumbentOff-chain No public chain settlementnullmask.io

Incumbent rails have no public chain settlement and no public code. They are scored with the same rubric as every other row. Their low ratings show the verifiability gap between rails whose behaviour can be inspected and rails whose behaviour must be trusted; that gap is the point of the comparison, not a claim that the incumbent is unsafe.

At a glance

Category
Incumbent baseline
Chain
Off-chainOff-chain
CROPS tally
0 of 23 hold up · 13 no evidence
Security audits
None published
Offered
All but 5 countries
Last edited
2026-10-13 · History
  1. Censorship Resistance0 FailsWeakest: Admin pause or freeze powers; Settle without the provider; Reliance on hosted services; Neutral settlement, disclosed filtering; Token and chain freeze risks disclosed
  2. Open0 FailsWeakest: Contracts verified onchain; Whole stack published; Can be self-hosted; Interfaces and data export
  3. Free0 FailsWeakest: Open-source licences; Protection against relicensing; No proprietary dependencies
  4. Privacy0 FailsWeakest: Tracking and analytics; Data collected beyond payment; Payments linkable onchain; Third parties in the payment flow; Endpoints can be changed
  5. Security0 FailsWeakest: Who holds funds in transit; Who can upgrade the code; Token approval scope; Funds safe if provider disappears; Secrets and webhook handling; Audits and bug bounty

Where it is offered

Offered everywhere except the countries listed. Checked 2026-10-09. Not scored.

From section 2.3 of the Terms of Use (effective 1 Oct 2026). Also restricted: the Crimea, Donetsk and Luhansk regions of Ukraine (Ukraine itself is not listed), and "any other country or territory under comprehensive sanctions" of the UN, US, EU or UK, which the terms do not name, so only named countries are listed. The operator may block any address, device or network. The pool contracts gate deposits through the guard, so the protocol is not usable outside the operator's service.

Excluded countries (5): Cuba, Iran, North Korea, Syria, United Arab Emirates

Evidence (1)1 documented
  1. Documented

    Section 2.3 defines the Restricted Territories.

    app.nullmask.io/terms

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

Censorship Resistance

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

0 FailsPillar rating: weakest of 5
0 of 5 Partial or better · 3 no evidence

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

Under review

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

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

A single EOA decides, deposit by deposit, whether funds enter the pool, and the operator's keys can pause withdrawals with no notice and no maximum length. Scored 0: EOA-held role that can target individual addresses.

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

    guard() on the Nullmask proxy returns 0x3AAfEd649423Ec28459D0Aadb7EdBAeff0FD9239 at block 26153596.

    0x8888…B026 on etherscan.io

    0x8888…B026 explorer · Sourcify · block 26153596 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Verified

    The guard address has no code (an EOA, nonce 95 at block 26153596).

    0x3AAf…9239 on etherscan.io

    0x3AAf…9239 explorer · Sourcify · block 26153596 · checked 2026-10-09

  3. DocumentedDrift

    Only the guard can approve or reject a pending deposit.

    docs.nullmask.io/compliance/guard-service.md

    checked 2026-10-09

  4. Documented

    The terms reserve upgrades, pauses of deposits, transfers, swaps and withdrawals, and fee changes, without notice.

    app.nullmask.io/terms

    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

0 Fails

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

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

By the operator's own terms, every transfer and withdrawal is proved by its servers and submitted by its relayer, and no tooling to do otherwise is provided. The contract source is unpublished, so a direct path cannot be reconstructed. Scored 0 on the provider's admission; only a pending deposit can be taken back directly.

Evidence (1)1 documented
  1. Documented

    The operator states transfers, swaps and withdrawals need its servers and relayer.

    app.nullmask.io/terms

    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

Under review

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

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

The RPC proxy, relayer and guard are required, closed and run by one operator. Scored 0.

Evidence (2)2 documented
  1. Documented

    The Services include the network endpoint, the screening service and the relayer, all run by the operator.

    app.nullmask.io/terms

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

  2. DocumentedDrift

    The docs describe a web/ monorepo with rpc-proxy, relayer and guard apps; the only public repo in github.com/nullmask-io is nullmask-website (a SvelteKit landing page).

    docs.nullmask.io/developer-guide/monorepo-structure.md

    checked 2026-10-09

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

Under review

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

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

Filtering sits in the settlement path itself (guard approval of each deposit, screening of withdrawal recipients) and is disclosed in docs and terms, but the contract source is unpublished and the analytics vendor is unnamed. It cannot be bypassed. Judgment call: 1 (disclosed in documents only) rather than 0, since the filtering is disclosed.

Evidence (2)2 documented
  1. DocumentedDrift

    Deposits wait in the contract until the guard approves them after chain-analysis screening.

    docs.nullmask.io/compliance/compliance.md

    checked 2026-10-09

  2. Documented

    Screening uses public sanctions lists, public blockchain data and an unnamed analytics provider, and withdrawal recipients are screened too.

    app.nullmask.io/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

Supported tokens are not enumerated in docs or public code. The terms do warn that a stablecoin issuer can freeze the pool. Scored 0: not enumerated.

Evidence (1)1 documented
  1. Documented

    Supported assets are whatever the application shows; the docs describe a token whitelist without listing tokens.

    app.nullmask.io/terms

    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
0 of 4 Partial or better · 2 no evidence

What would raise this pillar

Contracts verified onchain

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

0 Fails

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

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

The deployed contracts are unverified everywhere we looked, although the docs' threat model calls the smart contract "open-source, auditable". Scored 0.

Evidence (1)1 verified
  1. Verified

    The proxy's EIP-1967 implementation slot points at 0x4E50…0e91; Sourcify has no record of the proxy, the implementation or the upgrade controller 0x6073…cFa1, Etherscan shows all three unverified, and Blockscout reports none verified.

    0x4E50…0e91 on etherscan.io

    0x4E50…0e91 explorer · Sourcify · block 26153596 · checked 2026-10-09

Whole stack published

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

Under review

Sets the pillar ratingBest evidence: DocumentedChecked 2026-10-09 10 days agoDrift

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

Nothing in the payment path is public. Two repos under an unrelated account (rocket0xdev1025, created 2026-10-07) contain built site copies and are not first-party. Scored 0.

Evidence (1)1 documented
  1. DocumentedDrift

    The documented monorepo (app, rpc-proxy, relayer, guard, circuits, contracts) is not public; github.com/nullmask-io has one public repo, a landing page.

    docs.nullmask.io/developer-guide/monorepo-structure.md

    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: DocumentedChecked 2026-10-19 today

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

No public code, so no path to self-host. Scored 0.

Evidence (1)1 documented
  1. Documented

    The operator states it provides no tools to operate without its servers.

    app.nullmask.io/terms

    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

Under review

Sets the pillar ratingBest evidence: DocumentedChecked 2026-10-09 10 days agoDrift

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

Interfaces are documented on a hosted site only; no ABI files, API schema or export in a repo. Scored 1.

Evidence (1)1 documented
  1. DocumentedDrift

    The hosted docs describe contract hierarchy, events, errors and the RPC API; none is versioned in a public repo.

    docs.nullmask.io/smart-contract-reference/contracts.md

    checked 2026-10-09

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 · 2 no evidence

What would raise this pillar

Open-source licences

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

Under review

Sets the pillar ratingBest evidence: DocumentedChecked 2026-10-09 10 days agoDrift

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

Required components are closed, so F1 is 0.

Evidence (1)1 documented
  1. DocumentedDrift

    The code needed to run the product is in an unpublished monorepo.

    docs.nullmask.io/developer-guide/monorepo-structure.md

    checked 2026-10-09

Protection against relicensing

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

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.

No proprietary dependencies

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

0 Fails

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

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

The product cannot run without the operator's closed services. Scored 0.

Evidence (1)1 documented
  1. Documented

    Proofs, relaying and screening run only on the operator's servers.

    app.nullmask.io/terms

    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?

0 FailsPillar rating: weakest of 5
0 of 5 Partial or better · 4 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.

Data collected beyond payment

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

Under review

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

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

The weekly re-check found that a recorded fact changed. This rating counts as unknown until a reviewer re-checks it.

The operator holds every user's viewing keys and can link deposits to transfers and withdrawals; screening also covers connected addresses and fund sources. Disclosed in terms and docs. Scored 1.

Evidence (2)2 documented
  1. Documented

    The operator's servers keep the viewing keys and can see each user's balance and full history.

    app.nullmask.io/terms

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

  2. DocumentedDrift

    The threat model says a compromised proxy can observe sender, recipient and amount in remote mode.

    docs.nullmask.io/security/security.md

    checked 2026-10-09

Payments linkable onchain

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

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.

Third parties in the payment flow

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

0 Fails

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

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

The operator's proxy sees every request, and an unnamed analytics vendor receives depositor and connected addresses. Judgment call: 0 rather than 1, because the vendor's identity is not disclosed.

Evidence (1)1 documented
  1. Documented

    Screening uses an unnamed third-party blockchain analytics provider.

    app.nullmask.io/terms

    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.

Security

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

0 FailsPillar rating: weakest of 6
0 of 6 Partial or better · 2 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

0 Fails

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

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

Funds sit in an upgradeable pool whose upgrade authority rests on an EOA (S2), and the operator says an upgrade can change who can move assets. Scored 0: the provider can redirect funds.

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

    The pool is an ERC1967 proxy (implementation 0x4E50…0e91) holding about 0.26 ETH (balance read at block 26153477); upgradeController() is 0x6073…cFa1.

    0x8888…B026 on etherscan.io

    0x8888…B026 explorer · Sourcify · block 26153596 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Documented

    The terms state an upgrade can change who can move assets, with no notice.

    app.nullmask.io/terms

    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

0 Fails

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

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

Upgrades are authorised through a controller whose admin is a single EOA, with no timelock visible in its bytecode. Scored 0.

Evidence (2)2 verified
  1. Verified

    admin() of the upgrade controller returns 0xFf298cd8f82CAb44874d83507715d3dC245D9CCd; the controller's bytecode exposes only execute(address,bytes), transferAdmin(address), admin() and one view, with no delay function.

    0x6073…cFa1 on etherscan.io

    0x6073…cFa1 explorer · Sourcify · block 26153596 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19

  2. Verified

    The controller admin has no code (an EOA, nonce 81 at block 26153596).

    0xFf29…9CCd on etherscan.io

    0xFf29…9CCd explorer · Sourcify · block 26153596 · checked 2026-10-09

Token approval scope

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

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.

Funds safe if provider disappears Derived

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

0 Fails

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

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

Derived from S1=0, C2=0, C3=0, O3=0: if the operator disappeared, shielded balances could not be moved with any public tooling; only pending (unscreened) deposits can be taken back directly. Scored 0.

Evidence (1)1 documented
  1. Documented

    Shielded funds can be moved only through the operator's servers.

    app.nullmask.io/terms

    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.

Audits and bug bounty

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

0 Fails

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

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

No audit, by the operator's own statement; no bug bounty found. Scored 0.

Evidence (1)1 documented
  1. Documented

    The terms state the pool contracts are unaudited.

    app.nullmask.io/terms

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

Security audits 0

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.

No published audit report was found.

Compiled from: nullmask.io, docs.nullmask.io (client-rendered; plain fetches return only the app shell) and the terms at app.nullmask.io/terms, which state the Pool contracts have not been independently audited. No public repository exists to hold an audits folder, and no report naming Nullmask 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: 13 evidenced, 1 attested, 1 absent, 0 not applicable, 30 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

Evidenced
ComponentPaid byAmountBasis
providerpayerProtocol fee on deposits and on withdrawals, at most 1% each; current rates shown only in the appTerms 7.1 and 7.6; set by the operator and changeable without notice within the 1% cap. The rates in force were not read (the app needs a wallet; the contract is unverified).
networkpayerNetwork and service fee set by the servers; sample 0.00197 ETH on a withdrawal whose gas cost 0.00130 ETHDocs fee formula is (latest or default gas) x 1.25 x current gas price, deducted from the shielded balance and paid to the relayer; terms 7.3 say it may exceed actual gas and the difference is not refunded. Sample from tx 0x789715bd…fd02 (2026-06-23).
providerpayerETH added to each deposit; the operator keeps the crediting gas and an amount towards screening, the rest is returnedTerms 5.1 and 7.4; amount not published.
providerpayerScreening fee of up to 1% on a returned deposit, if introduced, plus the network cost of the returnTerms 5.7; not stated to be in force.
networkpayerEthereum gas for deposits and key registration sent from the user's own wallet; Uniswap V2 fee on swapsTerms 6.5 and 7.5; set by Ethereum and Uniswap.
limitnoneMinimum deposit per asset, enforced by the Pool; maximums may be set at any timeTerms 5.9; values not published.

The rail's only path runs through the operator's servers, so these fees apply to every payment. Only 30 ShieldedWithdrawal logs existed from the pool's deployment to 2026-10-09, all before the announced 2026-10-01 launch; the sample is from that period.

  1. Verified

    ShieldedWithdrawal log (topic matches the docs' event signature) in block 25380622: amount 0.00128 ETH, fee 1973875227928586 wei in ETH; the relayer's transaction used 4,530,380 gas at 0.286 gwei (about 0.00130 ETH).

    0x8888…B026 on eth.blockscout.com

    0x8888…B026 explorer · Sourcify · block 25380622 · checked 2026-10-09

  2. Documented

    Terms of Use (effective 2026-10-01) sections 5.7, 5.9, 6.5, 7.1, 7.3, 7.4 and 7.6.

    app.nullmask.io/terms

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

  3. DocumentedDrift

    Docs fee page, how the relayer fee is estimated.

    docs.nullmask.io/user-guide/fees.md

    checked 2026-10-09

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

Custody model

Evidenced

Provider-custodial

Judgment call. The terms say only the user's wallet can authorise spending and that assets are not held in an account with the operator, but the S1 finding (score 0) shows the pool is upgradeable through a controller whose admin is one EOA, and the operator says an upgrade can change who can move assets; C2 and S4 show every transfer and withdrawal needs its servers. The operator controls funds at rest, so provider_custodial rather than hybrid (as for Payy).

Evidence shared with CROPS: S1 item 1, S1 item 2, C2 item 1

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

Licences and registrations

Absent

Searched: Terms of Use and Privacy Policy (both effective 2026-10-01), docs.nullmask.io (compliance, security, architecture pages) and Companies House by name. The operator is unnamed and the privacy policy says it is established outside the EEA and the UK, so no regulator register could be searched by entity.

  1. Documented

    Terms 3.4 say the operator is not a bank, exchange, broker or payment institution; no licence, registration or regulator is named anywhere in the terms.

    app.nullmask.io/terms

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

  2. Documented

    Companies House name search for "nullmask" (the terms choose English law and London arbitration) returned no company.

    find-and-update.company-information.service.gov.uk/search/companies

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

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

Cash-out options

N/A: falls to the institution

Withdrawals send tokens to an Ethereum address the user names; converting them to local currency is outside the service. The terms list no fiat off-ramp.

Evidence shared with CROPS: C2 item 1

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

First deployment

Evidenced

2026-02-03 (block 24378139): Nullmask pool proxy 0x8888…B026 on Ethereum, created through the CreateX factory 0xba5E…a5Ed in tx 0x867dcf77…e7ed sent by 0xFf29…9CCd (now the upgrade controller's admin).

The public launch came later; the roadmap gave 1 October 2026 as the mainnet ETA and the terms take effect that day.

  1. Verified

    Blockscout gives this as the proxy's creation transaction (creator 0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed); the receipt (status 1) carries the factory's ContractCreation log for 0x8888…B026, and block 24378139 is dated 2026-02-03 18:32:35 UTC. Sourcify has no record of the contract, so its creation data could not be used.

    0x8888…B026 on eth.blockscout.com

    0x8888…B026 explorer · Sourcify · block 24378139 · checked 2026-10-09

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

Operating entity

Attested

Judgment call. The operator says an identified legal entity exists and is disclosed only on request, which is the attested state; no name, jurisdiction or register entry is public. Companies House has no "nullmask" company.

  1. Documented

    Terms 1.1 define the operator only as the company that operates the Services and offer its legal details on written request.

    app.nullmask.io/terms

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

  2. Documented

    The privacy policy says the operator is established outside the EEA and the UK.

    app.nullmask.io/privacy

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

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

Security incidents

Unknown

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

Searched: docs.nullmask.io (security, threat model), the terms and privacy policy, status.nullmask.io (does not resolve), security.txt (none on app.nullmask.io) and github.com/nullmask-io (one landing-page repo, no advisories). The operator publishes no incident or advisory channel, so absence of incidents cannot be shown. No pause events in the OpenZeppelin format appear in the pool's logs, but the contract is unverified and may log pauses differently.

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

Product changes affecting users

Evidenced
  • 2026-02-03: Pool proxy created and first implementation 0xab88…db2f set (Upgraded log, tx 0x9d1188ec…84b8). source
  • 2026-02-09: Ten further implementation upgrades between 2026-02-04 and 2026-02-09 (blocks 24380499 to 24420355); the last set 0xb801…eaea. source
  • 2026-02-23: Pool upgraded to the current implementation 0x4E50…0e91 (tx 0x27b938d9…fae0); no upgrade since. source
  • 2026-10-01: Terms of Use and Privacy Policy take effect; the roadmap's Ethereum mainnet launch date. source

Upgrades are made by the controller whose admin is an EOA, with no notice (terms 8.3). Guard or relayer address changes were not traced because the contract is unverified.

  1. Verified

    Twelve EIP-1967 Upgraded logs on the proxy from block 24378139 to latest, at blocks 24378140, 24380499, 24385676, 24388785, 24389720, 24398907, 24398912, 24398997, 24401824, 24419542, 24420355 and 24520325; the last names 0x4E50…0e91, which the implementation slot still holds (S1).

    0x8888…B026 on eth.blockscout.com

    0x8888…B026 explorer · Sourcify · block 24520325 · checked 2026-10-09

  2. DocumentedDrift

    Roadmap, phase 1 Ethereum mainnet launch.

    docs.nullmask.io/project-roadmap.md

    checked 2026-10-09

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

Volume transacted (verified only)

Not verifiable

Incumbent-typed rail with no listed settlement contract; the pool is unverified, so its events can only be read against the operator's own docs. Volumes are computed over listed, verified contracts only.

The pool emits a ShieldedWithdrawal log whose topic matches the docs' event signature, with recipient, amount, token and fee in plaintext (30 such logs to 2026-10-09). If the pool is verified and listed, a spec over topic 0xe252471d…45d7 with amount in word 4 and token in word 5 would work.

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

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
No ISO 27001 statement in the terms, privacy policy or docs; the operator is unnamed.
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
The privacy policy says the servers are in Finland; no hosting provider or certification is named.
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
No SOC 2 or ISAE report or statement of availability found.
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?
AbsentThe operator states the pool contracts were not independently audited at the effective date; no review of the servers, relayer or guard is mentioned.
CROPS S6
B1.5 Penetration testing
Is the service penetration-tested before go-live and at least every three years, with results available?
Unknown
No penetration test of the RPC proxy, relayer, guard or app found.
B1.6 Vulnerability scanning cadence
Are the platform and the application scanned for vulnerabilities at least every six months?
Unknown
The docs' code-quality page says CI runs a dependency audit (pnpm audit) on the private monorepo; no platform scanning cadence is stated.
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)?
Unknown
implied from the component list
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
No patch timelines in the terms, privacy policy or docs; no security.txt or disclosure page found.
B2.3 Dependency and vulnerability scanning in CI
Do the public repositories run dependency or code scanning automatically?
Unknown
implied from the component list
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
The privacy policy says a breach could expose account keys and history but makes no notification commitment; the terms promise in-app notice only for changes to the terms and for a shutdown.
B3.2 Backups and restore testing
Are customer records backed up daily and restores tested on a schedule?
Unknown
The docs say per-user state is kept in LMDB on the RPC proxy; no backup or restore statement found.
B3.3 Recovery plan
Is there an approved and tested recovery plan for the service?
Unknown
No recovery plan is published. The terms say only that, if the Services stop, the operator will try to give notice and time to withdraw (8.5); without its servers shielded funds cannot be moved (S4 = 0).
CROPS S4
B3.4 Status page and post-mortems
Does the provider publish service status and post-mortems for incidents?
Unknown
status.nullmask.io does not resolve and no status page or post-mortem is linked from the app or docs.
Identity and access (operator side)
B4.1 MFA for end users
Can or must end users protect accounts with multi-factor authentication?
EvidencedNo passwords or MFA. Sign-in is a wallet signature, from which the proxy derives an access token; the session cookie ends with the browser but the token stays valid server-side, and the credential saved in the wallet's network settings does not expire.
source 1 · source 2
B4.2 MFA and separate accounts for privileged access
Is privileged access protected by MFA and kept on separate accounts?
Unknown
The privacy policy says server access is restricted to authorised personnel; no MFA or separate-account statement. The pool's upgrade authority is a single EOA (S2).
B4.3 Periodic access reviews
Are user access rights reviewed at least annually and privileged accounts at least six-monthly?
Unknown
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
B4.5 Session timeout
Are idle interactive sessions terminated after a defined period (the partner expects 60 minutes)?
EvidencedThe browser session cookie lasts until the browser closes, but the token behind it stays valid on the servers and the wallet-saved credential never expires; no idle timeout is stated.
source 1
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?
EvidencedA static per-wallet access token (16 bytes of keccak over the wallet signature) sent as an HTTP-only cookie or as a query parameter in the wallet's RPC URL; no OAuth, OpenID Connect, SAML or JWT.
source 1
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
No server-to-server or partner API is documented; the roadmap lists an SDK for Q4 2026.
B5.3 Token expiry
Do API tokens expire, and within what period (the partner caps it at 120 minutes for public data, 30 otherwise)?
EvidencedAccess tokens do not expire; the same wallet always yields the same token.
source 1
B5.4 Export controls
If an API exports data, does it limit volumes and log exports?
Unknown
No export function or limits documented; the privacy policy offers data in a portable format on request.
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?
EvidencedEncryption in transit and access restricted to authorised personnel; servers in Finland. Observed: app.nullmask.io refuses TLS 1.1 and accepts TLS 1.2. No data classification or encryption at rest is stated.
source 1 · source 2
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
B6.3 Data retention and deletion on termination
What is retained, for how long, and is customer data removed on termination?
EvidencedAccount keys and private activity while the user uses the Services or until deletion is requested; deposit and screening records and the blocklist 5 years; recipient checks 24 hours; rate-limit IPs up to a day in memory; error logs 90 days; messages 12 months; website analytics 14 months. Screening records may be kept after a deletion request.
source 1
CROPS P2
B6.4 Data protection impact assessment and roles
For systems holding personal data, has a DPIA been completed and are controller and processor defined?
EvidencedThe unnamed operator is the controller; processors are listed by type (hosting, node, analytics, data and error-monitoring providers) but not by name. No DPIA is mentioned.
source 1
B6.5 Data processing or sharing agreement available
Can a customer obtain a data processing agreement or equivalent?
Unknown
No data processing agreement published or offered; the service has no business-customer terms.
Logging and monitoring
B7.1 Audit logging
Are account changes, logins and activity on important records logged and retained?
EvidencedAdministrative actions on the screening system are recorded; logging of other account or server activity is not described.
source 1
B7.2 Central monitoring and endpoint detection
Are logs sent to a managed SIEM and is endpoint detection running on all platforms?
Unknown
The privacy policy names an unnamed error-monitoring provider; no SIEM or endpoint detection statement.
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
B8.2 Deployment configuration and infrastructure as code
Does the repository ship reproducible deployment configuration (containers, IaC, Helm) that a self-hoster can harden?
Unknown
implied from the component list
Engineering practice in public repositories
B9.1 Default branch protected
Does the default branch require reviews and passing checks, with no direct pushes?
Unknown
implied from the component list
B9.2 CI runs on pull requests
Does every pull request trigger automated checks?
Unknown
implied from the component list
B9.3 Tests run in CI
Do the CI workflows run the test suite?
Unknown
implied from the component list
B9.4 Coverage reported
Is test coverage measured and reported (the partner expects 85%)?
Unknown
implied from the component list
B9.5 Versioned releases
Are releases tagged with immutable semantic versions?
Unknown
implied from the component list
B9.6 Signed tags or commits
Are release tags or recent commits cryptographically signed?
Unknown
implied from the component list
B9.7 Changelog
Is a changelog maintained with the code?
Unknown
implied from the component list
B9.8 Contribution and branching model documented
Does the README or contribution guide state how changes are proposed, reviewed and released?
Unknown
implied from the component list
Architecture documentation
B10.1 Architecture documentation
Is there a public architecture document covering logical, infrastructure and integration architecture and the components used?
EvidencedLogical and integration views on the hosted docs (system overview, components, data flow, protocol and circuit specs, contract interface and events, RPC API). Infrastructure only in outline (Fastify services on Node.js, LMDB state, servers in Finland). Not versioned in a public repository.
source 1
CROPS O4
Commercial and financial
B11.1 Contracting entity
Which legal entity would an institution contract with, and in which jurisdiction?
AttestedUnnamed operator; legal details on written request to legal@nullmask.io. English law, LCIA arbitration seated in London.
source 1
B11.2 Funding of ongoing operation
How is ongoing operation and maintenance funded (revenue, foundation, grants, fee switch), per a primary source?
EvidencedUser fees - a protocol fee of up to 1% on deposits and withdrawals and a network and service fee set above relayer gas to cover the cost of running the Services. No treasury, token or funding statement beyond that.
The roadmap mentions a MASK token on Solana; the terms say it gives no claim on fees. Not treated as funding.
source 1
B11.3 Termination terms
What happens to customer funds and data on termination by either side?
EvidencedThe operator may end access at any time without notice; assets stay recorded in the pool and withdrawals to addresses passing screening are not refused for that reason alone, but they still run through the operator's servers. On a shutdown it will try to give notice and time to withdraw.
source 1
CROPS S4
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)?
EvidencedAutomated screening of depositing, connected and recipient addresses decides whether deposits are credited and withdrawals sent, using sanctions lists, chain data and an unnamed analytics vendor; some cases go to a person. Whether AI or a learned model is used is not stated.
source 1
CROPS C4
B12.2 AI controls documented
If AI is used, are monitoring, validation, override, decommissioning and bias evaluation documented?
EvidencedA person reviews a screening decision on request by email, with no response time; no monitoring, validation, decommissioning or bias evaluation is documented.
source 1

Scope of assessment

Components in the payment path

ComponentRolePublicLicenceOperatorRequired
Nullmask Pool (UUPS proxy 0x8888…B026 and implementation; source not published)contractsNoproprietaryNullmask operator (unnamed company)Yes
AdminUpgradeController 0x6073…cFa1 (admin is an EOA)contractsNoproprietaryNullmask operatorYes
RPC proxy (wallet network endpoint; generates proofs, holds viewing keys)backendNoproprietaryNullmask operatorYes
Relayer (submits transfers, swaps and withdrawals)relayerNoproprietaryNullmask operatorYes
Guard deposit-screening service (EOA 0x3AAf…9239 approves deposits)signerNoproprietaryNullmask operatorYes
Third-party blockchain analytics provider (screening; unnamed)kycNoproprietaryunnamedYes
Nullmask web app (app.nullmask.io)frontendNoproprietaryNullmask operatorNo
Uniswap V2 (swaps inside the pool)otherYesGPL-3.0none (immutable)No
Ethereum mainnetledgerYesLGPL-3.0Ethereum validatorsYes

Repositories

None found. Absence of public code is itself a finding.

Contracts

None listed.

Assessor notes

Eligibility: no verified contract and no public repository needed to run the product, so type is incumbent although Nullmask presents itself as a privacy transfer protocol. It is deployed: the Ethereum mainnet pool proxy 0x88888888Eb71E1D68aD0C471C6893EdEEa00B026 (also listed for Arbitrum, Base, BSC and MegaETH at 0x8888…b4A2) has code and holds ETH, and app.nullmask.io is live. Searched 2026-10-09: docs.nullmask.io (supported networks, contract reference, compliance, threat model, developer guide), app.nullmask.io terms (client-rendered; read in a browser and archived), github.com/nullmask-io (one repo, nullmask-website, a SvelteKit landing page with no licence), GitHub search for "nullmask", Sourcify, Etherscan and Blockscout. Mainnet reads at block 26153596 (guard, upgrade controller, admin) and 26153477 (implementation slot, balance). Re-assess as type transfer if the contracts are verified or the monorepo is published.