{"_id":"@awarizon/kendra","_rev":"3-c2bf326a57893ac2a6e0fab6369b036d","name":"@awarizon/kendra","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@awarizon/kendra","version":"0.1.0","_id":"@awarizon/kendra@0.1.0","maintainers":[{"name":"awarizon","email":"info@awarizon.com"}],"bin":{"kendra":"dist/bin/kendra.js"},"dist":{"shasum":"60ba18448dc0c98fd9d596bf19adcbe3216b55f8","tarball":"https://registry.npmjs.org/@awarizon/kendra/-/kendra-0.1.0.tgz","fileCount":24,"integrity":"sha512-TLF2RQ/DHHKxMH8+vJB4MZH2dBZEgO4u/26Y1SM41pLcbI/Hjj6P42SqWILUMR0Fd+1c4OT9xFPIpnmNk9ZxVg==","signatures":[{"sig":"MEUCIQDzDti2gGtoErZvf/kblsFi49pheW3ReTQQs6XHgVGxYwIgDjeohyM/Di96yIeRgA0DL0+KESsOP/IwyIsbyW7nNnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223804},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"82aa96c8fe2ae4bff19d9276ecf220636271d092","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","postinstall":"node dist/bin/postinstall.js"},"_npmUser":{"name":"awarizon","email":"info@awarizon.com"},"_npmVersion":"9.2.0","description":"The official Awarizon developer toolchain. Build, deploy and test ink! smart contracts without touching Rust.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^8.0.0","glob":"^10.4.0","toml":"^3.0.0","chalk":"^5.3.0","dotenv":"^16.4.0","semver":"^7.6.0","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^12.0.0","@awarizon/sdk":"^0.1.0","@awarizon/core":"^0.1.0","@polkadot/api-contract":"14.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/semver":"^7.5.0","@types/prompts":"^2.4.0","@types/fs-extra":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kendra_0.1.0_1783059838803_0.11357137687268537","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@awarizon/kendra","version":"0.1.1","_id":"@awarizon/kendra@0.1.1","maintainers":[{"name":"awarizon","email":"info@awarizon.com"}],"bin":{"kendra":"dist/bin/kendra.js"},"dist":{"shasum":"c1309658d70a0fe331b2704fe236b78ee79ebc43","tarball":"https://registry.npmjs.org/@awarizon/kendra/-/kendra-0.1.1.tgz","fileCount":24,"integrity":"sha512-OEtrBNDVbpLOql8566SD87epYpx/jlzuWbUKGEhma1R1YlbwpK1RLqZ1zHS2bZlbF7J95B1foUZ95ipiGV8V+Q==","signatures":[{"sig":"MEUCIQCspOkKlFVe1NM9o/x0D51IpI+ImPTzGUGR/DRdADeEXAIgJhu1TwRyw72HVGFu9ZUl+zUmGyt6kj4L4z2x3UcgrV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223804},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e99ad42437fc33683bddbbdae7ae899521215568","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","postinstall":"node dist/bin/postinstall.js"},"_npmUser":{"name":"awarizon","email":"info@awarizon.com"},"_npmVersion":"9.2.0","description":"The official Awarizon developer toolchain. Build, deploy and test ink! smart contracts without touching Rust.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^8.0.0","glob":"^10.4.0","toml":"^3.0.0","chalk":"^5.3.0","dotenv":"^16.4.0","semver":"^7.6.0","prompts":"^2.4.2","fs-extra":"^11.2.0","commander":"^12.0.0","@awarizon/sdk":"^2.0.0","@awarizon/core":"^2.0.0","@polkadot/api-contract":"14.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/semver":"^7.5.0","@types/prompts":"^2.4.0","@types/fs-extra":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kendra_0.1.1_1783060444658_0.20065364324951607","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@awarizon/kendra","version":"0.1.2","description":"The official Awarizon developer toolchain. Build, deploy and test ink! smart contracts without touching Rust.","bin":{"kendra":"dist/bin/kendra.js"},"main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit"},"dependencies":{"@awarizon/core":"^2.0.0","@awarizon/sdk":"^2.0.0","@polkadot/api-contract":"14.3.1","commander":"^12.0.0","chalk":"^5.3.0","ora":"^8.0.0","prompts":"^2.4.2","fs-extra":"^11.2.0","semver":"^7.6.0","dotenv":"^16.4.0","glob":"^10.4.0","toml":"^3.0.0"},"devDependencies":{"typescript":"^5.0.0","tsup":"^8.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.0","@types/semver":"^7.5.0","@types/prompts":"^2.4.0"},"engines":{"node":">=18.0.0"},"gitHead":"e99ad42437fc33683bddbbdae7ae899521215568","_id":"@awarizon/kendra@0.1.2","_nodeVersion":"22.22.1","_npmVersion":"9.2.0","dist":{"integrity":"sha512-7V++UTPIPZdFmqhUgVA8dw6nX5EbsNxGIRPDspgVJJnF5Omq0KriswJf0Y1b+L+zJQOJPY1q+4UBnyeBVTb2Og==","shasum":"cd14af4d45bd6e1e750aaadd9be881191853d106","tarball":"https://registry.npmjs.org/@awarizon/kendra/-/kendra-0.1.2.tgz","fileCount":24,"unpackedSize":223753,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC1UYZqMAvKkFN9zUowCAlRxURFC5jxEwKwxA9eB9AB6QIhANClfL8T2tg6uIT+jl83cJdD4g0ziGeagkHB+VmTyeNB"}]},"_npmUser":{"name":"awarizon","email":"info@awarizon.com"},"directories":{},"maintainers":[{"name":"awarizon","email":"info@awarizon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kendra_0.1.2_1783062949935_0.7601082216713329"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T06:23:58.439Z","modified":"2026-07-03T07:15:50.227Z","0.1.0":"2026-07-03T06:23:58.947Z","0.1.1":"2026-07-03T06:34:04.800Z","0.1.2":"2026-07-03T07:15:50.113Z"},"description":"The official Awarizon developer toolchain. Build, deploy and test ink! smart contracts without touching Rust.","maintainers":[{"name":"awarizon","email":"info@awarizon.com"}],"readme":"# Kendra — Awarizon Developer Toolchain\n\nThe Hardhat of Awarizon. Build, deploy, and test ink! smart contracts without touching Rust.\n\nRust is installed **automatically** on first compile. Developers only need Node.js.\n\n## Install\n\n```bash\nnpm install -g @awarizon/kendra\n# or without installing:\nnpx kendra init my_contract\n```\n\n## Quick Start (5 minutes)\n\n```bash\nnpx kendra init my_contract\ncd my_contract\nnpm install\n\n# In one terminal:\nkendra node\n\n# In another terminal:\nkendra compile\nkendra deploy\n```\n\n## Commands\n\n### `kendra init [name]`\nScaffold a new contract project with a sample ink! contract, deploy script, and test file.\n\n```bash\nkendra init my_token\n```\n\n### `kendra compile [contract]`\nCompile ink! contracts to WebAssembly. Installs Rust and `cargo-contract` automatically if needed.\n\n```bash\nkendra compile           # compile all contracts in config\nkendra compile MyToken   # compile a specific contract\n```\n\nOutputs to `artifacts/` and generates TypeScript types in `typechain/`.\n\n### `kendra deploy [--network <name>] [--contract <name>]`\nDeploy compiled contracts to local node, testnet, or mainnet.\n\n```bash\nkendra deploy                         # deploy to local (default)\nkendra deploy --network testnet       # deploy to testnet\nkendra deploy --network mainnet --contract MyToken\n```\n\nSaves deployment addresses to `deployments/<network>.json`.\n\n### `kendra node`\nStart a local Awarizon development node (`--dev` mode, RPC at `ws://127.0.0.1:9944`).\n\n```bash\nkendra node\n```\n\n### `kendra accounts [list|generate]`\nManage accounts for development.\n\n```bash\nkendra accounts          # list dev accounts (//Alice, //Bob, etc.)\nkendra accounts list     # same as above\nkendra accounts generate # generate a new random account\n```\n\n### `kendra call <contract> <method> [args]`\nCall a deployed contract method (coming in next release).\n\n## kendra.config.ts\n\n```typescript\nimport { defineConfig } from '@awarizon/kendra'\nimport * as dotenv from 'dotenv'\n\ndotenv.config()\n\nexport default defineConfig({\n  networks: {\n    local: {\n      endpoint: 'ws://127.0.0.1:9944',\n      accounts: ['//Alice'],\n    },\n    testnet: {\n      endpoint: 'wss://testnet.awarizon.com',\n      accounts: [process.env.DEPLOYER_MNEMONIC ?? ''],\n    },\n    mainnet: {\n      endpoint: 'wss://rpc.awarizon.com',\n      accounts: [process.env.DEPLOYER_MNEMONIC ?? ''],\n    },\n  },\n  contracts: {\n    MyToken: 'contracts/my_token',\n  },\n  compiler: {\n    optimization: true,\n  },\n  typechain: {\n    outDir: 'typechain',\n  },\n  defaultNetwork: 'local',\n})\n```\n\n## Writing Contracts\n\nKendra uses [ink! 5.x](https://use.ink/) contracts. The `init` command scaffolds a starter:\n\n```rust\n#![cfg_attr(not(feature = \"std\"), no_std, no_main)]\n\n#[ink::contract]\nmod my_contract {\n    #[ink(storage)]\n    pub struct MyContract {\n        value: u32,\n    }\n\n    impl MyContract {\n        #[ink(constructor)]\n        pub fn new(initial_value: u32) -> Self {\n            Self { value: initial_value }\n        }\n\n        #[ink(message)]\n        pub fn get(&self) -> u32 { self.value }\n\n        #[ink(message)]\n        pub fn set(&mut self, new_value: u32) {\n            self.value = new_value;\n        }\n    }\n}\n```\n\nSee `templates/token/lib.rs` for a full ERC-20 token example.\n\n## TypeChain\n\nAfter compiling, Kendra generates TypeScript types in `typechain/`:\n\n```typescript\n// typechain/MyContract.ts — auto-generated\nexport interface MyContractQuery {\n  get(): Promise<number>\n}\nexport interface MyContractTx {\n  set(newValue: number): Promise<TxResult>\n}\n```\n\n## Programmatic API\n\nUse `kendra` from deploy scripts or tests:\n\n```typescript\nimport { kendra } from '@awarizon/kendra'\n\nconst [alice] = await kendra.getAccounts()\n\nconst result = await kendra.deploy('MyContract', [42], {\n  signer: alice,\n  network: 'local',\n})\n\nconsole.log('Deployed to:', result.address)\n```\n\n## Networks\n\n| Network | Endpoint |\n|---------|----------|\n| local   | `ws://127.0.0.1:9944` |\n| testnet | `wss://testnet.awarizon.com` |\n| mainnet | `wss://rpc.awarizon.com` |\n\n## Environment Setup\n\nKendra auto-installs on first `kendra compile`:\n1. Rust toolchain (rustup)\n2. `wasm32-unknown-unknown` target\n3. `cargo-contract` (ink! compiler)\n\nThis takes ~2-3 minutes on first install. Subsequent compiles are instant.\n\n## Project Structure\n\n```\nmy_contract/\n├── contracts/\n│   └── my_contract/\n│       ├── lib.rs          ← Write your ink! contract here\n│       └── Cargo.toml\n├── tests/\n│   └── my_contract.test.ts\n├── scripts/\n│   └── deploy.ts\n├── artifacts/              ← Compiled .wasm and .json (auto-generated)\n├── typechain/              ← TypeScript types (auto-generated)\n├── deployments/            ← Deployment records (auto-generated)\n└── kendra.config.ts        ← Project configuration\n```\n","readmeFilename":"README.md"}