% SCABBARD-PERM(1) Cargill, Incorporated | Splinter Commands


scabbard-perm — Sets or deletes a Sabre namespace permission.




This command allows users to set or delete permissions for Sabre namespaces in state for the targeted scabbard service. Setting a permission requires the namespace’s state address prefix, the name of the smart contract to set permissions for, and the -r/--read and/or -w/--write flags to indicate the permissions to set. Deleting a permission requires the namespace’s state address prefix and the --delete flag; this deletes all contracts’ permissions for the namespace.


-d, --delete
Deletes all permissions for the namespace.
-h, --help
Prints help information.
-r, --read
Adds namespace read permissions for the contract. This flag conflicts with the -d/--delete flag.
-V, --version
Prints version information
Increases verbosity. Specify multiple times for more output.
-w, --write
Adds namespace write permissions for the contract. This flag conflicts with the -d/--delete flag.


-k, --key FILE
Indicates the key file to use for signing scabbard transactions. The FILE can be a relative or absolute file path, or it can be the name of a .priv file in the $HOME/.splinter/keys directory. The target file must contain a valid secp256k1 private key. This option is required.
--service-id ID
Specifies the fully-qualified service ID of the targeted scabbard service, using the format CIRCUIT_ID::SERVICE_ID. This option is required.
-U, --url URL
Specifies the URL for the splinterd REST API that is running the targeted scabbard service. (default http://localhost:8080) This option is required.
--wait SECONDS
If provided, waits the given number of seconds for the batch to commit. Displays an error message if the batch does not commit in time.


Provides the state address prefix of the namespace to set permissions for.
Specifies the name of the contract to give permissions to for the namespace. This argument conflicts with the -d/--delete flag.


The following command gives read permissions for the abcdef namespace to the xo smart contract in a scabbard service on circuit 01234-ABCDE with service ID abcd, running on the node with the REST API endpoint http://localhost:8088. The transaction will be signed with the key located in the file ~/user.priv.

$ scabbard perm \
  --url http://localhost:8088 \
  --service-id 01234-ABCDE::abcd \
  --key ~/user.priv \
  --read \
  abcdef \

The next command gives both read and write permissions for the 012345 namespace to the intkey_multiply smart contract in the same scabbard service. It also specifies a key in the $HOME/.splinter/keys directory by name and waits up to 10 seconds for the namespace permission batch to commit.

$ scabbard perm \
  --url http://localhost:8088 \
  --service-id 01234-ABCDE::abcd \
  --key user \
  --wait 10 \
  --read \
  --write \
  012345 \

This example deletes all permissions for the 012abc namespace in the same scabbard service as the previous examples.

$ scabbard perm \
  --url http://localhost:8088 \
  --service-id 01234-ABCDE::abcd \
  --key ~/user.priv \
  --delete \


| scabbard-ns-create(1) | scabbard-ns-delete(1) | scabbard-ns-update(1) | | Splinter documentation: https://www.splinter.dev/docs/0.6/