Security News
vlt Debuts New JavaScript Package Manager and Serverless Registry at NodeConf EU
vlt introduced its new package manager and a serverless registry this week, innovating in a space where npm has stagnated.
@cruna/protocol
Advanced tools
Welcome to Cruna Protocol, a groundbreaking innovation in the world of NFTs (Non-Fungible Tokens). Unlike ordinary NFTs, Protected NFTs, and in particular Cruna Vault tokens, are powerful tools designed to enhance the safety and management of your digital assets, perfect for pairing with ERC-6551 smart wallets.
ERC-6551 defines a system which assigns EVM-compatible accounts to all non-fungible tokens. These token bound accounts allow NFTs to own assets and interact with applications, without requiring changes to existing smart contracts or infrastructure.
While the ERC-6551 standard is a significant step forward in the evolution of NFTs, it lacks a critical component: security. The standard does not specify any security requirements for the NFT to whom the account is bound. This omission leaves the NFT vulnerable to unauthorized access and misuse, undermining the security of the entire system.
Cruna Vault is specially designed to work with ERC-6551 wallets, a new way for NFTs to manage digital assets seamlessly.
Protectors are like personal guardians for your NFT. As an NFT owner, you can appoint one or more Protectors who must approve any transfer or change. This dual-level security means even if your account is compromised, your NFT stays safe. For added convenience in specific scenarios, like in a company setting, you can set up special rules where certain transfers don't need Protector approval.
Once you set up your first Protector, adding or removing others requires approval too, ensuring no single person can make unilateral changes. This setup is ideal for those who value robust security in managing their digital assets.
It is advisable to assign multiple Protectors to maintain access to the vault even if one Protector becomes inaccessible. Reasonably, if there is a need for more than two Protectors, it may make sense to transfer the ownership of the vault to a multisig wallet.
Imagine a system that safeguards your assets even if you lose access or in case of unforeseen life events. That's what Sentinels do in Cruna Vault. They work on a Proof-of-Life system – you periodically signal that you're still in control. If you can't, Sentinels can start a process to pass your assets to a chosen Beneficiary.
This feature is not just about security; it's about peace of mind and ensuring your digital legacy is preserved and passed on as intended.
The Cruna Protocol introduces a flexible Plugin Architecture with every Cruna Vault minted. Alongside the Vault, a Manager contract owned by the Vault is deployed, acting as the central hub for managing various functionalities.
The Manager plays a key role in overseeing crucial aspects of the Vault:
When users want to enhance their Vault with additional features, they can integrate plugins into the Manager:
Despite the integration of various plugins, the ultimate control and ownership remain with the Cruna Vault owner:
This architecture offers significant benefits in terms of scalability and flexibility:
Cruna Vault's flexibility means it can be used in various ways:
Cruna Vault isn't just limited to ERC-6551 integrations; it offers a robust foundation for white-labeled NFTs aiming to boost their security, regardless of their association with ERC-6551. This makes Cruna Vault an ideal choice for NFT creators and platforms seeking to offer enhanced security features under their own brand.
For NFT Creators and Platforms:
For Collectors and Investors:
Cruna Vault's adaptable architecture makes it suitable for a wide range of applications, transcending traditional NFT use cases:
In summary, Cruna Vault's flexibility and advanced security features open up a world of possibilities, not only for ERC-6551 related applications but also for a wide array of digital assets, offering enhanced protection and legacy planning. Whether it's for individual collectors, NFT platforms, or diverse digital asset markets, Cruna Vault stands as a beacon of security and trust in the digital world.
We're continuously evolving and have exciting features in the pipeline:
This specialized vault is all about automating asset distribution. Load it with assets, set a schedule, and let it do the rest, perfect for companies distributing tokens to investors or employees.
We're introducing secure USB keys as an extra layer of security. These keys are tailored for Cruna Vaults, making them a simple yet powerful addition to your asset management toolkit.
A new family of Zero Knowledge based vaults will allow a high level of privacy.
In addition to ERC-721, Cruna Protocol may support ERC-1155 tokens in a near future. We are investigating the best way to do it and if there are reasonable use cases for it. For example, the plugin architecture could extend what an ERC-1155 token could do.
Cruna Vault is more than just an NFT; it's a comprehensive solution for securing and managing your digital assets, today and in the future. Join us in embracing this new era of digital asset security.
Cruna is in alpha stage, and to use it you must specify the version you want to install. Right now, the only available version is 1.0.0-alpha.3
. Install it with
npm install @cruna/protocol@1.0.0-alpha.3 @openzeppelin/contracts erc6551
or similar commands using Yarn or Pnpm, and use in your Solidity smart contracts, for example, as
import {ManagedNFT} from "@cruna/protocol/contracts/protected/ManagedNFT.sol";
contract MySuperToken is ManagedNFT {
constructor(
address registry_,
address guardian_,
address signatureValidator_,
address managerProxy_
) ManagedNFT("My Super Token", "MST", registry_, guardian_, signatureValidator_, managerProxy_) {}
}
If your goal is to build a plugin, look at the contracts in contracts/mocks/plugin-example to start from.
1.0.0-alpha.7
1.0.0-alpha.6
activate
to later activate the vault, creating a manager for the tokenId1.0.0-alpha.5
1.0.0-alpha.4
1.0.0-alpha.3
1.0.0-alpha.2
1.0.0-alpha.1
1.0.0-alpha.1
31 passing
--------------------------------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
--------------------------------|----------|----------|----------|----------|----------------|
contracts/ | 100 | 40 | 100 | 100 | |
CrunaFlexiVault.sol | 100 | 40 | 100 | 100 | |
contracts/factory/ | 100 | 55.36 | 100 | 95.83 | |
IVaultFactory.sol | 100 | 100 | 100 | 100 | |
VaultFactory.sol | 100 | 55.36 | 100 | 95.83 | 75,127 |
contracts/interfaces/ | 100 | 100 | 100 | 100 | |
IBoundContract.sol | 100 | 100 | 100 | 100 | |
IERC6454.sol | 100 | 100 | 100 | 100 | |
IERC6982.sol | 100 | 100 | 100 | 100 | |
IManagedERC721.sol | 100 | 100 | 100 | 100 | |
contracts/manager/ | 93.85 | 64.29 | 96.08 | 94.56 | |
Actor.sol | 100 | 70 | 100 | 100 | |
Guardian.sol | 100 | 50 | 100 | 83.33 | 21 |
IManager.sol | 100 | 100 | 100 | 100 | |
Manager.sol | 92.13 | 62.5 | 92.59 | 92.86 |... 259,261,273 |
ManagerBase.sol | 94.74 | 80 | 100 | 100 | |
ManagerProxy.sol | 100 | 100 | 100 | 100 | |
contracts/plugins/ | 100 | 100 | 100 | 100 | |
IPlugin.sol | 100 | 100 | 100 | 100 | |
contracts/plugins/inheritance/ | 100 | 72.37 | 100 | 97.67 | |
IInheritancePlugin.sol | 100 | 100 | 100 | 100 | |
InheritancePlugin.sol | 100 | 72.37 | 100 | 97.65 | 80,176 |
InheritancePluginProxy.sol | 100 | 100 | 100 | 100 | |
contracts/protected/ | 100 | 54.35 | 100 | 95.45 | |
ManagedERC721.sol | 100 | 54.35 | 100 | 95.45 | 164,176 |
contracts/utils/ | 100 | 75 | 100 | 100 | |
CrunaRegistry.sol | 100 | 100 | 100 | 100 | |
FlexiProxy.sol | 100 | 100 | 100 | 100 | |
SignatureValidator.sol | 100 | 75 | 100 | 100 | |
Versioned.sol | 100 | 100 | 100 | 100 | |
--------------------------------|----------|----------|----------|----------|----------------|
All files | 97.13 | 62.5 | 98.21 | 95.88 | |
--------------------------------|----------|----------|----------|----------|----------------|
Copyright (C) 2023 Cruna
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You may have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.en.html.
FAQs
The Cruna protocol
We found that @cruna/protocol 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
vlt introduced its new package manager and a serverless registry this week, innovating in a space where npm has stagnated.
Security News
Research
The Socket Research Team uncovered a malicious Python package typosquatting the popular 'fabric' SSH library, silently exfiltrating AWS credentials from unsuspecting developers.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.