{"id":45791678,"url":"https://github.com/paytaca/cashscript-workshop","last_synced_at":"2026-02-26T12:06:06.131Z","repository":{"id":312369889,"uuid":"1047272626","full_name":"paytaca/cashscript-workshop","owner":"paytaca","description":"A comprehensive 2-day workshop covering Bitcoin Cash smart contracts using Cashscript, from fundamentals to practical implementation with Quasar Framework.","archived":false,"fork":false,"pushed_at":"2026-02-04T14:18:06.000Z","size":2575,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-04T16:33:34.610Z","etag":null,"topics":["bitcoincash","cashscript"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paytaca.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-30T04:07:23.000Z","updated_at":"2026-02-04T14:21:51.000Z","dependencies_parsed_at":"2025-09-17T14:30:30.203Z","dependency_job_id":null,"html_url":"https://github.com/paytaca/cashscript-workshop","commit_stats":null,"previous_names":["paytaca/cashscript-workshop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/paytaca/cashscript-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paytaca%2Fcashscript-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paytaca%2Fcashscript-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paytaca%2Fcashscript-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paytaca%2Fcashscript-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paytaca","download_url":"https://codeload.github.com/paytaca/cashscript-workshop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paytaca%2Fcashscript-workshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29858461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T08:51:08.701Z","status":"ssl_error","status_checked_at":"2026-02-26T08:50:19.607Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoincash","cashscript"],"created_at":"2026-02-26T12:06:05.460Z","updated_at":"2026-02-26T12:06:06.110Z","avatar_url":"https://github.com/paytaca.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CashScript Workshop\n\nA comprehensive 2-day workshop covering Bitcoin Cash smart contracts using CashScript, from blockchain fundamentals to practical implementation with Quasar Framework.\n\n## Overview\n\nThis repository contains all materials needed to run the CashScript workshop, including presentation slides, smart contract examples, and complete Quasar applications. The workshop takes participants from blockchain basics to building real-world applications with CashScript.\n\n## Workshop Structure\n\n### Day 1: Foundations \u0026 Smart Contracts\n\n#### Morning Session: Blockchain Basics\n**File**: `presentations/day1/morning/01-blockchain-basics.html`\n\n- **Evolution of Cash**: CASH 1.0, 2.0, and 3.0 progression\n- **Transition to CASH 3.0**: Satoshi's whitepaper and Bitcoin launch\n- **What is Blockchain?**: Distributed ledger technology and main components\n- **Digital Signatures**: Ownership proof, creation process, and verification\n- **Hash Functions**: Message hashing and integrity\n- **Proof-of-Work \u0026 Sybil Prevention**: Consensus mechanism and attack prevention\n- **Consensus Rules**: Four categories of miner validation rules\n- **Bitcoin Creation**: Mining process and coinbase transactions\n- **Bitcoin Addresses**: Virtual vaults and address types (P2PKH, P2SH)\n- **UTXO Model**: Unspent outputs, combination, and transfer flow\n- **Transaction Anatomy**: Inputs, outputs, fees, and network propagation\n\n#### Afternoon Session: CashScript Language\n**File**: `presentations/day1/afternoon/01-cashscript-language.html`\n\n- **CashScript Overview**: Introduction, language capabilities, and IDE\n- **Basic Syntax**: Contract structure, data types, and operators\n- **Transaction Constraints**: Inputs/outputs, transaction data, and validation rules\n- **Signature \u0026 Wallet Constraints**: Cryptographic verification and address-based spending\n- **Address Types**: P2PKH and P2SH transactions\n- **Contract Interactions**: Contract-to-contract and time-locked contracts\n- **Tokens \u0026 NFTs**: CashTokens and non-fungible token categories\n- **Global Functions \u0026 Variables**: Built-in utility functions and system variables\n- **Coding Demo**: Live coding demonstration\n\n### Day 2: Framework Integration \u0026 Applications\n\n#### Morning Session: From Playground to JavaScript\n**File**: `presentations/day2/morning/01-playground-to-js.html`\n\n- **Goal**: Moving from CashScript Playground to local development\n- **Compiler**: CashScript compilation process (6 slides)\n- **Contract Instantiation**: Creating contract instances (8 slides)\n  - Constructor Args, Network Providers, Contract Properties, Contract Methods\n- **Transaction Builder**: Building and sending transactions (6 slides)\n  - Examples and Completing the Transaction\n- **More information**: Additional resources and documentation\n\n#### Morning Session: Quasar Framework\n**File**: `presentations/day2/morning/02-quasar-framework.html`\n\n- **Goal \u0026 Why We Need a UI**: Building blockchain app interfaces\n- **Architecture \u0026 Development Workflow**: Frontend-backend integration\n- **Quasar Framework Overview**: Vue.js framework and cross-platform benefits\n- **Vue JS Basics and App Structure**: Core concepts and project file structure\n- **Components \u0026 Props**: Reusable components and data passing\n- **Form Handling**: v-model bindings and validation\n- **Component Events**: Event communication\n- **Quasar Components**: UI component library\n- **State Management**: Pinia store integration\n- **Blockchain Integration**: Contract instantiation\n\n## Repository Structure\n\n```\ncashscript-workshop/\n├── README.md                    # This file - workshop overview\n├── package.json                 # Node.js dependencies and scripts\n├── tailwind.config.js          # Tailwind CSS configuration\n├── postcss.config.js           # PostCSS configuration\n│\n├── presentations/               # RevealJS presentation files\n│   ├── index.html              # Main presentation entry point\n│   ├── css/                    # Custom styles and Tailwind CSS\n│   │   ├── style.css           # Compiled Tailwind CSS\n│   │   └── tailwind.css        # Tailwind source file\n│   ├── day1/                   # Day 1 presentation content\n│   │   ├── morning/            # Morning session slides\n│   │   │   └── 01-blockchain-basics.html\n│   │   └── afternoon/          # Afternoon session slides\n│   │       ├── 01-cashscript-language.html\n│   │       ├── 01-cashscript-languagev2.html\n│   │       └── slides/         # Individual slide components\n│   │           ├── about-cashscript.html\n│   │           ├── cashscript-ide.html\n│   │           ├── contract-structure.html\n│   │           ├── exercises.html\n│   │           ├── global-functions.html\n│   │           ├── global-variables-*.html\n│   │           ├── introduction.html\n│   │           ├── types-and-operators.html\n│   │           └── what-is-a-smart-contract.html\n│   ├── day2/                   # Day 2 presentation content\n│   │   └── morning/            # Morning session slides\n│   │       ├── 01-playground-to-js.html\n│   │       └── 02-quasar-framework.html\n│   └── images/                 # Presentation images and assets\n│       ├── day1/afternoon/     # Day 1 afternoon images\n│       └── logos/              # Framework and tool logos\n│\n├── contracts/                  # CashScript smart contract examples\n│   ├── answers/                # Exercise solutions\n│   │   └── faucet_answer.cash\n│   ├── examples/               # Learning examples\n│   │   ├── 1_password.cash to 4_password.cash\n│   │   ├── AbsoluteLockTimeDemo.cash\n│   │   ├── CheckDataSigDemo.cash\n│   │   ├── CheckSigDemo.cash\n│   │   ├── IntrospectionVariablesDemo.cash\n│   │   ├── LockCreatorDemo.cash\n│   │   ├── MinMaxDemo.cash\n│   │   ├── RequireFunctionDemo.cash\n│   │   └── Sha256Demo.cash\n│   ├── exercises/              # Hands-on exercises\n│   │   ├── faucet.cash\n│   │   ├── FundRaiserSimpleExercise.cash\n│   │   ├── SecretNumberExercise.cash\n│   │   └── SimpleLottery.cash\n│   └── scripts/                # JavaScript integration examples\n│       ├── check-data-sig-demo.js\n│       ├── faucet.js\n│       ├── secret-number-exercise.js\n│       └── simple-lottery-exercise.js\n│\n└── quasar-apps/                # Complete Quasar applications\n    ├── paluwagan-ui/           # Paluwagan (group savings) application\n    │   ├── src/\n    │   │   ├── components/     # Vue components\n    │   │   │   ├── buttons/    # Custom button components\n    │   │   │   ├── cards/      # Card components\n    │   │   │   └── dialogs/    # Dialog components\n    │   │   ├── contracts/      # CashScript contracts\n    │   │   ├── lib/            # Utility libraries\n    │   │   ├── pages/          # Application pages\n    │   │   ├── stores/         # Pinia state management\n    │   │   └── layouts/        # Layout components\n    │   └── package.json\n    └── password-vault-ui/      # Password vault application\n        ├── src/\n        │   ├── components/     # Vue components\n        │   ├── contracts/      # CashScript contracts\n        │   ├── lib/            # Utility libraries\n        │   ├── pages/          # Application pages\n        │   └── stores/         # Pinia state management\n        └── package.json\n```\n\n## Prerequisites\n\nBefore attending the workshop, participants should have:\n\n- Basic understanding of JavaScript/TypeScript\n- Familiarity with command-line tools\n- Node.js (v16 or higher) installed\n- Git installed\n- A code editor (VS Code recommended)\n\n## Setup Instructions\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/your-org/cashscript-workshop.git\ncd cashscript-workshop\n```\n\n### 2. Install Dependencies\n\n```bash\nnpm install\n```\n\n### 3. Build CSS (if making changes)\n\n```bash\nnpm run build:css\n```\n\n### 4. Start the Presentation Server\n\n```bash\nnpm run present\n```\n\nThis will start a local server at `http://localhost:8080` with the RevealJS presentations.\n\n### 5. Development Mode (with live reload)\n\n```bash\nnpm run dev\n```\n\n### 6. Setup Development Environment\n\n```bash\nnpm run setup\n```\n\nThis script will install CashScript CLI and Quasar CLI globally.\n\n## Available Scripts\n\n- `npm run present` - Start presentation server\n- `npm run dev` - Start development server with live reload\n- `npm run setup` - Install all dependencies and tools\n- `npm run build` - Build all projects (CSS, contracts, Quasar apps)\n- `npm run build:css` - Build Tailwind CSS\n- `npm run watch:css` - Watch and rebuild CSS on changes\n- `npm run test` - Run contract tests\n- `npm run clean` - Clean all node_modules\n\n## Workshop Materials\n\n### Presentations\n- **Day 1 Morning**: Blockchain fundamentals with interactive Mermaid.js diagrams\n- **Day 1 Afternoon**: CashScript language with live coding examples\n- **Day 2 Morning**: JavaScript integration and Quasar framework\n\n### Smart Contract Examples\n- **Basic Examples**: Password contracts, signature validation, time locks\n- **Intermediate**: Multi-signature, escrow, voting systems\n- **Advanced**: DeFi protocols, NFT marketplace, DAO governance\n\n### Complete Applications\n- **Paluwagan UI**: Group savings application with CashScript integration\n- **Password Vault UI**: Secure password management with smart contracts\n\n## Key Features\n\n- **Interactive Presentations**: RevealJS with Mermaid.js diagrams and Tailwind CSS\n- **Progressive Learning**: From blockchain basics to advanced smart contracts\n- **Hands-on Exercises**: Practical coding exercises with solutions\n- **Complete Applications**: Full-stack Quasar applications with CashScript\n- **Modern Tooling**: Tailwind CSS, Pinia state management, Vue 3 composition API\n\n## Contributing\n\nThis workshop is designed to be collaborative and improve over time. Contributions are welcome:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your improvements\n4. Submit a pull request\n\n## License\n\nThis workshop content is provided under the [MIT License](LICENSE) for educational purposes.\n\n---\n\n**Happy coding! 🚀**\n\n*This workshop empowers developers to build the future of programmable money on Bitcoin Cash.*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaytaca%2Fcashscript-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaytaca%2Fcashscript-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaytaca%2Fcashscript-workshop/lists"}