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.

Open · O1

Contracts verified and matching

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

Why it matters

Unverified bytecode means every other onchain finding is a guess. A full Sourcify match plus a build script lets an auditor confirm that what was reviewed is what is running.

Scoring anchors

3 StrongAll settlement contracts verified on Sourcify (full match) and on an explorer, and the repo contains a build script reproducing the deployed bytecode from a pinned commit.
2 PartialVerified on an explorer only, or partial match.
1 WeakSome contracts verified.
0 FailsUnverified. Incumbents are unknown unless they have contracts.
No evidenceNo admissible evidence submitted yet. Counts as 0 in the pillar.

Admissible evidence

  • Sourcify API response for each address verified
  • Explorer verification page verified
  • Build script at a pinned commit verified

Common failures

  • Implementation verified but proxy not, or the reverse.

Current ratings

ProviderScoreFinding
Aleo (credits.aleo private transfers)2 PartialAleo programs are stored onchain as Aleo instructions, so source and deployment can be compared directly; credits.aleo matches the snarkVM source. Sourcify does not cover Aleo, and we read the deployed program through Provable's hosted API rather than our own node. Judgment call: a full source match through an explorer-style API is anchor 2; anchor 3 is defined by Sourcify and a rebuild script, which do not apply.
AnomaPay2 PartialAll settlement contracts are partial Sourcify matches, and the adapter source equals the tagged release. No rebuild attempted. Scored 2.
Avalanche Card No evidenceNo admissible evidence yet.
Avici Card No evidenceNo admissible evidence yet.
Aztec (Alpha mainnet private token transfers)2 PartialAll L1 rollup and governance contracts are partial matches on Sourcify. We did not check L2 contract classes (the token contracts users pay with) against source, and attempted no rebuild. Scored 2: partial matches.
Bitget Wallet Card2 PartialThe settlement contracts are verified on Sourcify, mostly as partial (metadata) matches; CHF24 is a partial match and the CNH24 proxy is not on Sourcify. No public repository or build script reproduces the bytecode. Partial match without a build script, so 2.
Blanksquare (Shielder)2 PartialEvery settlement contract has public verified source: partial Sourcify matches plus explorer verification for the implementation and libraries, and an explorer similar-match for the standard ERC1967 proxy. No full match and no rebuild attempted. Scored 2.
COCA Card No evidenceNo admissible evidence yet.
Coinbase Commerce (Onchain Payment Protocol)2 PartialBoth Base Transfers contracts are exact matches on Sourcify. The cell misses 3 because the repo has no build script that reproduces the bytecode. The contract that carried most Base payments (0x0305…b7a8) was built from source that was never pushed to the repo; that source is public only through Sourcify. We did not check Basescan verification, because Basescan blocks automated requests.
Curvy1 WeakThe vault, factory and aggregator logic is verified on Sourcify (two exact matches and one partial). The verifiers every proof goes through, and the proxies, are not on Sourcify. Arbiscan and Arbitrum Blockscout served a bot challenge, which we did not bypass, so explorer verification was not checked. The verified source matches the develop branch, not main, and deployed_addresses.json lists older implementations. Scored 1: some contracts verified.
Daimo Pay2 PartialAll six settlement contracts have source verified on Basescan or Sourcify. Four are exact matches on Sourcify. DepositAddressManager is only a partial match on Sourcify, and DaimoPayExecutor is verified on the explorer only, so the cell cannot reach 3. A pinned Foundry build config exists, but we did not try to reproduce the deployed bytecode from it. The DaimoPayRelayer wrapper at 0xc88f…eE04 is an authorized relayer and is not verified anywhere. Judgment call: we class it as operator tooling rather than a settlement contract, which keeps the score at 2. If it counted as a settlement contract, the score would be 1.
Deblock Card No evidenceNo admissible evidence yet.
Ethena Pay1 WeakThe wallet logic is verified on one explorer (Routescan), but the factory implementation, which maps every wallet selector to its facet and holds the executor and global pause, is unverified anywhere. Nothing is on Sourcify apart from the beacon, and there is no public repo or build script. Some contracts verified, so 1.
ether.fi Cash Under reviewEvery settlement-path contract is verified on Sourcify or the explorer, but the Sourcify results are partial matches, not exact ones, and three contracts are explorer-only. The repo ships bytecode-comparison scripts, which is close to the reproducible-build bar, but I did not run them. Partial match = 2.
Exa Card1 WeakExa's own contracts and Rain's collateral beacon and implementation are exact matches, and Exa has a committed Foundry deploy. The exaUSDC market implementation that holds all card collateral is not on Sourcify, and the Optimism Blockscout API returned no verification record for it. Some settlement contracts are verified, so 1. Judgment call: the unverified market implementation sits in the settlement path, so I did not go higher.
Fluidkey2 PartialAll 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.
Fuse Card0 FailsThe program has no recorded verified build. The registry entry is unverified and points at a January 2024 commit whose spending-limit code (members must be multisig members) does not match observed behaviour; the audited commit 64af733 does match it. The README gives reproducible build steps, but no one has recorded a match. Unverified, so 0.
Gnosis Pay2 PartialEvery mastercopy that holds logic is verified on Sourcify, five of six as exact matches; Roles is a partial match. The minimal-proxy instances delegate to those verified mastercopies. Spender.sol and Bouncer.sol at the pinned commit are byte-identical to the Sourcify sources (apart from a trailing newline). There is no documented script that rebuilds the deployed bytecode from a pinned commit, and Roles is partial, so 2.
HesabPay No evidenceNo admissible evidence yet.
Hinkal2 PartialEvery settlement contract we checked is verified. The main contract is an exact match on Sourcify, and the helper and the registered verifiers are fully verified on Blockscout. The repo source matches the verified source. There is no build script, so anchor 3 is out of reach. Scored 2.
Holyheld Card1 WeakOnly the stock OpenZeppelin proxy and ProxyAdmin are verified. The implementation that holds the top-up logic, roles and pause is unverified everywhere checked, and no contract source is public. Some contracts verified, so 1.
Houdini Swap No evidenceNo admissible evidence yet.
Hyperbeat Card0 FailsHyperbeat Pay's contracts are deployed but not verified on HyperEVMScan or Sourcify, and the audited Liquid-Bank repository is private. Unverified, so 0. Judgment call: the provider has contracts, so O1 is scored rather than left unknown.
Jupiter Card No evidenceNo admissible evidence yet.
M-Pesa No evidenceNo admissible evidence yet.
MetaMask Card2 PartialThe settlement contract is verified: an exact match on the explorer and a partial match on Sourcify. Its source exists only in verification metadata. No public repository or build script reproduces it, so 2.
Opera MiniPay No evidenceNo admissible evidence yet.
Monero No evidenceNot applicable as worded: Monero has no contracts, and its rules run in node software that each operator builds or downloads. The repo has reproducible-build tooling (contrib/guix), but we did not verify any release binary against source.
Nullmask0 FailsThe deployed contracts are unverified everywhere we looked, although the docs' threat model calls the smart contract "open-source, auditable". Scored 0.
Oobit Card No evidenceNo admissible evidence yet.
Payy Card2 PartialThe proxy, the implementation, the ProxyAdmin and the owner Safe are exact matches on Sourcify. The live ZK verifier is only a partial match. The repo has a Hardhat deploy script but no recorded build that reproduces the deployed bytecode. Partial match plus no reproducible build gives 2.
Phantom Cash No evidenceNo admissible evidence yet.
Plasma One1 WeakRain's Coordinator and Collateral logic are verified on Plasmascan, but the beacon that decides which Collateral logic runs is not, nothing is on Sourcify, and the user wallet contract is not identified. Some contracts verified, so 1.
Privacy Pools (0xbow) Under reviewEvery settlement contract in scope is verified on Sourcify as a partial match, and the Sourcify sources equal the repo files at d494b63e and at the audited commits apart from a trailing newline. We did not rebuild the bytecode. Scored 2: partial match.
Railgun2 PartialAll in-scope contracts are verified on Sourcify; the implementation, which holds the logic, is a partial match. No rebuild attempted. Scored 2.
Request Network2 PartialAll four settlement contracts are full matches on Sourcify and exact matches on Basescan. Their sources match the repo files at this commit, apart from a trailing newline. The repo's build config does not reproduce the deployed bytecode, because it now enables the optimizer and the deployments were compiled without it. Rebuilding would need the older config from git history, and we did not try. Judgment call: we score 2 and not 3, because anchor 3 needs a repo build script that reproduces the deployed bytecode.
Rizon Card No evidenceNo admissible evidence yet.
SafePal Card2 PartialThe settlement contracts are verified on Sourcify, mostly as partial (metadata) matches; CHF24 is a partial match and the CNH24 proxy is not on Sourcify. No public repository or build script reproduces the bytecode. Partial match without a build script, so 2.
Solayer Card (Emerald Card / Solayer Pay) No evidenceNo admissible evidence yet.
Tongo (confidential ERC-20 on Starknet) No evidenceThe onchain class hashes match the docs (Tongo 0x072c…471e, Vault 0x044d…121f), but we could not show that the source compiles to them. Voyager returned 403 and was not bypassed, Starkscan renders client-side, and Starknet has no Sourcify. No rebuild was attempted.
Tornado Cash (Classic pools)1 WeakThe pools and verifier are partial matches on Sourcify, the governance-era contracts are full matches, and the hasher, which every deposit calls, has no Sourcify verification (it is generated bytecode; we could not load Etherscan). No rebuild was attempted. Judgment call: partial matches would support 2, but one settlement-path contract is unverified, so we take anchor 1.
Tria No evidenceNo admissible evidence yet.
Tuyo Card1 WeakThe account contracts are partially verified. The card collateral contracts that hold spendable funds were not identified, so not every settlement contract is verified. Some contracts verified, so 1.
Umbra Cash2 PartialBoth settlement contracts are full Sourcify matches and the build settings are in the repo. Judgment call: anchor 3 also needs a build from the pinned commit that reproduces the bytecode; the repo files differ by a trailing newline, which changes the metadata hash, and we did not rebuild, so 2.
Wirex One1 WeakMost logic contracts are verified as partial matches, but the registry that routes every role and address is unverified, and so is one implementation. No build script is public. Some contracts verified, so 1.
Wise No evidenceNo admissible evidence yet.
WORM (BETH proof-of-burn)2 PartialEvery settlement contract is an exact Sourcify match, and the deployed BETH source matches an untagged commit (eab0f53b) in the public repo. Etherscan was not checked: it blocks automated access. No rebuild was attempted, and the repo does not pin compiler settings. Judgment call: 2, not 3.
XPlace Card1 WeakThe Kamino lending program is a reproducible verified build of a pinned public commit. The rest of the payment path is not: XPlace's own contracts (claimed as FYEO-audited) and Rain's card collateral program have no published address, so their bytecode cannot be matched. Some contracts verified, so 1.
Zcash (shielded transfers) No evidenceNot applicable as worded: Zcash has no contracts, and its rules run in node software that each operator builds or downloads. Zallet documents StageX reproducible builds and Zebra publishes release binaries, but we did not verify any binary against source.
zERC20 (zBNB on BNB Chain)1 WeakMost of the zBNB contracts are verified on Sourcify, but the Verifier implementation, which every redeem calls, is not verified on BNB Chain. Its bytecode matches a verified deployment on Base. BscScan blocked automated access, and we did not bypass it. The official repository is not public, so there is no build script from a provider-published commit. Judgment call: 1 rather than 2, because one settlement contract is unverified on this chain.