Crypto Vault (off-chain)
Version 0.1.0
About
Crypto Vault is a Python library designed to securely encrypt and store secrets on-chain. It facilitates off-chain encryption followed by on-chain storage through smart contracts, offering a robust solution for managing sensitive data in blockchain applications.
Currently deployed on the Polygon Mumbai testnet only.
Requirements
- Python 3.9^
- Polygon wallet with enough MATIC to pay gas
- HTTP provider URL (Polygon-mumbai RPC)
Installation
pip install crypto-vault
Usage
Basic Workflow:
- Initialize Crypto Vault with a private key and HTTP provider.
- Store, retrieve, and update secrets on-chain.
- Encrypt and decrypt data off-chain.
Code Examples
Generate secure encryption key with Encryption
from crypto_vault import Encryption
# Generate encryption key
encryption_key = Encryption.generate_key()
Initialize Crypto Vault:
from crypto_vault.crypto_vault import CryptoVault
crypto_vault = CryptoVault(
app="myApp",
env="prod",
private_key="private_key",
encryption_key=encryption_key,
http_provider="http-provider-url-with-api-key",
)
Store, retrieve, and update secrets
# Store
crypto_vault.store(data={"password": "secret", "foo": "bar"})
# Retrieve secrets
secrets = crypto_vault.retrieve()
# Retrieve single secret
password = crypto_vault.retrieve(value_name="password")
# Update single secret
crypto_vault.update(data={"foo": "Hello world!"})
# Update secrets -> To update all secrets use crypto_vault.store()
Encrypt and decrypt data
# Encrypt
encrypted_data = crypto_vault.encrypt(data="secret")
# Decrypt
decrypted_data = crypto_vault.decrypt(data=encrypted_data)
Crypto Vault API
- Storage
- Store data. Input parameters: data(k: v)
- Retrieve data. Params: value_name(optional)
- Update parameter. Params: data
- Encryption
- Generate encryption key
- Encrypt data(str, int, list, dict). Params: value, key
- Decrypt data(bytes32). Params: value, key
Crypto Vault Smart Contract
The smart contract is designed to store encrypted data on-chain. It is deployed on the Polygon Mumbai testnet.
Release files for crypto-vault 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crypto-vault-0.1.1.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crypto_vault-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.8 kB
Release files / crypto-vault-0.1.1.tar.gz
| Download URL | crypto-vault-0.1.1.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a32a0123f480da1dd4787c0fef5c0f0c202a1f2ddf85cc6963006f7a70f6f711
|
|
BLAKE2b-256 checksum How to use checksums |
07b18586c8ad108feaaa4a96875316e8ff60a33bed0a9950e4df88eb7d8c1214
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.6
|
Release files / crypto_vault-0.1.1-py3-none-any.whl
| Download URL | crypto_vault-0.1.1-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c161863451f7469d7ef6c02541980dce133d1edd38b9bf6317de03cc8aa01de
|
|
BLAKE2b-256 checksum How to use checksums |
f27030bd922d1e044af869acd978cd116bb22919ad71600bfbe53f867054d395
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.6
|