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
- Host: GitHub
- URL: https://github.com/keep-starknet-strange/shinigami
- Owner: keep-starknet-strange
- License: mit
- Created: 2024-07-24T04:49:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-20T01:12:49.000Z (over 1 year ago)
- Last Synced: 2024-10-20T14:53:41.909Z (over 1 year ago)
- Topics: bitcoin, bitcoin-script, cairo, starknet
- Language: Cairo
- Homepage: https://shinigamibtc.dev
- Size: 3.52 MB
- Stars: 58
- Watchers: 11
- Forks: 56
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
## 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
π»

AβΏdel β/21M πΊ - π±
π»

okhai
π»

Supreme Labs
π»

Kazeem Hakeem
π»

lomasson
π»

Prasanna Gautam
π»

Olufemi Olumaiyegun
π»

Xavek
π»

ptisserand
π»

Mubarak Muhammad Aminu
π»

Tristan
π»

Harsh Pratap Singh
π»

j1mbo64
π»

Jackson Xu
π»

Esther Breath
π»

Varun Doshi
π»

Zintarh
π»

Oche
π»

Mystic
π»

Jemiiah
π»

Benedict Ejembi
π»

0xSpyC
π»

Armin Sabouri
π»

oluwapeski
π»

ADR!AN
π»

Yusuf Habib
π»

Oshioke Salaki
π»

Emmanuel Soetan
π»

Mexes
π»

Iwueseiter
π»

Shantel peters.
π»

Nguyen Dao
π»

Hunter001
π»

IsraelRex
π¨

Josue Sandino
π»

martin machiebe
π»

Steven
π»

Red
π»

Charlotte
π»

Na'omi-Gift
π»

Zintarh
π»

BlockyJ
π»

Sagar Rana
π»

Jean-Michel
π»

Cypher Pepe
π»