Go to file
rvcas 7129ad6202
feat: remove authors from cli help
2022-06-18 23:06:05 -04:00
crates feat: remove authors from cli help 2022-06-18 23:06:05 -04:00
.gitignore feat: rename to aiken and add e2e tests for uplc 2022-06-11 23:22:24 -04:00
Cargo.lock Release 0.0.3 2022-06-18 22:55:04 -04:00
Cargo.toml chore: switch to a mono repo 2022-05-22 12:40:52 -04:00
LICENSE Create LICENSE 2022-06-14 18:47:40 -04:00
README.md feat: remove authors from cli help 2022-06-18 23:06:05 -04:00

README.md

AIKEN

A cardano smart contract language and toolchain

Install

For now you'll need rust installed, see rustup.

cargo install aiken

Usage

For now the command line application can only encode/decode Untyped Plutus Core to/from it's on chain format. See the roadmap below for a list of planned features and goals.

# help
aiken help

# compile an untyped plutus core program to flat
aiken uplc flat program.uplc

aiken uplc flat program.uplc --print

# output
00001011 00010110 00100001 01001000
00000101 10000001

aiken uplc flat program.uplc --out=something.flat

# decode an untyped plutus core program from flat
aiken uplc unflat program.flat

aiken uplc unflat program.flat --print

# output
(program
  11.22.33
  (con integer 11)
)

aiken uplc unflat program.flat --out=something.uplc

Roadmap

In general, the goal is to port everything we need for plutus to Rust. This will be needed if we ever want to build a full node in Rust. Since we will have these tools natively in Rust, we plan on building a new high level language for writing smart contracts on Cardano. These are generic milestones and the listed ordering is not necessariy the implementation order or full scope.

  • compile plutus core into it's on chain encoding
  • reverse the on chain encoding into plutus core
  • Plutus Core interpreter
  • create a higher level syntax with inspiration from
    • JS
    • ReasonML
    • Elm
    • Roc
    • Rust
    • Gleam
  • Language Server

Resources