> ## Documentation Index
> Fetch the complete documentation index at: https://daehan-base.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 지갑 개발자를 위한 빌더 코드

> 지갑에 dataSuffix 기능을 구현하여 빌더 코드 귀속을 활성화하세요.

## 개요

지갑 제공자는 귀속을 활성화하기 위해 `dataSuffix` 기능을 지원해야 합니다. 이는 기능을 수락하고 서명 전에 calldata에 서픽스를 추가하는 것을 포함합니다.

<Steps>
  <Step title="dataSuffix 기능 지원">
    지갑은 `wallet_sendCalls`의 `capabilities` 객체에서 `dataSuffix` 객체를 허용해야 합니다.

    ```typescript theme={null}
    type DataSuffixCapability = {
      value: `0x${string}`;  // hex-encoded bytes provided by the app
      optional?: boolean;    // whether the capability is optional
    }
    ```
  </Step>

  <Step title="Calldata에 서픽스 추가">
    트랜잭션 또는 User Operation을 구성할 때 `dataSuffix`를 추출하여 calldata에 추가합니다.

    <Tabs>
      <Tab title="EOA 트랜잭션">
        `tx.data`에 추가합니다.

        ```typescript theme={null}
        // Minimal example for EOA
        function applySuffixToEOA(tx, capabilities) {
          const suffix = capabilities.dataSuffix?.value
          if (!suffix) return tx

          return {
            ...tx,
            // Append suffix bytes (remove 0x prefix from suffix if tx.data has it)
            data: tx.data + suffix.slice(2)
          }
        }
        ```
      </Tab>

      <Tab title="ERC-4337 사용자 작업">
        `userOp.callData`에 추가합니다 (트랜잭션 레벨 calldata가 아닌).

        ```typescript theme={null}
        // Minimal example for ERC-4337
        function applySuffixToUserOp(userOp, capabilities) {
          const suffix = capabilities.dataSuffix?.value
          if (!suffix) return userOp

          return {
            ...userOp,
            // Append suffix bytes to the UserOp callData
            callData: userOp.callData + suffix.slice(2)
          }
        }
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="지갑 귀속 추가 (선택사항)">
    지갑은 앱의 서픽스 앞에 지갑 자체의 귀속 코드(자체 ERC-8021 서픽스)를 포함할 수도 있습니다.

    * **앱과의 상호작용 불필요:** 지갑이 독립적으로 처리합니다.
    * **다중 코드 지원:** ERC-8021은 기본적으로 여러 귀속 코드를 지원합니다.

    **예시:**

    ```typescript theme={null}
    finalSuffix = walletSuffix + appSuffix
    ```

    이를 통해 앱과 지갑 모두 온체인 귀속을 받을 수 있습니다.
  </Step>
</Steps>
