https://github.com/arcana-network/storage
Arcana Storage SDK offers data privacy and enables dApp users to control any and all accesses to their data uploaded in the Arcana Store. Data owners can share, revoke, delete or transfer ownership to other users powered by blockchain.
https://github.com/arcana-network/storage
data-privacy decentralized-storage distributed-storage private-nft web3
Last synced: 5 months ago
JSON representation
Arcana Storage SDK offers data privacy and enables dApp users to control any and all accesses to their data uploaded in the Arcana Store. Data owners can share, revoke, delete or transfer ownership to other users powered by blockchain.
- Host: GitHub
- URL: https://github.com/arcana-network/storage
- Owner: arcana-network
- Created: 2021-05-28T05:46:33.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T18:51:11.000Z (almost 3 years ago)
- Last Synced: 2025-07-01T10:48:29.385Z (11 months ago)
- Topics: data-privacy, decentralized-storage, distributed-storage, private-nft, web3
- Language: JavaScript
- Homepage:
- Size: 4.26 MB
- Stars: 7
- Watchers: 1
- Forks: 7
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Arcana Network Storage SDK
# What is Storage SDK?
The Arcana Storage SDK enables you to configure dApp and allow users to store files in a region enabled by the application, share it with other users, revoke access or transfer file ownership to another user.
In the beta release, the storage nodes are operated by Arcana Networks. In the future, the storage subsystem will be fully decentralized, and third party storage nodes can be plugged into the Arcana Network storage subsystem once they meet the Arcana storage QoS criteria.
| :warning: Caution: Arcana Network SDKs and apps (Beta Release), not meant for production usage. |
|:------------------------------------------------------------------------------------------------|
## Simple to Integrate
It is super easy to integrate Arcana's Storage SDK with your dApp. Just install, add a few lines of code, and you are all set:
```ts
import { StorageProvider } from '@arcana/storage';
const storage = await StorageProvider.init({ appId, provider });
let did = await storage.upload(file)
await storage.download(did)
```
See [Usage Guide](https://docs.beta.arcana.network/docs/stgsdk_usage), for details.
| :warning: Caution: Arcana Network SDKs and apps (Beta Release), not meant for production usage.|
| :--- |
# đĒ Key Features
đī¸ Â Save dApp user data in Arcana data store
đ§Š Â Encrypt / Decrypt File data and metadata
đ Â Share data with other dApp users
đ Â Revoke access to shared data
đŧī¸ Â Change data ownership
đ Â Track data accesses via public blockchain browsers
# đī¸ Installation
## npm
```shell
npm i @arcana/storage
```
## yarn
```shell
yarn add @arcana/storage
```
You can also use the standalone module, which includes the polyfills.
```html
```
```js
import { StorageProvider } from '@arcana/storage'
```
# đ Prerequisites
Before you can start using the Arcana Storage SDK, you need to register your dApp using [Arcana Developer Dashboard](https://dashboard.beta.arcana.network/).
A unique **AppId** will be assigned to your dApp. You need to provide this to Arcana Storage SDK in order to use the SDK functionality.
# đ Documentation
Check out [Arcana Network documentation](https://docs.beta.arcana.network/) for [Storage SDK Quick Start Guide](https://docs.beta.arcana.network/docs/stgsdk_qs), [Usage Guide](https://docs.beta.arcana.network/docs/stgsdk_usage) and [Storage SDK Reference Guide](https://storagesdk-ref-guide.netlify.app/).
Refer to the [demo app](https://docs.beta.arcana.network/docs/demo-app) or the [How To Guides](https://docs.beta.arcana.network/docs/config_dapp) for performing specific tasks such as uploading/downloading a file, sharing file or revoking access to a file, and change file ownership.
# đĄ Support
For any support or integration related queries, contact [Arcana support team](mailto:support@arcana.network).
# đ¤ Contributing
We welcome all contributions to the Arcana Storage SDK from the community. Read our [contributing guide](https://github.com/arcana-network/license/blob/main/CONTRIBUTING.md) to learn about the SDK development process, how to propose bug fixes and improvements, and the code of conduct that we expect the participants to adhere to. Refer to the build and test section of this readme for details on how to test and validate your changes to the Auth SDK code before submitting your contributions.
# :computer: Development
## Build
```
npm run build
```
## Integration testing
1. In the */integration-tets/test.js* file, make sure you are using the correct chain-ID (40405) and gateway URL (https://gateway001-testnet.arcana.network/) while initializing the Arcana Storage SDK instance.
Start running an HTTP server using one of these suggested methods:
+ Eg for python 3
```
python3 -m http.server
```
+ Eg for python
```
python -m SimpleHTTPServer
```
+ One can also use packages like [http-server](https://www.npmjs.com/package/http-server), [browser-sync](https://browsersync.io/)
3. Change directory to /integration-tests/ folder.
4. Make sure to configure [MetaMask](https://metamask.io/) for Arcana network's RPC URL as https://blockchain001-testnet.arcana.network/.
# âšī¸ License
Arcana Storage is distributed under the [MIT License](https://fossa.com/blog/open-source-licenses-101-mit-license/).
For details, see [Arcana License](https://github.com/arcana-network/license/blob/main/LICENSE.md).

