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.
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.
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.
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 reaching Weak: Role held by a multisig that misses one of those conditions (no timelock, undisclosed signers, bypass modules), or the constraints are documented only.
Settle without the provider reaching Weak: Partial (for example settle but not refund or withdraw), or documented only.
Neutral settlement, disclosed filtering reaching Weak: Edge filtering is disclosed in docs only, or the neutrality of the settlement layer cannot be shown from code.
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
Verified
guard() on the Nullmask proxy returns 0x3AAfEd649423Ec28459D0Aadb7EdBAeff0FD9239 at block 26153596.
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
Documented
The operator states transfers, swaps and withdrawals need its servers and relayer.
checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
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).
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
DocumentedDrift
Deposits wait in the contract until the guard approves them after chain-analysis screening.
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
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.
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
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.
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
Documented
The operator's servers keep the viewing keys and can see each user's balance and full history.
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
Documented
Screening uses an unnamed third-party blockchain analytics provider.
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
Verified
The pool is an ERC1967 proxy (implementation 0x4E50…0e91) holding about 0.26 ETH (balance read at block 26153477); upgradeController() is 0x6073…cFa1.
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
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.
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
Documented
Shielded funds can be moved only through the operator's servers.
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
Component
Paid by
Amount
Basis
provider
payer
Protocol fee on deposits and on withdrawals, at most 1% each; current rates shown only in the app
Terms 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).
network
payer
Network and service fee set by the servers; sample 0.00197 ETH on a withdrawal whose gas cost 0.00130 ETH
Docs 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).
provider
payer
ETH added to each deposit; the operator keeps the crediting gas and an amount towards screening, the rest is returned
Terms 5.1 and 7.4; amount not published.
provider
payer
Screening fee of up to 1% on a returned deposit, if introduced, plus the network cost of the return
Terms 5.7; not stated to be in force.
network
payer
Ethereum gas for deposits and key registration sent from the user's own wallet; Uniswap V2 fee on swaps
Terms 6.5 and 7.5; set by Ethereum and Uniswap.
limit
none
Minimum deposit per asset, enforced by the Pool; maximums may be set at any time
Terms 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.
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).
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).
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.
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.
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.
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.
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.
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.
Documented
Terms 1.1 define the operator only as the company that operates the Services and offer its legal details on written request.
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.
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).
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
Control
State
What 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?
Absent
The 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?
Evidenced
No 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)?
Evidenced
The 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?
Evidenced
A 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)?
Evidenced
Access 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?
Evidenced
Encryption 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?
Evidenced
Account 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?
Evidenced
The 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?
Evidenced
Administrative 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?
Evidenced
Logical 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?
Attested
Unnamed 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?
Evidenced
User 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?
Evidenced
The 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)?
Evidenced
Automated 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?
Evidenced
A 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
Component
Role
Public
Licence
Operator
Required
Nullmask Pool (UUPS proxy 0x8888…B026 and implementation; source not published)
contracts
No
proprietary
Nullmask operator (unnamed company)
Yes
AdminUpgradeController 0x6073…cFa1 (admin is an EOA)
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.