# 세션 키

세션 키는 온체인에서 검증되는 권한이 제한되고 프로그래밍 가능한 특수 암호화 키입니다. 이 키들은 goodcryptoX가 조건부 주문과 완전 자동화 봇을 위한 비수탁(non-custodial) 거래를 가능하게 하는 핵심입니다.

지갑의 개인 키와 달리, 개인 키는 서명할 수 있지만 *어떤* 트랜잭션이든, 세션 키는 제약이 있습니다: 스마트 컨트랙트 지갑이 유효하다고 인식하는 특정 동작만 승인할 수 있습니다. 이는 개인 키를 노출하지 않고도 자동화된 거래의 유연성을 제공합니다.

***

### 중요한 이유

분산형 거래소(DEX)에서 비수탁으로 거래하려면, 사용자가 오프라인인 경우에도 사용자 대신 트랜잭션에 서명할 방법이 필요합니다. 그렇지 않으면 다음과 같은 기능들은:

* 지정가 및 트레일링 주문
* 이익 실현 및 손절
* 자동화 봇(예: 매일 수십 건의 거래를 마감하는 DCA 봇)

…개인 키를 요구하거나 세션 키를 사용하지 않고서는 불가능할 것입니다.<br>

세션 키는 후자의 옵션을 가능하게 합니다. 세션 키는 goodcryptoX가 사용자를 대신해 스왑 트랜잭션에 서명하도록 허용하지만 — 그 이상은 아닙니다.

***

### goodcryptoX에서의 작동 방식

goodcryptoX에서 EVM 지갑을 생성하면:

* 각 지원되는 EVM 체인(이더리움, 아비트럼, 베이스, BNB 체인 등)에 대해 세션 키를 발급합니다.
* 각 세션 키는 엄격히 제한된 권한을 가집니다:
  * 1inch 라우터에서 스왑 서명(모든 지원 체인)
  * Uniswap에서 스왑 서명(이더리움, 아비트럼, 베이스 — 레거시 지원)
  * PancakeSwap에서 스왑 서명(BNB 체인 — 레거시 지원)
* 이 키들은 자금을 인출하거나 다른 어떤 동작도 수행할 수 없습니다.

지갑이 설정된 순간부터 goodcryptoX를 통해 하는 모든 스왑은 세션 키로 서명됩니다. 스왑에는 개인 키가 절대 사용되지 않으며 — 개인 키는 오직 출금을 할 때 사용자가 직접 사용합니다.

각 체인에서의 첫 트랜잭션은 여러 단계를 하나로 묶습니다: 스마트 컨트랙트 지갑 배포, 세션 키의 온체인 검증, 그리고 초기 거래 실행.

***

### 보안 모델

세션 키는 우리가 수년간 중앙화 거래소 API 키에 대해 사용해 온 동일한 보안 모델로 처리됩니다:

* 암호화 및 샤딩: 키는 암호화되고 분할되어 별도로 저장됩니다.
* 백엔드 보호: 방화벽으로 분리되고 구획화된 인프라로 입증된 실적(사고 없이 수십억 규모의 CEX 거래량 보안)을 보유하고 있습니다.
* 출금 안전성: 세션 키는 *절대* 출금을 승인할 수 없습니다. 모든 출금은 MPC를 통해 개인 키를 재구성해야 합니다.
* 취소 가능성: 필요 시 세션 키를 취소할 수 있습니다.

요컨대: 설령 세션 키가 유출되더라도 지갑을 비울 수는 없습니다.

***

### 앞으로의 계획

세션 키의 다음 단계는 **자신의 지갑 연결(Bring Your Own Wallet)** 기능을 활성화하는 것입니다:

MetaMask와 같은 기존 지갑을 연결하여 새 지갑을 만들거나 자금을 이동하거나 제어권을 포기하지 않고도 goodcryptoX에서 비수탁으로 거래할 수 있게 됩니다.

백엔드에서는, 우리는 [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) 귀하의 EOA 지갑을 스마트 컨트랙트 지갑으로 업그레이드하는 데 사용합니다. 활성화를 위해 단 한 번의 트랜잭션에 서명하면 — 다른 것은 변하지 않습니다. 지갑은 계속 귀하의 소유입니다.

업그레이드가 완료되면, 우리는 귀하의 지갑에 세션 키를 발급하고 이를 귀하를 대신해 안전하게 저장합니다. 이는 우리의 봇과 주문들이 귀하를 대신해 거래를 실행할 수 있게 하면서도, 귀하의 개인 키는 완전히 귀하의 통제 하에 있고 우리와 절대 공유되지 않음을 의미합니다.

그리고 언제든지 되돌리고 싶다면, 다음을 할 수 있습니다:

* 언제든 세션 키를 취소하세요
* 스마트 컨트랙트 기능을 완전히 비활성화하고 표준 EOA 지갑으로 되돌리세요

***

👉 세션 키는 goodcryptoX에서 비수탁 자동화의 조용한 엔진입니다. 이들은 개인 키를 넘기지 않고도 안전성, 유연성, 고급 거래 전략에 대한 완전한 접근을 제공합니다.


---

# 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.goodcrypto.app/goodcryptox-ko/wallets/built-in-wallet/smart-contract-wallets/session-keys.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.
