К основному содержанию
скилл CX Codex

hts-system-contract — скилл для Claude Code: что делает и как ставить

Скилл помогает создавать и настраивать нативные токены Hedera через смарт-контракты Solidity с вызовом прекомпайла 0x167. Пригодится при выпуске NFT, настройке комиссий и правил KYC.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add hedera-dev/hedera-skills --skill hts-system-contract -a claude-code
Открыть на GitHub

Что делает hts-system-contract

Скилл подключает правила и паттерны для работы со смарт-контрактами Hedera Token Service (HTS). Он направляет модель на вызовы системного прекомпайла 0x167, развёртывание взаимозаменяемых токенов и коллекций NFT через библиотеки @hashgraph/smart-contracts. Доступны как базовый контракт HederaTokenService.sol, так и безопасные варианты вроде SafeHTS.sol с автоматическим откатом при ошибке.

В инструкциях разобран механизм управления через семь типов ключей в KeyHelper: администрирование, KYC, заморозка счетов, списание, эмиссия, комиссии и пауза. Также учитывается специфика самой сети Hedera: получатели обязаны предварительно связать свой аккаунт с токеном через associateToken, иначе перевод не пройдёт.

Без явной передачи HBAR вызов createFungibleToken или createNonFungibleToken завершится ошибкой INSUFFICIENT_TX_FEE. Поэтому к транзакции создания обязательно добавляют value: msg.value.

Какие задачи решает

  • написать смарт-контракт на Solidity для создания токенов HTS
  • настроить роли управления токеном через KeyHelper
  • организовать выпуск и минт NFT-коллекций на Hedera
  • внедрить проверку KYC и заморозку счетов на уровне контракта

Примеры запросов агенту

  • Напиши контракт для создания токена HTS с передачей msg.value
  • Сделай функцию минта NFT с проверкой кодов HederaResponseCodes
  • Настрой ключи KYC и паузы для системного контракта через KeyHelper

Как установить hts-system-contract

1Через Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill hts-system-contract -a claude-code

2Вручную: положить файлы

~/.claude/skills/hts-system-contract/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/hts-system-contract/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о hts-system-contract

Как установить hts-system-contract в Claude Code?

Выполните команду npx skills add hedera-dev/hedera-skills --skill hts-system-contract -a claude-code. Конфигурация запишется в ~/.claude/skills/hts-system-contract/SKILL.md.

Что делает скилл hts-system-contract?

Он снабжает агента инструкциями по разработке смарт-контрактов на Solidity для Hedera Token Service через системный прекомпайл 0x167. Помогает собирать параметры создания токенов, настраивать ключи управления и обрабатывать ответы сети.

Почему при создании токена через HTS контракт падает с ошибкой INSUFFICIENT_TX_FEE?

Создание токена на Hedera требует прямой оплаты в HBAR, одного газа недостаточно. В вызов функции создания нужно явно передавать сумму через {value: msg.value}.

Исходный текст

SKILL.md · Apache-2.0
---
name: hts-system-contract
description: Hedera Token Service (HTS) smart contract development. Use when creating, managing, or interacting with Hedera-native tokens via Solidity contracts. Triggers include HTS tokens, Hedera token creation, HTS precompile, token minting/burning on Hedera, KYC/freeze/pause token controls, custom fee schedules, NFT collections on Hedera, or any token operations using the 0x167 precompile.
---

# Hedera Token Service (HTS) System Contract

HTS precompile at `0x167` enables Solidity contracts to create and manage Hedera-native tokens with built-in compliance controls (KYC, freeze, pause) and custom fees.

## Quick Reference

**Imports:**

```solidity
import {HederaTokenService} from "@hashgraph/smart-contracts/contracts/system-contracts/hedera-token-service/HederaTokenService.sol";
import {KeyHelper} from "@hashgraph/smart-contracts/contracts/system-contracts/hedera-token-service/KeyHelper.sol";
import {ExpiryHelper} from "@hashgraph/smart-contracts/contracts/system-contracts/hedera-token-service/ExpiryHelper.sol";
import {HederaResponseCodes} from "@hashgraph/smart-contracts/contracts/system-contracts/hedera-token-service/HederaResponseCodes.sol";
```

**Safe variants** (auto-revert on failure): `SafeHTS.sol`, `SafeViewHTS.sol`

## Critical: HBAR Payment Required

Token creation requires explicit HBAR value payment (not just gas):

```solidity
// ❌ WRONG - fails with INSUFFICIENT_TX_FEE
(int rc, address token) = createNonFungibleToken(token);

// ✅ CORRECT
(int rc, address token) = createNonFungibleToken{value: msg.value}(token);
```

Call from TypeScript:

```typescript
await contract.createToken(name, symbol, {
  gasLimit: 350_000,
  value: ethers.parseEther("15"), // ~$1-2 USD of HBAR
});
```

## Token Key System

Seven key types control token operations (bit positions for `keyType` field):

| Key    | Bit | Value | Controls                     |
| ------ | --- | ----- | ---------------------------- |
| ADMIN  | 0   | 1     | Update token, keys, deletion |
| KYC    | 1   | 2     | Grant/revoke KYC             |
| FREEZE | 2   | 4     | Freeze/unfreeze accounts     |
| WIPE   | 3   | 8     | Wipe balances                |
| SUPPLY | 4   | 16    | Mint/burn                    |
| FEE    | 5   | 32    | Update fees                  |
| PAUSE  | 6   | 64    | Pause all operations         |

