# Solana 연동

### **Solana 트랜잭션을 위한 TurnkeySigner**

TurnkeySigner는 `ISolanaSigner` 에 **Turnkey 전용 주소를**추가하여, 트랜잭션 서명이 **안전하게 연결되도록** Turnkey 인프라에 연결합니다.

```typescript
export type TurnkeySigner = ISolanaSigner & {
    turnkeyAddress: string;
};
```

* 다음 `turnkeyAddress는` 서명자를 **Turnkey가 관리하는 지갑으로**.

**지갑 인식 (solana-provider.ts)**

Solana provider는 연결된 지갑이 **TurnkeySigner** 인지 `isExternalSolanaSigner()`:

```typescript
isExternalSolanaSigner(): boolean {
    return !(this.solanaWallet as TurnkeySigner).turnkeyAddress;
}
```

* 만약 `turnkeyAddress는` 이 **없으면**, 해당 지갑은 **외부 서명자로** (Turnkey가 관리하지 않음) 처리됩니다.

### **TurnkeySigner를 사용한 트랜잭션 서명**

* provider는 다음을 사용해 서명자를 가져옵니다 `getSigner()`.
* 서명자가 **Turnkey와 통합되어 있다면**, 서명 프로세스는 **Dynamic의 패스키 기반 인증** 및 **AWS Nitro Enclaves** 를 거쳐 `signTransaction` 또는 `signAllTransactions`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.defi.app/knowledge-base/ko/wallets/private-key-management/solana.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
