Where it is offered
Offered everywhere, per the provider's code or documents. Checked 2026-10-09. Not scored.
The protocol has no country rule, and the consensus restrictions list (which could block programs, functions or public argument values, not countries) is empty. The node, CLI and SDK contain no country or IP-geolocation gate in GitHub code search on 2026-10-09. The hosted Provable API and the consumer wallets (Shield, Leo Wallet, Puzzle) are closed, so we could not check them for geoblocking, and we found no first-party country list for them. Legality of use varies by jurisdiction; that is not an availability restriction by the protocol.
Evidence (2)2 verified
- Verified
The mainnet restrictions list is empty.
ProvableHQ/snarkVM · parameters/src/mainnet/resources/restrictions.json
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
- Verified
The reference CLI transfer has no location check; code search of snarkOS for country and geoip returns nothing.
ProvableHQ/snarkOS · cli/src/commands/developer/transfer_private.rs
commit 493fca395c · checked 2026-10-09
What would raise this pillar
- Admin pause or freeze powers reaching Partial: Such a role exists and is held by a Safe of at least 2-of-3 with disclosed signers, no enabled module or guard that bypasses the threshold, behind a timelock at least as long as the documented user exit, with its scope documented in code or NatSpec.
Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
credits.aleo itself has no admin, pause or blacklist. But the node software has a built-in restrictions list that, once a release containing entries is adopted by the validator committee, makes the chain reject named programs, functions or public argument values such as a specific address, from a chosen block height. The list is empty today. Private transfers cannot be targeted by address because their arguments are encrypted, but the whole transfer_private function could be restricted. Provable maintains the only node implementation we found, and 23 validators decide whether to run a release. Judgment call: there is no key, but an address-level filter is designed into consensus and can be activated by one release with no enforced delay, so we score 1, not 2.
Evidence (2)2 verified
- Verified
snarkVM carries a consensus-level restrictions registry that can block whole programs, single functions, or specific public or constant argument values (for example an address passed to transfer_public) over block ranges; is_argument_restricted (L237-L290) matches only public and constant inputs and outputs.
ProvableHQ/snarkVM · synthesizer/src/restrictions/mod.rs
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
- Verified
The mainnet list is empty (no programs, functions or arguments) at v4.11.0; it has been empty since it was introduced in June 2024 (commits e8e59b7f and e579d0a9).
ProvableHQ/snarkVM · parameters/src/mainnet/resources/restrictions.json
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
A payer can build and prove a transfer locally and submit it to any Aleo node, with no Provable service in the path, using the public CLI or SDK. Judgment call: anchor 3 needs onchain evidence about the deployed program, which the dashboard cannot record for Aleo addresses and programs (the schema's address formats do not fit), so we take 2; the deployed credits.aleo matches source (see O1).
Evidence (2)2 verified
- Verified
The snarkOS CLI builds a credits.aleo/transfer_private transaction locally from the user's key, input record and fee record, and broadcasts it to any endpoint given with --endpoint or --broadcast.
ProvableHQ/snarkOS · cli/src/commands/developer/transfer_private.rs
commit 493fca395c · checked 2026-10-09
- Verified
transfer_private takes the sender's record, a private recipient and a private amount, and outputs a record for the recipient and a change record; no third-party signature is required.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
No relayer or paymaster is needed, and any snarkOS node can take the transaction. Two things are hosted by Provable by default: the API endpoint, which the user can replace with their own node, and the proving parameters, which every client downloads from Provable's two URLs on first use. The parameter files are checksummed in public code, so a mirror is possible, but none is configured. Scored 2: required intermediaries with public code, no independent fallback by default.
Evidence (2)2 verified
- Verified
Proving parameters above degree 15 are downloaded from https://parameters.provable.com/mainnet with https://s3.us-west-1.amazonaws.com/mainnet.parameters as fallback; both are Provable-controlled and checksums are in the repo.
ProvableHQ/snarkVM · parameters/src/mainnet/mod.rs
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
- Verified
The SDK defaults to the Provable API (https://edge.provable.com/api/v2) when no host is passed, and the snarkOS CLI defaults to https://api.explorer.provable.com/v2 (developer/mod.rs L80); both accept any node URL.
ProvableHQ/sdk · sdk/src/program-manager.ts
commit 9bbe5e63b2 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Settlement is neutral today: the consensus restrictions list is empty and credits.aleo has no address checks. Its existence is disclosed in code, and it would apply at the settlement layer, where no direct path could bypass it (scored under C1). We found no edge filtering in the node, CLI or SDK. The hosted Provable API and the closed consumer wallets may filter, and we could not inspect them. Judgment call: 2, not 3, because 3 needs a distributed-package or trace record and because the settlement layer carries a filtering mechanism, even if empty.
Evidence (2)2 verified
- Verified
The consensus restrictions list is empty, so no program, function or argument is filtered at settlement today.
ProvableHQ/snarkVM · parameters/src/mainnet/resources/restrictions.json
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
- Verified
GitHub code search on 2026-10-09 for country and geoip in snarkOS, and country in the SDK, found no client-side gate (SDK hits are licence text and the demo website's terms).
ProvableHQ/snarkOS · cli/src/commands/developer/transfer_private.rs
commit 493fca395c · checked 2026-10-09
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Native credits have no issuer freeze, and the chain has a validator committee rather than a sequencer. Other tokens on Aleo, including stablecoin programs that Provable publishes as compliant-stablecoin examples, are out of scope here and may carry freeze lists. Neither the CLI nor the SDK tells payees about the committee or restrictions-list assumptions. Scored 2: enumerated in code, assumptions not stated.
Evidence (1)1 verified
- Verified
The unit's asset is Aleo credits held as private records or public account balances in credits.aleo; there is no issuer freeze and no sequencer.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
What would raise this pillar
- Can be self-hosted reaching Partial: Reproducible with minor undocumented steps, recorded.
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Aleo 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.
Evidence (1)1 verified
- Verified
The credits.aleo program text served for mainnet by the Provable API on 2026-10-09 is token-for-token identical to this file once comments are removed (1,471 tokens each).
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-09 10 days ago
UnreviewedAssessed by AI research agent (seed), 2026-10-09
The node, VM, settlement program, CLI and SDK are public, and the node's REST API is in its source. The hosted indexer and explorer API that the SDK and CLI use by default, and every consumer wallet we know of, have no public source. Scored 2: everything a user strictly needs is public, but the default backend and the usual frontends are not.
Evidence (1)1 verified
- Verified
Node and REST API (snarkOS@493fca39, v4.11.0), VM and credits.aleo (snarkVM@29343ebb), and SDK (sdk@9bbe5e63, v0.12.0) are public; the hosted explorer API and the consumer wallets were not found in any public repository.
ProvableHQ/snarkOS · node/rest
commit 493fca395c · checked 2026-10-09
Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Build and run documentation exists for the node. Reproduction not attempted, so the score is capped at 1.
Evidence (1)1 verified
- Verified
The snarkOS README covers requirements, installation, ports and running a client, validator or prover.
ProvableHQ/snarkOS · README.md
commit 493fca395c · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
The program interface and the node API are versioned in the repos. We found no payee export format in the CLI or SDK. Scored 2: interfaces present, export absent.
Evidence (1)1 verified
- Verified
The settlement program's interface (functions, inputs, records, mappings, finalize logic) is in the repo; the node's REST routes are defined in snarkOS node/rest/src/lib.rs.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
What would raise this pillar
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Every listed repository, including all required ones (node, VM and settlement program), carries an OSI-approved licence. Closed components (hosted API, proving and scanning services, consumer wallets) are optional.
Evidence (1)1 verified
- Verified
snarkVM and snarkOS are Apache-2.0; the SDK and Leo are GPL-3.0.
ProvableHQ/snarkVM · LICENSE.md
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
There is no CLA and no written licence-stability commitment. The node and VM were relicensed from GPL to Apache-2.0 in May 2023, which widened rights but shows the maintainer can change the licence of future versions. Judgment call: anchor 0 names any prior relicense event; under the take-the-lower-anchor rule we score 0, though the change was permissive.
Evidence (1)1 verified
- Verified
snarkVM's licence changed from GPL to Apache-2.0 in commit b8cd7cbc (2023-05-21) and snarkOS's in 2f449c59 the same day; no CLA appears in either repo's CONTRIBUTING or workflows.
ProvableHQ/snarkVM · LICENSE.md
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
A production deployment (own node, CLI or SDK) needs no proprietary software. The proving parameters are fetched from Provable's hosts but are open data that can be mirrored. The hosted API, delegated proving and record scanning are optional. Judgment call: 2, since we made no O3 reproduction and the parameter hosting has no independent default.
Evidence (1)1 verified
- Verified
The only hosted dependency on the required path is the proving-parameter download, which is public, Apache-licensed data checked against hashes in the repo.
ProvableHQ/snarkVM · parameters/src/mainnet/mod.rs
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
What would raise this pillar
Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-12 7 days ago
UnreviewedAssessed by AI research agent (seed), 2026-10-09
The SDK, CLI and node ship no third-party analytics. The SDK's demo website imports Amplitude, but its init call is commented out, and the website is not on the payment path. The closed consumer wallets were not inspected. Judgment call: absence shown in code and the published package, with no trace, is capped at 2.
Evidence (1)1 verified
- Verified
The SDK's runtime dependencies are @provablehq/wasm, @scure/base, @serenity-kit/noble-sodium, comlink, core-js, mime and xmlhttprequest-ssl, with no analytics or error reporting; snarkOS validator telemetry is local metrics exposed on the node's own REST API.
ProvableHQ/sdk · sdk/package.json
commit 9bbe5e63b2 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-12
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
The protocol collects only what settlement needs. No required component holds account or identity data. Optional Provable services see more: the hosted API sees the submitting IP, and the record-scanning service, if used, needs the user's view key.
Evidence (1)1 verified
- Verified
transfer_private takes only a record, a recipient and an amount; the fee functions add only the fee amount and an execution id.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
A transfer_private with a private fee reveals no payer, payee or amount onchain; the program and function name, timing and transaction size are visible. Paying the fee publicly (fee_public) reveals the payer's address, and public transfers are fully transparent; both are explicit choices in the SDK and CLI. The anonymity set depends on how much activity uses records, which we do not score. Judgment call: we score what the protocol offers for a private transfer, which is anchor 3.
Evidence (2)2 verified
- Verified
transfer_private keeps sender, recipient and amount private (encrypted records); transfer_private_to_public and transfer_public_to_private reveal one side and the amount, as the program comments state.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
- Verified
The SDK's transfer builder makes the caller choose the transfer type and whether to pay the fee from a private record or the public balance.
ProvableHQ/sdk · sdk/src/program-manager.ts
commit 9bbe5e63b2 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Sets the pillar ratingBest evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
By default the SDK and CLI query and broadcast through Provable's API, which sees the user's IP, the records they look up and the transactions they submit; the parameter host sees downloads. All are named in code and swappable for a self-run node. Optional delegated proving and record scanning send more (an authorization or a view key) to Provable. Scored 2: third parties present, named in code, swappable by config.
Evidence (1)1 verified
- Verified
The default host (edge.provable.com) is named in code and replaced by passing a host; the network client also takes optional prover and record-scanner URIs (network-client.ts L120-L124).
ProvableHQ/sdk · sdk/src/program-manager.ts
commit 9bbe5e63b2 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-09 10 days ago
UnreviewedAssessed by AI research agent (seed), 2026-10-09
The RPC and data endpoint is configurable in the SDK and CLI, and the node that provides it is public. Scored 3.
Evidence (1)1 verified
- Verified
The CLI takes --endpoint for queries and --broadcast for submission; the SDK takes a host argument; the node that serves both is public (snarkOS node/rest).
ProvableHQ/snarkOS · cli/src/commands/developer/transfer_private.rs
commit 493fca395c · checked 2026-10-09
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
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Value moves directly from the payer's record to a record the payee owns. No one holds funds in flight. Judgment call: anchor 3 in substance, but 3 needs onchain evidence the schema cannot carry for Aleo, so we take 2.
Evidence (1)1 verified
- Verified
transfer_private consumes the sender's record and creates a record owned by the recipient in the same transition; no escrow or third party holds funds.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
credits.aleo and the consensus rules change only through snarkVM releases with fixed activation heights, which the 23 validators must run. Provable maintains the only implementation we found, and it has shipped 21 consensus versions in about two years, each activated at a block height fixed in the release; we did not check how far ahead each release shipped. There is no enforced delay or user-exit window. Judgment call: notice exists through heights fixed in releases (V21 carried a target date in code), so we take 2, as for other own-chain protocols; 3 would also need onchain evidence the schema cannot carry. The restrictions list is scored under C1.
Evidence (2)2 verified
- Verified
Mainnet has had 21 consensus versions since launch, the latest (V21) at height 22,437,000 with a comment giving its target time (2026-10-01 21:00 UTC); V22 is reserved. The Provable API reported height 22,659,198 on 2026-10-09.
ProvableHQ/snarkVM · console/network/src/consensus_heights.rs
commit 29343ebbb7 · checked 2026-10-09
- Verified
Joining the committee needs at least 10M credits delegated (L242); the committee read through the Provable API on 2026-10-09 had 23 members, 21 open to delegation, about 1.05 billion credits bonded.
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
There are no allowances for native credits; each payment is executed by the owner, so nothing can pull funds later. Judgment call: better than exact-amount approvals in substance, but 3 needs a distributed-package or trace record, so we take 2.
Evidence (1)1 verified
- Verified
credits.aleo has no approve or allowance function; every transfer is executed by the owner's key (self.caller, self.signer or record ownership).
ProvableHQ/snarkVM · synthesizer/program/src/resources/credits.aleo
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Derived from S1=2 (anchor 3 in substance), C2=2, C3=2 and O3=1. Funds are records or balances under the user's key (S1), and any node accepts a transaction (C2). But spending needs proving parameters that the code fetches only from Provable-run hosts (C3); if Provable disappeared, a user without a cached copy would need to obtain the files elsewhere and check them against the published hashes, a manual step no repo documents. We did not reproduce a self-hosted setup (O3=1). Judgment call: funds are retrievable without Provable only by that undocumented manual step, so we score 1.
Evidence (1)1 verified
- Verified
Every execution, including a withdrawal of one's own credits, needs proving parameters that clients download only from Provable's two URLs unless already cached.
ProvableHQ/snarkVM · parameters/src/mainnet/mod.rs
commit 29343ebbb7 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Best evidence: VerifiedChecked 2026-10-19 today
UnreviewedAssessed by AI research agent (seed), 2026-10-09
Private keys stay with the user; the protocol has no webhooks. The SDK supports an optional gateway API key or JWT, which an integrator could ship in a browser bundle; the SDK does not do so itself. Using the optional record-scanning service hands a view key to Provable. Judgment call: 2, since 3 needs a package or trace record and the optional services widen key exposure.
Evidence (1)1 verified
- Verified
The SDK accepts an optional API key or JWT for Provable's gateway, supplied by the integrator; none is bundled.
ProvableHQ/sdk · sdk/src/network-client.ts
commit 9bbe5e63b2 · checked 2026-10-09 · source unchanged at weekly re-read 2026-10-19
Sets the pillar rating
UnreviewedAssessed by AI research agent (seed), 2026-10-09
No checkable evidence settles this yet, so it counts as 0.
We found no audit report pinned to a commit in snarkVM, snarkOS or the SDK; snarkVM's SECURITY.md (L1-L11) asks for reports by GitHub issue or email and mentions no bounty. External audits and bounty programmes are known by reputation only, which we do not score.
Security audits 13
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.
Compiled from: Aleo's Security Audits docs page (source in github.com/AleoNet/aleo-docs-source, learn/reference/security-audits.mdx; developer.aleo.org returned a Cloudflare challenge and was not bypassed), the Aleo Foundation post "Aleo completes security audits of snarkOS & snarkVM", the repos of ProvableHQ/snarkVM, snarkOS, sdk and leo (no audits folder), github.com/trailofbits/publications, reports.zksecurity.xyz, and Veridise's audit archive. NCC Group published two Aleo reports (snarkVM implementation review, 2023-12-13; snarkOS implementation and consensus review, 2024-02-08) at research.nccgroup.com, linked from the Aleo post; they are listed from that post's links and public summaries because every NCC URL returned 403 to scripted requests, so their findings counts were not read. Provable's formal-verification and fuzzing blog posts are not reports. Third-party Leo programs (Demox, Hyperlane, Sealance, Venture23) are out of scope. No published audit of the Provable SDK or Leo was found. Checked 2026-10-13. Only published reports are listed; private audits a provider mentions without a report are not.
Scope of assessment
Components in the payment path
Assessor notes
Unit: Aleo mainnet credits.aleo transfers, private path. Pins: snarkVM@29343ebb (v4.11.0), snarkOS@493fca39 (v4.11.0), sdk@9bbe5e63 (v0.12.0). Aleo addresses (aleo1..., bech32, 63 characters) and program IDs do not fit the schema's address formats, so chain reads (height, committee, deployed credits.aleo) were made through the Provable API and are recorded in repo evidence details with curl rechecks; C1, C2, S1 and S2 are capped accordingly. No transactions, node runs, builds, traces or self-host attempts were made.