Skip to content

Latest commit

 

History

History
173 lines (134 loc) · 21.3 KB

README.md

File metadata and controls

173 lines (134 loc) · 21.3 KB
shinigami-logo

Bitcoin Script VM in Cairo

GitHub Workflow Status

Bitcoin Cairo React

Exploration Team Telegram X

Overview

shinigami is a library for generic Bitcoin Script execution in Cairo, enabling the generation of STARK proofs for Bitcoin Script computation and Bitcoin transaction execution.

Key features :

  • Bitcoin Script interpretation and execution
  • Transaction execution and proving
  • Frontend Script IDE with STARK prover integration
  • Easily configurable VM ( enable different opcodes )
  • In cairo, Bitcoin Script compiler

Usage

Running

Execute Mainnet Transaction

scarb build
./scripts/run_bitcoin_transaction.sh <tx-id>

Example ( 1st Bitcoin Transaction )

scarb build
./scripts/run_bitcoin_transaction.sh f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16

Execute custom script

./scripts/run_script.sh <quoted-script>

Example ( Basic addition script )

./scripts/run_script.sh "OP_1 OP_2 OP_ADD OP_3 OP_EQUAL"

Other commands

Check out this file to see other types of commands you can use with Shinigami!

Building

scarb build

This will compile all the components.

Testing

scarb test

This will run the test-suite for all opcodes, integration, and testing Scripts.

Dependencies

The following are required to use / run shinigami :

References

Acknowledgements

Special thanks for these projects.

  • btcd : Bitcoin full node implementation written in Go, which heavily inspired the design of the Bitcoin Script engine in Shinigami. The amazing documentation and comments in btcd have been a gold mine and are appreciated.

Contributors ✨

Also, thanks goes to these wonderful people. Follow the contributors guide if you'd like to take part.

Brandon R
Brandon R

💻
A₿del ∞/21M 🐺 - 🐱
A₿del ∞/21M 🐺 - 🐱

💻
okhai
okhai

💻
Supreme Labs
Supreme Labs

💻
Kazeem Hakeem
Kazeem Hakeem

💻
lomasson
lomasson

💻
Prasanna Gautam
Prasanna Gautam

💻
Olufemi Olumaiyegun
Olufemi Olumaiyegun

💻
Xavek
Xavek

💻
ptisserand
ptisserand

💻
Mubarak Muhammad Aminu
Mubarak Muhammad Aminu

💻
Tristan
Tristan

💻
Harsh Pratap Singh
Harsh Pratap Singh

💻
j1mbo64
j1mbo64

💻
Jackson Xu
Jackson Xu

💻
Esther Breath
Esther Breath

💻
Varun Doshi
Varun Doshi

💻
Zintarh
Zintarh

💻
Oche
Oche

💻
Mystic
Mystic

💻
Jemiiah
Jemiiah

💻
Benedict Ejembi
Benedict Ejembi

💻
0xSpyC
0xSpyC

💻
Armin Sabouri
Armin Sabouri

💻
oluwapeski
oluwapeski

💻
ADR!AN
ADR!AN

💻
Yusuf Habib
Yusuf Habib

💻
Oshioke Salaki
Oshioke Salaki

💻
Emmanuel Soetan
Emmanuel Soetan

💻
Mexes
Mexes

💻
Iwueseiter
Iwueseiter

💻
Shantel peters.
Shantel peters.

💻
Nguyen Dao
Nguyen Dao

💻
Hunter001
Hunter001

💻
IsraelRex
IsraelRex

🎨
Josue Sandino
Josue Sandino

💻
martin machiebe
martin machiebe

💻
Steven
Steven

💻
Red
Red

💻
Charlotte
Charlotte

💻
Na'omi-Gift
Na'omi-Gift

💻
Zintarh
Zintarh

💻
BlockyJ
BlockyJ

💻
Sagar Rana
Sagar Rana

💻
Jean-Michel
Jean-Michel

💻