Use `KeyHelper` for key construction:

```solidity
keys[0] = getSingleKey(KeyType.SUPPLY, KeyValueType.CONTRACT_ID, address(this));
```

See [references/keys.md](references/keys.md) for key value types and JSON tuple format.

## Association Model

Accounts must associate with tokens before receiving them:

```solidity
int rc = associateToken(accountAddress, tokenAddress);
require(
    rc == HederaResponseCodes.SUCCESS ||
    rc == HederaResponseCodes.TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT,
    "Association failed"
);
```

## Common Patterns

### Fungible Token Creation

```solidity
function createToken() external payable {
    IHederaTokenService.HederaToken memory token;
    token.name = "My Token";
    token.symbol = "MTK";
    token.treasury = address(this);
    token.expiry = createAutoRenewExpiry(address(this), 7776000); // 90 days

    (int rc, address created) = createFungibleToken{value: msg.value}(
        token, 1000000, 18  // initialSupply, decimals
    );
    require(rc == HederaResponseCodes.SUCCESS, "Create failed");
}
```

### Mintable NFT Collection

```solidity
function createNFT() external payable {
    IHederaTokenService.HederaToken memory token;
    token.name = "My NFT";
    token.symbol = "MNFT";
    token.treasury = address(this);
    token.tokenSupplyType = true;  // FINITE
    token.maxSupply = 10000;

    IHederaTokenService.TokenKey[] memory keys = new IHederaTokenService.TokenKey[](1);
    keys[0] = getSingleKey(KeyType.SUPPLY, KeyValueType.CONTRACT_ID, address(this));
    token.tokenKeys = keys;
    token.expiry = createAutoRenewExpiry(address(this), 7776000);

    (int rc, address created) = createNonFungibleToken{value: msg.value}(token);
    require(rc == HederaResponseCodes.SUCCESS, "Create failed");
}

function mintNFT(bytes memory metadata) external {
    bytes[] memory metas = new bytes[](1);
    metas[0] = metadata;
    (int rc, , int64[] memory serials) = mintToken(tokenAddress, 0, metas);
    require(rc == HederaResponseCodes.SUCCESS, "Mint failed");
}
```

### KYC-Enabled Token

Treasury must self-grant KYC after creation:

```solidity
// After token creation with KYC key
int kycRc = grantTokenKyc(tokenAddress, address(this));
require(kycRc == HederaResponseCodes.SUCCESS, "Self-KYC failed");
```

## Response Code Handling

Always check response codes. SUCCESS = 22.

```solidity
require(responseCode == HederaResponseCodes.SUCCESS, "Operation failed");
```

Common codes: See [references/response-codes.md](references/response-codes.md)

## Additional References

- **API Reference**: [references/api.md](references/api.md) - All function signatures
- **Custom Fees**: [references/fees.md](references/fees.md) - Fixed, fractional, royalty fees
- **Compliance Controls**: [references/compliance.md](references/compliance.md) - KYC, freeze, pause details
- **Struct Definitions**: [references/structs.md](references/structs.md) - HederaToken, Expiry, etc.
- **Troubleshooting**: [references/troubleshooting.md](references/troubleshooting.md) - Common errors and fixes

© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора24

Quality Gates Скилл настраивает автоматические проверки кода: линт и типы после каждой правки, локальный CI перед пушем, чек-лист перед деплоем. CX Codex +1 536установок Hedera Policy Creation Помогает создавать блокирующие правила валидации для Hedera Agent Kit. Пригодится при настройке лимитов сумм, списков разрешённых аккаунтов и ограничений частоты вызовов. CX Codex +1 480установок Hedera Agent Kit v4 Migration Ведёт проект с [email protected] на v4: меняет пакеты, импорты и переписывает кастомные инструменты на BaseTool. CX Codex +1 484установок Hedera Hook Creation Скилл помогает создавать ненаблюдаемые и неизменяющие поток выполнения хуки для Hedera Agent Kit. Пригодится при настройке аудита вызовов, сборе метрик или сохранении состояния сессии. CX Codex +1 479установок agent-kit-plugin Скилл помогает создавать плагины и инструменты для Hedera Agent Kit. Он пригодится при добавлении операций с токенами, аккаунтами и другими сервисами Hedera. CX Codex +1 463установок hss-system-contract Помогает проектировать отложенные транзакции и вызовы смарт-контрактов в сети Hedera через системный контракт 0x16b. Пригодится при автоматизации DeFi-протоколов и DAO. CX Codex +1 461установок create-harness-spec Превращает идею фичи Hedera в готовый рецепт для hedera-harness: PRD, spec.yaml, валидаторы. Пригодится, когда нужно перейти от замысла к запускаемой спецификации. CX Codex +1 465установок hiero-cli Учит ИИ-агента работать с блокчейном Hedera через утилиту hcli. Помогает выпускать токены, переводить HBAR, развёртывать смарт-контракты и оплачивать вызовы по протоколу x402. CX Codex +1 460установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой