Obsidian: A safer blockchain programming language

Obsidian is a new programming language for writing smart contracts, which are programs for blockchain platforms.

Obsidian includes two main innovations relative to current languages for these platforms:

  1. State-oriented programming lets you declare and transition among states explicitly. Our research suggests that a large fraction of blockchain programs are organized around a high-level state machine.
  2. Linear types ensure that important resources managed by your programs are managed correctly. No more accidentally making money vanish into thin air; the compiler will keep you safe.

Obsidian is currently under development and is not ready for general use. For more details about Obsidian, for now, please read our papers. Want to help? Participate in our user study.

Publications

Please see our working draft for a technical description of the language and a summary of the case studies we have done to date. That paper also summarizes (briefly) some of the formative user studies we've done.

More publications »

User Study

We are conducting a user study to find out which of several possible language designs works best for programmers. Participate in the experiment to help advance the science of language design!

User study »


Team

Obsidian is a project by: