{"skill":{"slug":"kaspa-dev","displayName":"Kaspa Dev","summary":"Comprehensive Kaspa blockchain development toolkit for building transactions, integrating wallets, creating dApps, block explorers, and interacting with the Kaspa network. Use when working with Kaspa blockchain development including: (1) Building and broadcasting transactions, (2) Generating addresses and managing wallets, (3) Creating dApps or block explorers, (4) Integrating Kaspa into existing applications (RainbowKit, OisyWallet, etc.), (5) Working with KRC20 tokens, (6) Setting up Kaspa nodes, (7) Using Kaspa SDKs (Rust, Go, JavaScript/TypeScript, Python, WASM). Supports Rust, Go, JavaScript/TypeScript, Python, and Motoko (Internet Computer) development.","description":"---\nname: kaspa-dev\ndescription: \"Comprehensive Kaspa blockchain development toolkit for building transactions, integrating wallets, creating dApps, block explorers, and interacting with the Kaspa network. Use when working with Kaspa blockchain development including: (1) Building and broadcasting transactions, (2) Generating addresses and managing wallets, (3) Creating dApps or block explorers, (4) Integrating Kaspa into existing applications (RainbowKit, OisyWallet, etc.), (5) Working with KRC20 tokens, (6) Setting up Kaspa nodes, (7) Using Kaspa SDKs (Rust, Go, JavaScript/TypeScript, Python, WASM). Supports Rust, Go, JavaScript/TypeScript, Python, and Motoko (Internet Computer) development.\"\n---\n\n# Kaspa Development\n\n## Overview\n\nThis skill provides comprehensive support for Kaspa blockchain development across multiple programming languages and use cases. Whether you're building a simple wallet integration, a full dApp, a block explorer, or working with KRC20 tokens, this skill provides the patterns, SDK references, and boilerplate code you need.\n\n## Quick Start\n\n### Choose Your SDK\n\nKaspa provides official SDKs for multiple languages:\n\n- **JavaScript/TypeScript**: `kaspa-wasm` - WebAssembly-based SDK for browser and Node.js\n- **Rust**: `kaspa-rpc-client` and `kaspa-wallet-core` - Native Rust SDK\n- **Go**: `github.com/kaspanet/kaspad` - Official Go implementation\n- **Python**: Community SDKs available via PyPI\n- **Motoko**: `kaspa` package on Mops for Internet Computer integration\n\n### Common Tasks\n\n#### Generate a Kaspa Address\n\n**JavaScript/TypeScript:**\n```javascript\nimport { PrivateKey, NetworkType } from 'kaspa-wasm';\n\nconst privateKey = PrivateKey.random(NetworkType.Mainnet);\nconst publicKey = privateKey.toPublicKey();\nconst address = publicKey.toAddress(NetworkType.Mainnet);\n\nconsole.log('Address:', address.toString());\nconsole.log('Private Key:', privateKey.toString());\n```\n\n**Rust:**\n```rust\nuse kaspa_wallet_core::keys::{PrivateKey, PublicKey};\nuse kaspa_consensus_core::network::NetworkType;\n\nlet private_key = PrivateKey::random(NetworkType::Mainnet);\nlet public_key = private_key.to_public_key();\nlet address = public_key.to_address(NetworkType::Mainnet);\n\nprintln!(\"Address: {}\", address.to_string());\n```\n\n**Go:**\n```go\nimport (\n    \"github.com/kaspanet/kaspad/domain/consensus/model/externalapi\"\n    \"github.com/kaspanet/kaspad/util\"\n)\n\nprivateKey, _ := util.GeneratePrivateKey()\npublicKey := privateKey.PublicKey()\naddress, _ := util.NewAddressPublicKey(publicKey.Serialize(), util.Bech32PrefixKaspaMain)\n\nfmt.Printf(\"Address: %s\\n\", address.String())\n```\n\n#### Build and Broadcast a Transaction\n\n**JavaScript/TypeScript:**\n```javascript\nimport { Transaction, RpcClient, NetworkType } from 'kaspa-wasm';\n\nconst rpc = new RpcClient({\n  url: 'wss://api.kaspa.org',\n  network: NetworkType.Mainnet\n});\n\nawait rpc.connect();\n\n// Get UTXOs for the sender address\nconst utxos = await rpc.getUtxosByAddresses([senderAddress]);\n\n// Build transaction\nconst tx = new Transaction({\n  version: 0,\n  inputs: utxos.map(utxo => ({\n    previousOutpoint: utxo.outpoint,\n    signatureScript: '', // Will be filled after signing\n    sequence: 0,\n    sigOpCount: 1\n  })),\n  outputs: [{\n    amount: amount,\n    scriptPublicKey: recipientScriptPublicKey\n  }],\n  lockTime: 0,\n  subnetworkId: '00000000000000000000000000000000'\n});\n\n// Sign transaction\nconst signedTx = await signTransaction(tx, privateKey);\n\n// Broadcast\nconst txId = await rpc.submitTransaction(signedTx);\nconsole.log('Transaction ID:', txId);\n```\n\n## SDK References\n\nFor detailed SDK documentation and examples:\n\n- **JavaScript/TypeScript (WASM)**: See [references/kaspa-wasm-sdk.md](references/kaspa-wasm-sdk.md)\n- **Rust SDK**: See [references/kaspa-rust-sdk.md](references/kaspa-rust-sdk.md)\n- **Go SDK**: See [references/kaspa-go-sdk.md](references/kaspa-go-sdk.md)\n- **Python SDK**: See [references/kaspa-python-sdk.md](references/kaspa-python-sdk.md)\n- **API Reference**: See [references/api-reference.md](references/api-reference.md) for Kaspa Developer Platform API\n\n## Integration Guides\n\n### Wallet Integration\n\nFor integrating Kaspa into wallets like RainbowKit, OisyWallet, or custom wallets:\n\nSee [references/wallet-integration.md](references/wallet-integration.md) for:\n- Wallet connection patterns\n- Transaction signing flows\n- Address management\n- Network switching\n\n### Node Operations\n\nFor setting up and operating Kaspa nodes:\n\nSee [references/node-operations.md](references/node-operations.md) for:\n- Docker deployment\n- Binary installation\n- Building from source\n- Configuration options\n- RPC node setup\n- Monitoring and maintenance\n\n### dApp Development\n\nWhen building a Kaspa dApp:\n\n1. **Setup**: Use the WASM SDK for browser compatibility\n2. **Wallet Connection**: Implement wallet adapter pattern\n3. **State Management**: Track balances, transactions, and UTXOs\n4. **Transaction Building**: Use UTXO selection algorithms\n5. **Error Handling**: Handle network failures and reorgs\n\n### Block Explorer\n\nTo build a block explorer:\n\n1. **Data Source**: Use Kaspa Developer Platform API or run your own node\n2. **Indexing**: Index blocks, transactions, and addresses\n3. **API Layer**: Build REST/GraphQL API for frontend\n4. **Frontend**: Display blocks, transactions, addresses, and network stats\n\nSee API reference for available endpoints.\n\n## KRC20 Tokens\n\nKaspa supports KRC20 tokens (similar to ERC20 on Ethereum). For token development:\n\nSee [references/krc20-tokens.md](references/krc20-tokens.md) for:\n- Token contract structure\n- Transfer and approval mechanisms\n- Token metadata\n- Integration patterns\n\n## Network Types\n\nKaspa has three network types:\n\n- **Mainnet**: Production network (prefix: `kaspa:`)\n- **Testnet**: Testing network (prefix: `kaspatest:`)\n- **Devnet**: Development network (prefix: `kaspadev:`)\n\nAlways use the correct network type for your use case.\n\n## Address Formats\n\nKaspa uses Bech32 encoding for addresses:\n\n- Mainnet: `kaspa:qqkqkzjvr7zwxxmjxjkmxx` (62 characters total)\n- Testnet: `kaspatest:qqkqkzjvr7zwxxmjxjkmxx`\n- Devnet: `kaspadev:qqkqkzjvr7zwxxmjxjkmxx`\n\n## Scripts and Utilities\n\nThe `scripts/` directory contains utility scripts:\n\n- `generate-address.py`: Generate Kaspa addresses\n- `build-transaction.py`: Build and sign transactions\n- `monitor-address.py`: Monitor address for incoming transactions\n\n## Resources\n\n### References\n\n- **api-reference.md**: Kaspa Developer Platform API documentation\n- **kaspa-wasm-sdk.md**: JavaScript/TypeScript WASM SDK guide\n- **kaspa-rust-sdk.md**: Rust SDK documentation\n- **kaspa-go-sdk.md**: Go SDK documentation\n- **kaspa-python-sdk.md**: Python SDK documentation\n- **krc20-tokens.md**: KRC20 token standard documentation\n- **wallet-integration.md**: Wallet integration patterns and examples\n- **node-operations.md**: Complete guide for running Kaspa nodes\n\n### Assets\n\nThe `assets/` directory contains boilerplate templates:\n\n- `dapp-template/`: React/Next.js dApp starter\n- `explorer-template/`: Block explorer starter\n- `wallet-adapter/`: Wallet adapter implementation\n\n## Best Practices\n\n1. **Always validate addresses** before using them\n2. **Handle UTXO selection** carefully to avoid dust outputs\n3. **Implement proper error handling** for network failures\n4. **Test on testnet** before mainnet deployment\n5. **Monitor for chain reorganizations** when confirming transactions\n6. **Use fee estimation** for timely transaction confirmation\n7. **Secure private keys** - never expose them in client-side code\n\n## Getting Help\n\n- **Documentation**: https://docs.kas.fyi/\n- **GitHub**: https://github.com/kaspanet\n- **Developer Platform**: https://kas.fyi/\n- **Motoko Package**: https://mops.one/kaspa\n","topics":["Javascript","Typescript"],"tags":{"latest":"0.1.0"},"stats":{"comments":0,"downloads":1694,"installsAllTime":64,"installsCurrent":1,"stars":4,"versions":1},"createdAt":1770361339136,"updatedAt":1778486040582},"latestVersion":{"version":"0.1.0","createdAt":1770361339136,"changelog":"Kaspa-dev 0.1.0 – Initial Release\n\n- Introduces a comprehensive development toolkit for the Kaspa blockchain.\n- Supports multiple languages: Rust, Go, JavaScript/TypeScript, Python, and Motoko.\n- Provides guides and boilerplate for transactions, wallet integration, dApp and block explorer creation, node operation, and KRC20 token work.\n- Includes best practices, integration patterns, code examples, and SDK references for rapid blockchain development.\n- Resources and templates are provided for quick project setup and standard tasks.","license":null},"metadata":null,"owner":{"handle":"codecustard","userId":"s17c9y423dcq8p1mvsmgm53t5s8859zg","displayName":"codecustard","image":"https://avatars.githubusercontent.com/u/139997?v=4"},"moderation":null}