# L2 Node API(blockbook edition) > В итоге для работы с любым блокчейном нужно сформировать 3 группы API - Для установки актуального состояния; Для публикации истории; Для гарантирования актуального состояния стороне, не имеющей возможности отслеживать блокчейн транзакции онлайн. ## L2 State API(REST). 1. **INIT_STATE**(L2) - это API нужен для передачи и/или получения новой транзакции начального cтейта, вызывается перед подписанием транзакции ребалансировки, вызывается до формирования транзакции ребаланса, в случаях если трейдер является стороной заинтересованной в ребалансировке. > это API устанавливает или запрашивает формирования новой транзакции начального состояния, перед вызовом API REBALANCE, на выходе у стороны публикующией в L1 транзакцию должна быть на руках транзакция устанавливающая состояние до публикации. 2. **REBALANCE**(L1) - это API используется для формирования транзакций предназначенных к публикации в блокчейн, изменяющих емкость канала. > **если заинтересован трейдер(он выводит, или добавляет финансирование)** - то это запрос на формирование подписи на стороне биржи в ответе получаем подпись - такая транзакция(дополненная подписью трейдера) должна быть опубликовано трейдером в блокчейне. > **если заинтересованна биржа(она выводит, или добавляет финансирование)** - то это передача подписи мультисига, сформированной на стороне клиента - такая транзакция(дополненная подписью биржи) должна быть опубликовано биржей. 3. **TRANSFER**(L2) - это API нужен для передачи и/или получения заинтересованной стороной артефактов для формирования актуальной транзакции состояния(офф-чейн) > **если заинтересован трейдер(L3->L2)** - то это запрос на формирование подписи на стороне биржи включает ключ отзыва от предыдущего состояния в ответе получаем подпись - такая транзакция(дополненная подписью трейдера) может быть опубликовано трейдером, а отозвана биржей. > **если заинтересованна биржа(L2->L3)** - то это передача подписи, сформированной на стороне клиента и получение артефактов(нонса и хеша отзыва) для следующей транзакции - такая транзакция(дополненная подписью биржи) может быть опубликовано биржей, а отозвана трейдером. ## L2 History API ``` Поставщик исторических данных, о неактуальных транзакциях состояния. Такие транзакции поставляются без подписей сторон. Важно - предусмотреть в этом API вывод актуального нонса, который трейдер может использовать для формирования адреса для следующей транзакции(биржа то не проебет, а вот трейдер может) ``` ## Keyless Observer API ``` Охранная система для тонких клиентов, не имеющих возможность следить 24/7 за блокчейном Для тех случаев когда биржа или трейдер ушли в офлайн, и опонент решив воспользоватся сложившимся положением решает опубликовать в блокчейне транзакцию !!!не-актуального!!! состояния ``` ## Контракты каналов состояний ### 1. BTC ### 2. EOS ### 3. TRON ### 4. ETH ### 5. QTUM ### 6. NEO ## Сценарии тестирования контрактов состояний 1. Предотвращение попытки публикации. 2. Закрытие канала при отсутствии одной из сторон. 3. Штатный режим, подсчет комиисии. 4. Штатный режим открытие-закрытие канала.