Command-line Interface

The general syntax is:

$ spedn COMMAND args


To compile a contract to opcodes, use:

$ spedn compile -c MyContract.spedn

If the contract contains parameters, a template with placeholders will be generated. To instantiate the contract with particular parameter values, provide them as key=value pairs after --. For example, assuming MyContract has alicePHK parameter of type Ripemd160 and delay parameter of type TimeSpan, you can use the following:

$ spedn compile -c MyContract.spedn -- alicePKH=0xb08f0f859f53873e8f02f6c0a8290a53e76a2e0a delay=1d1h

To compile a contract to a hex representation, use:

$ spedn compile -f hex -c MyContract.spedn -- alicePKH=0xb08f0f859f53873e8f02f6c0a8290a53e76a2e0a delay=1d1h

Note that in this case, the contract must be fully instantiated (all parameters values must be provided).


Spedn defines custom Script representation called Portable. It’s a JSON-based format containing both opcodes and necessary reflection data allowing it to be instantiated in runtime libraries.

To compile a contract to Spedn Portable format, use:

$ spedn compile -f portable -c MyContract.spedn > MyCompiledContract.json