Skip to content

keep-starknet-strange/shinigami

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

πŸ’»
Cypher Pepe
Cypher Pepe

πŸ’»