본문으로 건너뛰기

PTB로 여러 커맨드를 한 번에 실행

이 레슨에서는 PTB Builder를 사용하여 여러 송금 커맨드를 하나의 트랜잭션으로 합치는 PTB를 처음부터 직접 조립합니다. 어렵지 않습니다—단계를 따라하면 금방 완성됩니다.

PTB(Programmable Transaction Block)란?

Sui에서는 여러 커맨드를 하나의 트랜잭션으로 합쳐서 실행할 수 있습니다. 이것을 PTB(Programmable Transaction Block) 라고 합니다.

PTB를 사용하면 다음과 같은 이점이 있습니다:

  • 트랜잭션 오버헤드 감소 — 각 커맨드의 실행 비용은 지불하지만, 서명 비용과 기본 트랜잭션 수수료를 합침으로써 절약할 수 있습니다
  • 원자성(아토믹성) — 모든 커맨드가 성공하거나, 모두 실패하거나 둘 중 하나입니다 (중간 상태가 발생하지 않습니다)
  • 효율적 — 한 번의 서명으로 여러 커맨드를 완료할 수 있습니다
PTB의 이미지

"A에게 1 SUI 송금"과 "B에게 2 SUI 송금"을 별도의 트랜잭션으로 실행하면 2번의 서명이 필요하고 트랜잭션 오버헤드도 2번 발생합니다. PTB로 합치면 1번의 서명, 1번의 오버헤드로 끝납니다. 각 커맨드의 실행 비용은 지불하지만 오버헤드를 절약할 수 있습니다.


사전 준비

이 레슨을 시작하기 전에 다음 사항이 완료되었는지 확인하세요:


PTB Builder로 다중 커맨드 PTB 조립하기

아래의 비주얼 에디터는 빈 상태입니다. StartEnd 노드만 있습니다.

왼쪽 상단의 가이드를 따라 노드를 추가・연결하여 여러 송금 커맨드를 하나의 트랜잭션으로 조립하세요. 먼저, 사이트 헤더 오른쪽 상단의 지갑 아이콘에서 Slush 지갑을 연결하세요.


Explorer에서 확인

트랜잭션 실행 후 Explorer에서 결과를 확인합니다:

  1. 표시된 Transaction Digest 옆의 링크를 클릭합니다
  2. Suiscan(또는 다른 Explorer)이 열립니다
  3. Transactions 섹션에서 다음 커맨드가 포함되어 있는지 확인합니다:
    • SplitCoins — gas 코인을 각 송금 금액으로 분할하는 커맨드
    • TransferObjects — 2번 표시됩니다 (각 수신자에게 송금)

성공 확인

다음을 할 수 있다면 이 레슨은 완료입니다:

  • 빈 PTB Builder에 노드를 추가하여 다중 커맨드 PTB를 조립했다
  • gas 노드를 SplitCoins 커맨드에 연결했다
  • 여러 커맨드를 하나의 트랜잭션으로 실행했다
  • Explorer에서 SplitCoins와 2개의 TransferObjects 커맨드가 포함되어 있는지 확인했다

자주 발생하는 문제

지갑이 연결되지 않음

  • 브라우저 확장 프로그램의 Slush 지갑이 설치되어 있는지 확인하세요
  • 네트워크가 Devnet으로 설정되어 있는지 확인하세요
  • L07: 지갑을 PTB Builder에 연결하기를 참조하세요

Execute 버튼을 누를 수 없음

  • 지갑이 연결되어 있는지 확인하세요
  • 모든 노드가 올바르게 연결되어 있는지 확인하세요
  • Start에서 End까지 끊기지 않고 플로우가 연결되어 있어야 합니다

트랜잭션이 실패함

  • 가스 잔액이 충분한지 확인하세요
  • 분할 원본 SUI 코인(gas)의 잔액이 송금 총액 + 가스비를 초과하는지 확인하세요
  • 잔액이 부족한 경우 Faucet에서 추가 SUI를 받으세요

이 레슨에서 한 일

  • PTB(Programmable Transaction Block)의 개념을 이해했습니다
  • 빈 PTB Builder에서 노드를 추가・연결하여 다중 커맨드 PTB를 조립했습니다
  • 여러 커맨드를 하나의 트랜잭션으로 합쳐서 실행했습니다
  • Explorer에서 결과를 확인했습니다