# 매니저

대부분의 에이전트는 추천만 할 수 있습니다. Underscore는 프라이빗 키를 절대 넘기지 않고도 실제 자금으로 실행하게 만듭니다.

매니저는 [프로그래머블 월렛](https://docs.underscore.finance/ko/undefined-1/user-wallet)을 대신해 전략을 실행하고 결제를 처리하는 승인된 운영자입니다. 하지만 완전한 통제권은 절대 갖지 않습니다. 예를 들어 "USDC는 최대 $50k까지 거래하되 ETH는 건드리지 마라", "Aave, Morpho, Euler, Compound 사이에서만 리밸런싱하라", "$10k는 일일 한도, $100k는 월간 한도"처럼 정확한 권한을 설정할 수 있습니다. 자동 만료되는 시간 기반 제어를 넣을 수도 있고, 원하면 한 번의 클릭으로 즉시 권한을 철회할 수도 있습니다.

새벽 3시에 AI 에이전트가 수익 스파이크를 잡도록 둘 수 있습니다. 트레이딩 에이전트가 데이터 피드와 컴퓨트 비용을 스스로 결제하게 할 수도 있습니다. CFO가 준비금에는 손대지 않고 벤더 송장을 처리하게 할 수도 있습니다. 트레이더가 정해진 경계 안에서 특정 포지션만 운영하게 할 수도 있습니다. 모든 동작은 사용자가 정한 규칙에 따라 온체인에서 검증됩니다.

## 매니저가 필요한 이유

### 에이전트 문제

AI 에이전트는 실제 돈으로 트랜잭션을 실행해야 합니다. 수익 포지션을 리밸런싱하고, 데이터 피드를 결제하고, 컴퓨트 리소스를 구매해야 합니다. 하지만 에이전트에게 프라이빗 키나 무제한 접근 권한을 주는 것은 받아들일 수 없는 리스크입니다. 기존 API 키나 월렛 위임에는 온체인 강제력이 없습니다. 버그 한 번, 익스플로잇 한 번이면 모든 것이 사라질 수 있습니다.

매니저는 스마트 컨트랙트가 강제하는 경계 안에서 실행 권한을 부여함으로써 이 문제를 해결합니다. 에이전트는 사용자가 승인한 것만, 그보다 많지도 적지도 않게 수행할 수 있습니다. 예산, 자산 제한, 프로토콜 제한, 만료 창은 정책이 아니라 코드로 강제됩니다.

### 수동 월렛 관리의 문제

[프로그래머블 월렛](https://docs.underscore.finance/ko/undefined-1/user-wallet)을 혼자 운영하면 피할 수 없는 트레이드오프가 생깁니다.

* **24시간 기회**: DeFi는 쉬지 않지만 사람은 쉽니다
* **반복 작업**: 벤더 결제, [보상 청구](https://docs.underscore.finance/ko/undefined-2/rewards), 리밸런싱은 시간이 계속 들어갑니다
* **전문성 요구**: 복잡한 전략은 사용자가 갖고 있지 않을 수 있는 전문 지식을 요구합니다
* **긴급 접근**: 사용자에게 무슨 일이 생기면 자금이 묶일 수 있습니다

기존 해법은 모두 어딘가에서 실패합니다.

* **공유 키**: 키 하나만 손상돼도 전부 잃을 수 있습니다
* **멀티시그**: 모든 트랜잭션에 조율이 필요해 느립니다
* **수탁 서비스**: 통제권을 잃고 수수료도 높습니다

### 매니저 해법

매니저는 정밀한 제어가 가능한 프로그래머블 위임을 제공합니다.

* **제한된 권한**: 특정 작업만 허용합니다 (대출, 토큰 스왑, [수취인](https://docs.underscore.finance/ko/undefined-1/payees) 결제 등)
* **지출 한도**: 트랜잭션당 및 기간당 금액에 강제 상한을 둡니다
* **자산 제한**: 매니저가 다룰 수 있는 토큰을 제한합니다
* **즉시 철회**: 트랜잭션 한 번으로 접근 권한을 제거합니다
* **시간 지연**: 민감한 작업에는 선택적 쿨다운(cooldown)을 설정할 수 있습니다

### 2단계 보안 검사

모든 매니저 작업은 자동 검증을 거칩니다.

**작업 전 검사**:

* ✓ 이 매니저는 아직 활성 상태인가?
* ✓ 이 특정 작업을 수행할 수 있는가?
* ✓ 이 자산을 다룰 수 있는가?
* ✓ 승인된 프로토콜을 사용하고 있는가?
* ✓ 마지막 작업 이후 충분한 시간이 지났는가?

**작업 후 검사**:

* ✓ 트랜잭션당 한도를 넘지 않았는가?
* ✓ 일일/주간/월간 예산 안에 아직 남아 있는가?
* ✓ 전체 생애 한도를 초과하지 않았는가?

두 단계 모두 트랜잭션 안에서 원자적으로 실행됩니다. 어느 하나라도 실패하면 전체 작업이 되돌려집니다.

## 권한: 매니저가 할 수 있는 일

권한은 매니저에게 부여하는 세분화된 기능 단위입니다. 벤더 결제만 하는 CFO부터 전체 DeFi 전략을 관리하는 AI까지, 필요한 운영자 프로필을 정확히 만들 수 있도록 권한을 조합할 수 있습니다. 각 권한은 독립적이며 다른 권한과 함께 사용할 수 있습니다.

### 전송 및 결제 작업

| 권한                                                                         | 기능                                                                                                                                                                                                              | 예시 사용 사례     |
| -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| **일반 전송**                                                                  | [수취인](https://docs.underscore.finance/ko/undefined-1/payees), [화이트리스트](https://docs.underscore.finance/ko/undefined-1/whitelist), 또는 [디지털 수표](https://docs.underscore.finance/ko/undefined-1/cheques)를 통한 자산 전송 | 월간 지출 결제     |
| [**수표**](https://docs.underscore.finance/ko/undefined-1/cheques) **생성**    | 일회성 결제 예약                                                                                                                                                                                                       | 지연이 있는 벤더 결제 |
| [**수취인**](https://docs.underscore.finance/ko/undefined-1/payees) **추가 제안** | 반복 결제 수취인 추가 제안                                                                                                                                                                                                 | 새 외주 인력 온보딩  |

### DeFi 작업

| 권한         | 기능                | 예시 사용 사례                                                                 |
| ---------- | ----------------- | ------------------------------------------------------------------------ |
| **매수·매도**  | 토큰 스왑, 포트폴리오 리밸런싱 | ETH/USDC 60/40 비중 유지                                                     |
| **수익 관리**  | 수익 프로토콜에 예치/인출    | Morpho/Aave 포지션 리밸런싱                                                     |
| **부채 관리**  | 대출과 담보 관리         | 담보비율 150% 유지                                                             |
| **유동성 관리** | DEX 유동성 공급/회수     | Uniswap V3 범위 최적화                                                        |
| **보상 청구**  | 프로토콜 인센티브 수확      | [파밍 보상](https://docs.underscore.finance/ko/undefined-2/rewards) 청구 및 재투자 |

### 관리 작업

| 권한             | 기능                 | 예시 사용 사례                                                               |
| -------------- | ------------------ | ---------------------------------------------------------------------- |
| **화이트리스트 관리**  | 승인된 주소 추가/제거       | 벤더 목록 관리                                                               |
| **프로토콜 보상 청구** | Underscore 인센티브 청구 | [플랫폼 보상](https://docs.underscore.finance/ko/undefined-2/rewards) 자동 청구 |
| **Loot 청구**    | 수익 공유 회수           | [프로토콜 수익](https://docs.underscore.finance/ko/undefined-2/rewards) 극대화  |

> **📝 Underscore의 시간 단위**\
> 모든 시간 기반 설정(지연, 쿨다운, 기간)은 실제 시계 시간이 아니라 블록 수로 저장됩니다. Base L2에서 블록 타임을 2초로 가정하면:
>
> * 1시간 (1,800 블록)
> * 1일 (43,200 블록)
> * 1주 (302,400 블록)
>
> 이 가이드의 예시는 Base의 2초 블록 타임을 기준으로 합니다.

## 제어 장치: 보안 경계

권한이 매니저가 무엇을 할 수 있는지 정한다면, 제어 장치는 그들이 어디까지 움직일 수 있는지 정합니다. 이 한도 덕분에 신뢰하는 매니저라 해도 사용자의 리스크 허용 범위를 넘거나, 실수나 악의적인 행동으로 월렛을 비우는 일은 불가능합니다. 모든 매니저 작업은 이런 보안 체크포인트를 통과해야 합니다.

### 재무 한도

**트랜잭션당 한도**

* 단일 트랜잭션에 허용되는 최대 USD 금액
* 예: $5,000 상한으로 한 번의 큰 손실 방지

**기간 기반 한도**

* 반복되는 시간 창 안에서 허용되는 총 USD 금액
* 기간 길이는 글로벌 설정의 `managerPeriod`로 지정합니다 (예: 1일 = 43,200 블록)
* 현재 기간이 끝나면 자동으로 초기화됩니다
* 예: 트레이딩 작업에 대해 하루 $10,000 한도

```
1주차: $10k 한도 중 $7k 사용 → 2주차: 다시 $10k 한도
남은 금액은 이월되지 않습니다. 각 기간은 새로 시작합니다
```

**생애 한도**

* 매니저가 활동하는 전체 기간 동안의 누적 USD 상한
* 예: 1년짜리 AI 서비스에 총 $500,000 한도

### 운영 제어

**트랜잭션 쿨다운**

* 트랜잭션 사이에 반드시 기다려야 하는 시간
* 블록 수로 측정됩니다 (예: Base에서 1시간 = 1,800 블록)
* 빠른 연속 실수나 공격을 막아 줍니다

**자산 제한**

* 매니저를 특정 토큰만 다루도록 제한합니다 (예: 스테이블코인만)
* 어떤 자산을 건드릴 수 있는지 세밀하게 제어합니다
* 매니저당 최대 40개 자산

**프로토콜 제한 (레고)**

* 특정 DeFi 프로토콜 ID로 제한합니다
* 각 프로토콜([레고](https://docs.underscore.finance/ko/undefined-1/user-wallet) = Aave, Curve 등과의 표준화된 통합)은 LegoBook에 등록됩니다
* 예: Aave와 Compound 상호작용만 허용
* 매니저당 최대 25개 프로토콜

**승인된 수익 프로토콜만 허용**

* 수익 예치를 승인된 Vault 지분 토큰으로만 제한합니다
* 위험하거나 검증되지 않았거나 알 수 없는 프로토콜로의 예치를 막습니다
* 프로토콜의 VaultRegistry 화이트리스트를 통해 관리됩니다
* `onlyApprovedYieldOpps` 설정으로 활성화합니다

**수취인 제한**

* 미리 승인된 수취인 주소로만 전송을 허용합니다
* 알려진 벤더만 상대하는 비즈니스 운영에 적합합니다
* 매니저당 승인된 [수취인](https://docs.underscore.finance/ko/undefined-1/payees) 최대 40개

**0 가격 시 실패 처리**

* 자산 가격이 $0일 때 트랜잭션을 막는 안전 기능
* 오라클 장애 시 거래를 방지합니다
* 가격 정보가 없을 때의 조작 위험을 줄여 줍니다

### 스왑 제어

과도한 손실과 조작을 막기 위해, 전용 스왑 제어를 통해 트레이딩 활동을 세밀하게 제한할 수 있습니다.

| 설정              | 목적                    | 예시             |
| --------------- | --------------------- | -------------- |
| **최대 슬리피지**     | 스왑에서 허용할 최대 가격 변동     | 기본값: 최대 5%     |
| **기간당 최대 스왑 수** | 거래 빈도 제한              | 기본값: 하루 2회     |
| **USD 가치 요구**   | 두 토큰 모두 가격 데이터가 있어야 함 | 가격 없는 토큰 거래 방지 |

**슬리피지 보호 작동 방식**:

각 스왑 전에 시스템은 사용자가 설정한 슬리피지 한도를 기준으로 최소 허용 수령량을 계산합니다. 실제 결과가 이 기준보다 낮아지면 트랜잭션은 자동으로 되돌려집니다.

```
예시: 최대 슬리피지 5%로 $1,000 USDC → ETH 스왑
최소 허용 수량: $950 상당의 ETH
DEX가 $940 상당만 돌려준다면 → 트랜잭션 되돌림
```

이 기능은 다음을 방어합니다.

* MEV 샌드위치 공격
* 실행 중 가격 조작
* 극심한 시장 변동성
* 실수로 체결되는 나쁜 거래

시스템은 글로벌 설정과 매니저 개별 설정 중 더 엄격한(더 낮은) 한도를 적용합니다.

### 시간 기반 보안

**활성화 지연**

* 새 매니저는 권한이 활성화되기 전 일정 시간을 기다립니다
* 사용자가 설정하는 지연 기간 (예: 1시간, 1일, 1주)
* 추가가 의심스러울 경우 검토하고 취소할 시간을 줍니다
* 성급하거나 악의적인 매니저 추가를 방어합니다

**활성 기간**

* 매니저 만료 시점을 설정할 수 있습니다
* 예: 30일(체험), 90일(분기), 365일(연간) 후 자동 만료
* 별도 조치 없이 권한이 자동으로 종료됩니다

### 글로벌 설정 vs 개별 설정

Underscore는 항상 더 제한적인 설정이 우선하는 이중 레이어 구성 방식을 사용합니다.

**글로벌 매니저 설정**

* 월렛의 모든 매니저에 적용되는 기본 템플릿
* 어떤 매니저도 넘을 수 없는 최대 경계를 설정
* 사용자가 한도 적용 대상인지 결정하는 `canOwnerManage` 플래그 포함

**개별 매니저 설정**

* 매니저별 개별 구성
* 글로벌보다 더 엄격할 수는 있지만, 덜 엄격할 수는 없습니다
* 어떤 작업이든 글로벌과 개별 설정이 모두 허용해야 실행됩니다

```
예시: 권한 계층
글로벌: 거래 가능 = 예, 트랜잭션당 최대 = $100k
매니저 A: 거래 가능 = 예, 트랜잭션당 최대 = $50k → 실제 한도는 $50k
매니저 B: 거래 가능 = 아니오, 트랜잭션당 최대 = $200k → 거래 자체 불가
```

## 실제 사용 예시

### 수익 최적화

**설정**: YieldMaxAI Agent가 관리하는 $100k 스테이블코인

**권한**:

* 자산: 스테이블코인만 (USDC, USDT, DAI)
* 프로토콜: Aave, Morpho, Euler만
* 한도: 트랜잭션당 $20k, 6시간 쿨다운

**결과**:

* 새벽 3시에 Morpho의 5.2% 금리를 포착
* Euler의 6.1% 프로모션 금리로 이동
* 놓치고 있던 [보상/인센티브](https://docs.underscore.finance/ko/undefined-2/rewards) $312 자동 청구
* 연간 추가 수익: $3,000

### 에이전트 서비스 결제

**설정**: 실시간 데이터 피드, 추론 API, 컴퓨트가 필요한 트레이딩 에이전트

**권한**:

* 일반 전송: 승인된 [수취인](https://docs.underscore.finance/ko/undefined-1/payees)으로만 전송
* [수표](https://docs.underscore.finance/ko/undefined-1/cheques) 생성: 일회성 데이터 구매용
* 자산: USDC만
* 한도: 트랜잭션당 $500, 월 $5,000
* 쿨다운: 결제 간 1시간

**결과**:

* 에이전트가 데이터 피드, 추론 API, GPU 제공자를 계속 가동
* 소규모 데이터셋 구매($3-$50)는 디지털 수표로 즉시 처리
* 모든 지출은 추적, 상한 적용, 철회 가능
* 에이전트는 수탁 권한, 프라이빗 키, 무제한 접근을 절대 받지 않음

### 비즈니스 운영

**설정**: 30명 이상의 외주 인력과 벤더를 둔 글로벌 크립토 기업, CFO를 매니저로 지정

**권한**:

* 수취인: 미리 승인된 외주 인력 및 벤더 주소만
* 한도: 결제당 $2,500, 주간 $25,000
* 쿨다운: 결제 간 1시간
* 자산: USDC만

**결과**:

* CFO가 벤더 결제를 독립적으로 처리
* 매월 $1,750의 송금 수수료 절감
* 소유자는 결제 업무에서 벗어남
* 투자 자금은 계속 손대지 못하도록 보호

### 패밀리 오피스 트레이딩

**설정**: 전문 트레이더 5명을 각각 매니저로 지정

**트레이더별 권한**:

* 자산: ETH, BTC, 스테이블코인
* 프로토콜: 주요 DEX만
* 한도: 거래당 $100k, 트레이더별 일일 상한 $500k
* 기간: 분기 계약, 3일 활성화 지연

**결과**:

* 여러 트레이더로 리스크 분산
* 어느 한 명도 손실 한도를 초과할 수 없음
* 각 트레이더의 손익을 개별 추적
* 성과가 낮은 트레이더는 분기 말에 제거

### 부채 관리 AI

**설정**: Ripe Protocol 부채 관리자 AI Agent

**권한**:

* 부채 관리: 대출 상환, 담보 추가
* 수익 관리: 상환용 자금을 위해 Aave/Morpho에서 인출
* 한도: 트랜잭션당 $50k, 일일 $200k

**결과**:

* 24시간 내내 150% 담보비율 유지
* 필요할 때 수익 포지션을 자동 인출해 상환
* 시장 변동성 동안 담보 $15k 추가
* 시장 20% 하락 시 청산 방지

### 청소년 트레이딩 교육

**설정**: 월간 용돈으로 DeFi를 배우는 16세 아들

**권한**:

* 매수·매도: 주요 토큰 사이 스왑 허용
* 수익 관리: Aave/Morpho/Euler만 예치 가능
* 자산: ETH, USDC, 상위 10개 토큰으로 제한
* 한도: 트랜잭션당 $100, 월간 상한 $500
* 쿨다운: 거래 간 30분
* 기간: 6개월 체험

**결과**:

* 실제 돈과 실제 리스크로 DeFi 학습
* 감당 가능한 교육 비용 수준에서 손실 제한
* 가족의 주요 자산에는 접근 불가
* 18세에 본인 월렛을 쓰기 전 경험 축적

## 라이프사이클 관리

### 매니저 상태

```
추가됨 → 대기 중 → 활성 → 만료
   │         │        │      │
   └─────────┴────────┴──────┴─→ 언제든 제거 가능
             │        │
             │        └─→ 연장 가능 (만료 시점 재설정)
             │
             └─→ 활성화 전 취소 가능
```

### 관리 계층

**사용자(소유자)**

* 어떤 매니저든 추가, 수정, 제거 가능
* 모든 설정과 한도를 수정 가능
* 활성 기간 연장 가능
* 최종 통제권은 항상 사용자에게 있음

**매니저**

* 스스로를 제거하는 것만 가능
* 권한 수정 불가
* 다른 매니저 추가 불가
* 권한 상승 공격 방지

## 자주 묻는 질문

**매니저가 다른 매니저를 추가할 수 있나요?**

아니요. 새 매니저를 추가할 수 있는 것은 월렛 소유자뿐입니다. 이를 통해 권한 상승 공격을 막습니다.

**매니저가 만료되면 어떻게 되나요?**

모든 권한을 자동으로 잃습니다. 사용자가 별도로 할 일은 없습니다.

**매니저를 제거하지 않고도 한도를 바꿀 수 있나요?**

네. 권한, 한도, 허용 자산/프로토콜은 언제든 수정할 수 있습니다.

**남은 기간 한도는 다음 기간으로 이월되나요?**

아니요. 각 기간은 전체 한도로 새롭게 시작합니다. 쓰지 않으면 사라집니다.

## 다른 기능과 함께 쓰기

### 매니저와 수취인

* 매니저는 자신의 한도 안에서 승인된 [수취인](https://docs.underscore.finance/ko/undefined-1/payees)에게 전송할 수 있습니다
* 수취인 제한을 추가하면 알려진 주소로만 전송하도록 좁힐 수 있습니다
* 벤더 결제 권한이 필요한 지급 담당 역할에 적합합니다

### 매니저와 수표

* 매니저는 자신의 지출 한도 안에서 [수표](https://docs.underscore.finance/ko/undefined-1/cheques)를 생성할 수 있습니다
* 수표 금액은 매니저의 일일/기간/생애 한도에 포함됩니다
* 수표의 시간 지연은 추가 보안 계층이 됩니다

### 매니저와 화이트리스트

* 매니저는 사용자가 화이트리스트 관리 권한을 명시적으로 부여한 경우에만 [화이트리스트](https://docs.underscore.finance/ko/undefined-1/whitelist)와 상호작용할 수 있습니다
* 주소가 화이트리스트에 올라가면, 그 주소로의 전송은 일반적인 수취인과 수표 제어를 우회합니다
* 화이트리스트는 긴급 접근과 내부 자본 라우팅에 쓰고, 일상 운영에는 매니저, 수취인, 수표를 사용하세요
