Signum предлагает встроенную поддержку смарт-контрактов с момента запуска сети в 2014 году. В отличие от многих других платформ, где контракты — это добавление к основному протоколу, здесь они работают как первичный механизм. Технически это называется Automated Transactions (AT) — программы, которые выполняются идентично на каждом узле сети и могут срабатывать либо по входящей транзакции, либо автоматически при достижении определённой высоты блока.

Часто говорят, что в Signum отсутствует газ в отличие от Ethereum, однако это упрощение. На самом деле система комиссий здесь работает иначе: каждый шаг кода требует платежа, но расчёт зависит от объёма контракта в «страницах» и количества операций, а не от волатильного газового аукциона. Это делает стоимость исполнения предсказуемой и защищает от неожиданных скачков цены при загрузке сети.

Для разработки доступны два языка программирования. SmartC — это язык с синтаксисом, напоминающим классический C, с компилятором, работающим в браузере или как модуль Node.js (код на GitHub: deleterium/SmartC). SmartJ позволяет писать контракты на полноценной Java через фреймворк signum-smartj, включающий базовый класс Contract.java с API для блокчейна, локальный эмулятор и компилятор Java-байткода в AT-байткод. Важно не путать со SignumJS — это библиотека для взаимодействия с уже развёрнутыми контрактами из фронтенда, а не для их написания.

Стоимость развёртывания и вызова контракта состоит из двух компонентов. Activation Amount — минимальная сумма на каждую транзакцию: для NFT-контракта (стандарт SIP-40) это 0.3 SIGNA, для раздачи — 0.25 SIGNA, для пула ликвидности — 1.80 SIGNA на взаимодействие плюс 3.50 SIGNA единовременно при создании. Execution fee рассчитывается по размеру кода: 2-страничный контракт стоит 0.02 SIGNA за шаг и 0.07 SIGNA за страницу (максимум 7 SIGNA), 4-страничный — 0.04 за шаг и 0.14 за страницу (максимум 14 SIGNA), а 10-страничный — 0.1 за шаг и 20 за страницу (максимум 2000 SIGNA).

В экосистеме Signum уже работают NFT-маркетплейсы с поддержкой фиксированной цены, классического и голландского аукционов, контракты для раздачи токенов, DeFi-пулы ликвидности (на них построен SignumSwap), и даже ончейн-билборды. Все данные контракта хранятся публично и доступны через SignumJS или инструмент Smart Contracts Inspector. После развёртывания в основной сети контракт становится неизменяемым — изменить его невозможно, поэтому предварительное тестирование в TestNet перед MainNet обязательно.

Начать можно с онлайн-компилятора SmartC прямо в браузере, затем развернуть тестовый контракт в TestNet, чтобы проверить логику, и только после этого перейти в MainNet. На официальном сайте Signum есть раздел со специализированной информацией для разработчиков и примерами рабочих контрактов.