{"id":28900213,"url":"https://github.com/chase-manning/skittles","last_synced_at":"2026-03-07T21:07:53.611Z","repository":{"id":291714024,"uuid":"521945384","full_name":"chase-manning/skittles","owner":"chase-manning","description":"Write, Test and Deploy EVM Smart Contracts with TypeScript","archived":false,"fork":false,"pushed_at":"2026-02-27T09:41:56.000Z","size":4317,"stargazers_count":38,"open_issues_count":21,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-27T09:51:59.117Z","etag":null,"topics":["compiler","ethereum","evm","language","smart-contracts","typescript"],"latest_commit_sha":null,"homepage":"https://skittles.dev/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chase-manning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2022-08-06T12:50:04.000Z","updated_at":"2026-02-27T09:41:58.000Z","dependencies_parsed_at":"2025-05-06T07:28:45.804Z","dependency_job_id":null,"html_url":"https://github.com/chase-manning/skittles","commit_stats":null,"previous_names":["chase-manning/skittles"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/chase-manning/skittles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chase-manning%2Fskittles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chase-manning%2Fskittles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chase-manning%2Fskittles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chase-manning%2Fskittles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chase-manning","download_url":"https://codeload.github.com/chase-manning/skittles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chase-manning%2Fskittles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30231492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"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":["compiler","ethereum","evm","language","smart-contracts","typescript"],"created_at":"2025-06-21T09:30:33.103Z","updated_at":"2026-03-07T21:07:53.575Z","avatar_url":"https://github.com/chase-manning.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://skittles.dev/\"\u003e\n  \u003cimg src=\"https://skittles.dev/banner.png\" alt=\"Skittles\" width=\"100%\" /\u003e\n\u003c/a\u003e\n\n# Skittles\n\nWrite, Test and Deploy EVM Smart Contracts with TypeScript.\n\nSkittles compiles TypeScript classes to Solidity source code, then to ABI and EVM bytecode. You get TypeScript tooling (autocomplete, type checking, familiar syntax) while targeting the EVM.\n\nWebsite: [skittles.dev](https://skittles.dev/)\n\n## Install\n\n```bash\nnpm install skittles\n```\n\nRequires Node.js 20+.\n\n## Quick Start\n\n```bash\nnpx skittles init\nnpx skittles compile\n```\n\nThis creates a `contracts/` directory with an example token contract and compiles it to `build/`.\n\n## Example\n\n```typescript\nimport { address, msg, SkittlesEvent, Indexed } from \"skittles\";\n\nexport class Token {\n  Transfer: SkittlesEvent\u003c{\n    from: Indexed\u003caddress\u003e;\n    to: Indexed\u003caddress\u003e;\n    value: number;\n  }\u003e;\n\n  name: string = \"My Token\";\n  symbol: string = \"TKN\";\n  totalSupply: number = 0;\n  balances: Record\u003caddress, number\u003e = {};\n\n  constructor(initialSupply: number) {\n    this.totalSupply = initialSupply;\n    this.balances[msg.sender] = initialSupply;\n  }\n\n  transfer(to: address, amount: number): boolean {\n    if (this.balances[msg.sender] \u003c amount) {\n      throw new Error(\"Insufficient balance\");\n    }\n    this.balances[msg.sender] -= amount;\n    this.balances[to] += amount;\n    this.Transfer.emit({ from: msg.sender, to, value: amount });\n    return true;\n  }\n}\n```\n\nThis compiles to a Solidity contract with events, mappings, a constructor, and a transfer function.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n## License\n\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchase-manning%2Fskittles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchase-manning%2Fskittles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchase-manning%2Fskittles/lists"}