> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datafdn.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 클라이언트 설정

> TypeScript SDK를 설정하는 방법을 알아봅니다.

### 사전 준비 사항

환경에 node 버전 18 이상과 npm 버전 8이 설치되어 있어야 합니다. node와 npm을 설치하려면 [Node.js 공식 웹사이트](https://nodejs.org)에서 최신 LTS(Long Term Support) 버전을 다운로드하는 것을 권장합니다.

### 의존성 설치

[DATA Foundation SDK](https://www.npmjs.com/package/@story-protocol/core-sdk) 노드 패키지와 [viem](https://www.npmjs.com/package/viem)을 설치합니다.

<CodeGroup>
  ```bash npm theme={null}
  npm install --save @story-protocol/core-sdk viem
  ```

  ```bash pnpm theme={null}
  pnpm install @story-protocol/core-sdk viem
  ```

  ```bash yarn theme={null}
  yarn add @story-protocol/core-sdk viem
  ```
</CodeGroup>

## SDK 클라이언트 초기화

다음으로 SDK 클라이언트를 초기화할 수 있습니다. 두 가지 방법이 있습니다:

1. 개인 키 사용(일부 백엔드 관리에 적합)
2. 사용자가 직접 트랜잭션에 서명하는 Metamask와 같은 JSON-RPC 계정

### 개인 키 계정 설정

<CardGroup cols={1}>
  <Card title="작동하는 예제" href="https://github.com/thedatafoundation/typescript-tutorial/blob/main/utils/config.ts" icon="thumbs-up">
    DATA Foundation SDK 클라이언트를 설정하는 방법에 대한 작동 예제를 TypeScript 튜토리얼에서 확인하세요.
  </Card>
</CardGroup>

아래 코드를 진행하기 전에:

1. `.env` 파일에 `WALLET_PRIVATE_KEY`를 설정해 두었는지 확인하세요.
   * [Faucet](/network/network-info/aeneid#faucet)에서 일부 테스트넷 토큰으로 지갑에 자금을 충전하는 것을 잊지 마세요.
2. `.env` 파일에 `RPC_PROVIDER_URL`을 설정해 두었는지 확인하세요.
   * 공용 기본 URL(`https://aeneid.datarpc.io`)을 사용하거나 [여기](/network/network-info/aeneid#rpcs)에서 다른 RPC를 확인할 수 있습니다.

```typescript utils.ts theme={null}
import { http } from "viem";
import { Account, privateKeyToAccount, Address } from "viem/accounts";
import { StoryClient, StoryConfig } from "@story-protocol/core-sdk";

const privateKey: Address = `0x${process.env.WALLET_PRIVATE_KEY}`;
const account: Account = privateKeyToAccount(privateKey);

const config: StoryConfig = {
  account: account, // the account object from above
  transport: http(process.env.RPC_PROVIDER_URL),
  chainId: "aeneid",
};
export const client = StoryClient.newClient(config);
```

### React 설정(예: Metamask)

[React 설정 가이드](/developers/react-guide/setup/overview)는 TypeScript SDK를 사용해 서명과 트랜잭션 전송을 Metamask와 같은 JSON-RPC 계정에 지연시키는 방법도 보여줍니다.
