An open API service indexing awesome lists of open source software.

https://github.com/keep-starknet-strange/shinigami

Bitcoin Script VM in Cairo
https://github.com/keep-starknet-strange/shinigami

bitcoin bitcoin-script cairo starknet

Last synced: about 1 year ago
JSON representation

Bitcoin Script VM in Cairo

Awesome Lists containing this project

README

          


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

```bash
scarb build
./scripts/run_bitcoin_transaction.sh
```

#### Example ( 1st Bitcoin Transaction )

```bash
scarb build
./scripts/run_bitcoin_transaction.sh f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16
```

#### Execute custom script

```bash
./scripts/run_script.sh
```

#### Example ( Basic addition script )

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

#### Other commands

Check out [this file](https://github.com/keep-starknet-strange/shinigami/blob/main/packages/cmds/src/main.cairo) to see other types of commands you can use with Shinigami!

### Building

```bash
scarb build
```

This will compile all the components.

### Testing

```bash
scarb test
```

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

### Dependencies

The following are required to use / run shinigami :

- [scarb](https://docs.swmansion.com/scarb/)

## References

- [How To Contribute](./CONTRIBUTING.md)
- [Shinigami Supported Opcodes](./resources/supported-opcodes.md)
- [Shinigami Telegram](https://t.me/ShinigamiStarknet)
- [Shinigami OnlyDust](https://app.onlydust.com/p/shinigami)
- [Bitcoin Script Wiki](https://en.bitcoin.it/wiki/Script)

## Acknowledgements

Special thanks for these projects.

- [btcd](https://github.com/btcsuite/btcd/tree/master) : 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](https://github.com/keep-starknet-strange/shinigami/blob/main/CONTRIBUTING.md) 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

πŸ’»