Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
ℹ️ o1js is an evolution of SnarkyJS which saw 49 updated versions over two years of development with 43,141 downloads.
This name change to o1js reflects the evolution of our vision for the premiere toolkit used by developers to build zero knowledge-enabled applications, while paying homage to our technology's recursive proof generation capabilities.
Your favorite functionality stays the same and transitioning to o1js is a quick and easy process:
To update zkApp-cli, run the following command:
npm i -g zkapp-cli@latest
To remove the now-deprecated SnarkyJS package and install o1js, run the following command:
npm remove snarkyjs && npm install o1js
For existing zkApps, make sure to update your imports from snarkyjs
to o1js
No need to redeploy, you are good to go!
o1js helps developers build apps powered by zero knowledge (zk) cryptography.
The easiest way to write zk programs is using o1js.
o1js is a TypeScript library for zk-SNARKs and zkApps. You can use o1js to write zk smart contracts based on zero-knowledge proofs for the Mina Protocol.
o1js is automatically included when you create a project using the zkApp CLI.
To learn more about developing zkApps, see the zkApp Developers docs.
For guided steps building and using zkApps, see the zkApp Developers Tutorials.
To meet other developers building zkApps with o1js, participate in the #zkapps-developers channel on Mina Protocol Discord.
For a list of changes between versions, see the CHANGELOG.
To stay up to date with o1js, see the O(1) Labs Blog.
o1js is an open source project. We appreciate all community contributions to o1js!
See the Contributing guidelines for ways you can contribute.
For guidance on building o1js from source and understanding the development workflow, see o1js README-dev.
High-quality community packages from open source developers are available for your project.
To include your package, see Creating high-quality community packages.
1.5.0 - 2024-07-09
OffchainState
where it didn't store the IndexedMerkleTree
length onchain and left it unconstrained https://github.com/o1-labs/o1js/pull/1676ForeignField
-based representation of scalars via ScalarField
https://github.com/o1-labs/o1js/pull/1705isUnusedV2()
, assertUnusedV2()
, and setUsedV2()
https://github.com/o1-labs/o1js/pull/1715Int64.create()
method for safe instance creation with canonical zero representation https://github.com/o1-labs/o1js/pull/1735Int64
operations: fromObjectV2
, divV2()
https://github.com/o1-labs/o1js/pull/1735Experimental.BatchReducer
to reduce actions in batches https://github.com/o1-labs/o1js/pull/1676
.requireEqualsIf()
https://github.com/o1-labs/o1js/pull/1676AccountUpdate.createIf()
to conditionally add an account update to the current transaction https://github.com/o1-labs/o1js/pull/1676IndexedMerkleMap.setIf()
to set a key-value pair conditionally https://github.com/o1-labs/o1js/pull/1676Provable.assertEqualIf()
to conditionally assert that two values are equal https://github.com/o1-labs/o1js/pull/1676offchainState.setContractClass()
which enables us to declare the connected contract at the top level, without creating a contract instance https://github.com/o1-labs/o1js/pull/1676
offchainState.compile()
MerkleList
https://github.com/o1-labs/o1js/pull/1676
popIfUnsafe()
, toArrayUnconstrained()
and lengthUnconstrained()
Nullifier.isUnused()
, Nullifier.assertUnused()
, and Nullifier.setUsed()
methods https://github.com/o1-labs/o1js/pull/1715createEcdsa
, createForeignCurve
, ForeignCurve
and EcdsaSignature
deprecated in favor of V2
versions due to a security vulnerability found in the current implementation https://github.com/o1-labs/o1js/pull/1703Int64
constructor, recommending Int64.create()
instead https://github.com/o1-labs/o1js/pull/1735div()
and fromObject
, methods in favor of V2 versions https://github.com/o1-labs/o1js/pull/1735AccountUpdate.defaultAccountUpdate()
in favor of AccountUpdate.default()
https://github.com/o1-labs/o1js/pull/1676TokenContract.approveAccountUpdates()
https://github.com/o1-labs/o1js/pull/1722check()
method in Struct classes to properly handle inheritance, preventing issues with under-constrained circuits. Added error handling to avoid using Struct directly as a field type. https://github.com/o1-labs/o1js/pull/1707Option
could not be used as @state
or event https://github.com/o1-labs/o1js/pull/1736FAQs
TypeScript framework for zk-SNARKs and zkApps
The npm package o1js receives a total of 585 weekly downloads. As such, o1js popularity was classified as not popular.
We found that o1js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.