Links

Control ACL Permissions

Learn how to manage who can access your Smart Vault content.

About ACL

ACL stands for access-control-list. Smart Vault uses smart contracts to control read, write and admin access to your files dynamically, from any device, with access to the blockchain network.

Where to find my file's ACL?

When you store a file in the Smart Vault's node as demonstrated in Getting Started -> Share a Private File section, you get a public file identifier meta, and the acl:
{
"meta":"QmbVtvd1rD9pDHpx7AUqrsh3CoCMW3Na3g4fAwXJxyaawz",
"acl":"0x7000f85C4065643435E8A350655F3153c7dd030E"
}
In case you only know your file's public meta address, you can use the /storage/meta endpoint to query information about the file, including its ACL:
curl --request GET 'http://localhost:9091/storage/meta?meta=QmbVtvd1rD9pDHpx7AUqrsh3CoCMW3Na3g4fAwXJxyaawz'
> {
"filename": "smart_vault_rocks.txt",
"ext": "txt",
"owner": "0xD119b8B038d3A67d34ca1D46e1898881626a082b",
"hash": "QmXT5yfwk9zpVHZZ9WYzAFiSV3N2YAx8nFqd5w3t2jrsvo",
"acl": "0x7000f85C4065643435E8A350655F3153c7dd030E", // <- ACL
"prev_meta_hash": ""
}

Grant a PERMISSION

You can grant a read, write or an admin permission to another blockchain account representing a real user or your second device by sending a POST request to the/acl/grant route:
curl --request POST 'http://127.0.0.1:9091/acl/grant' \
--header 'Content-Type: application/json' \
--data-raw '{
"acl": "0x7000f85C4065643435E8A350655F3153c7dd030E",
"owner": "YOUR_NODE_1_ACC",
"password": "YOUR_NODE_1_ACC_PWD",
"permission": "read",
"to": "ACCOUNT_2"
}'
> { "is_granted": "true" }
Possible permission values are:
  • read: grants read access
  • write: grants write access
  • admin: grants admin rights to an account. An admin can control the ACL in the same way the owner can
  • noaccess: revokes all permissions from an account