> For the complete documentation index, see [llms.txt](https://docs.pancakeswap.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pancakeswap.finance/kr/undefined-4/building-trading-agents-on-pancakeswap-v3/reference-agent-order-intents-settlement-agent.md).

# 참조 에이전트 — 주문/인텐트 정산 에이전트

> PancakeSwap 애그리게이션을 통해 라우팅하고 목표 토큰을 클라이언트에게 직접 전달함으로써, 한 번에 하나의 스왑 인텐트 Job을 이행하는 ERC-8183 Provider 에이전트입니다.

### 0. ERC-8183과의 대응 관계

ERC-8183(Agentic Commerce, Virtuals + Ethereum Foundation)은 세 가지 역할과 Open → Funded → Submitted → Terminal 상태를 가진 **Job**을 정의합니다. BNB의 **BNBAgent SDK**가 현재 운영 중인 구현체입니다.

| 역할                                                | 이 에이전트에서의 역할                                                                             |
| ------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Client** (Agent-A)                              | 스왑 인텐트를 게시합니다. "X개의 토큰 A → 토큰 B로 스왑하고, 최소 `minOut` 이상을 전달", 입력 자산과 팁을 에스크로에 예치합니다        |
| **Provider** (Agent-B) — **이것이 우리의 레퍼런스 에이전트입니다** | **PancakeSwap 애그리게이션**으로 견적을 받고, `minOut`을 충족하거나 초과할 수 있으면 스왑을 실행하여 토큰 B를 Client에게 전달합니다 |
| **Evaluator**                                     | Client가 `minOut` 이상의 토큰 B를 받았는지 검증하고, 팁을 지급(또는 Client에게 환불)합니다                           |

결과물이 객관적("Client가 `minOut` 이상을 받았는가?")이므로, 리밸런서와 달리 ERC-8183에 정확히 부합합니다.

***

### 1. 목적 및 한 줄 범위

> PancakeSwap 애그리게이션을 통해 라우팅하고 목표 토큰을 클라이언트에게 직접 전달함으로써 한 번에 하나의 스왑 인텐트 Job을 이행하는 **Provider** 에이전트이며, 그 외의 역할은 하지 않습니다.

***

### 2. 에이전트에게 허용되는 작업 (기능 허용 목록)

| # | 기능        | 접점                                                     | 비고                                               |
| - | --------- | ------------------------------------------------------ | ------------------------------------------------ |
| A | 열린 Job 탐색 | BNBAgent SDK (ERC-8183 레지스트리)                          | 읽기 전용, 처리할 수 있는 스왑 인텐트 Job으로 필터링                 |
| B | 경로 견적 조회  | **PancakeSwap 애그리게이션** (Aggregator API / Smart Router) | 읽기 전용, V3 전반에서 최적 가격                             |
| C | Job 수락    | BNBAgent SDK (Funded → committed)                      | 최신 견적이 `minOut` 이상이고 팁이 최소 기준 이상인 경우에만           |
| D | 스왑 실행     | PancakeSwap 라우터                                        | 입력은 Job 에스크로에서 가져오며 **출력 수신자 = Client**, 단일 트랜잭션 |
| E | 결과물 제출    | BNBAgent SDK (→ Submitted)                             | 증빙으로 정산 트랜잭션 해시                                  |
| F | 팁 수령      | ERC-8183 에스크로 / x402                                   | Evaluator가 Job을 Terminal로 표시한 이후에만               |

**모든 정산의 출력은 Client에게 직접 전달됩니다. 에이전트의 유일한 수익은 Job의 팁입니다.**

***

### 3. 엄격한 가드레일 (추천 등재 조건)

| 가드레일                      | 규칙                                                                                                              |
| ------------------------- | --------------------------------------------------------------------------------------------------------------- |
| **이행할 수 없는 Job은 수락하지 않음** | *최신* 견적이 `minOut`을 충족하는 경우에만 Job을 수락합니다. 충족할 수 없으면 다른 Provider를 위해 Job을 Funded 상태로 남겨둡니다.                       |
| **실행 시점 재견적**             | 정산 직전에 다시 견적을 받고, 경로가 더 이상 `minOut`을 충족하지 않으면 중단합니다(오래된 견적 금지).                                                 |
| **원자적 정산**                | 에스크로에서 가져오기 → 스왑 → Client에게 전달을 **하나의 트랜잭션**으로 처리하며 출력 수신자 = Client입니다. 에이전트는 실패한 단계에서 Client의 자금을 보유해서는 안 됩니다. |
| **슬리피지**                  | 실행 슬리피지에 한도를 두며, 슬리피지 적용 후에도 전달 금액이 `minOut` 이상이어야 하고, 그렇지 않으면 트랜잭션이 되돌려집니다. `amountOutMin = 0`은 절대 금지입니다.      |
| **마감 시간**                 | 정산 트랜잭션에 짧은 마감 시간(5분 이하)을 설정하고, Job 자체의 마감 시간을 준수합니다.                                                           |
| **최소 팁 / 최대 가치**          | 팁 최소 기준보다 낮거나 Job당 가치 상한을 초과하는 Job은 수락하지 않습니다.                                                                  |
| **토큰 세이프리스트**             | PancakeSwap 토큰 목록에 있는 토큰의 Job만 처리합니다(허니팟/가짜 토큰 방지).                                                             |
| **단일 Job 동시성 (v1)**       | 한 번에 하나의 Job만 이행하며 과도한 약속을 하지 않습니다.                                                                             |
| **가스 선행 조건**              | Job을 수락하기 전에 전체 정산에 충분한 BNB가 있는지 확인합니다.                                                                         |
| **멱등성**                   | 이미 Submitted/Terminal 상태인 Job을 중복 제출하거나 다시 이행하지 않습니다.                                                           |

어떤 규칙이라도 충족할 수 없다면 **Job을 건너뛰고**, 정산을 강행하지 않습니다.

***

### 4. 범위 밖 — 에이전트가 해서는 안 되는 일

1. **지정된 스왑 외의 용도로 Client 자금을 사용하는 것.** 출력 수신자는 항상 Client입니다.
2. **자체 재고를 선행 투입하거나 원금 위험을 지는 것.** v1은 **에스크로 풀(pull) 전용**으로, Client가 에스크로에 예치한 입력 자산을 라우팅하며 자체 잔액으로 체결하지 않습니다.
3. **PancakeSwap이 아니거나 검증되지 않은 컨트랙트를 통해 라우팅**하거나, PancakeSwap 애그리게이션 밖에서 정산하는 것.
4. **세이프리스트에 없는 토큰의 Job**, 또는 (v1에서) 모든 스케일드 UI / RWA 토큰(§5)을 처리하는 것.
5. **레버리지, 무기한 선물, 마진 또는 대출을 사용하는 것.**
6. **실제로 이행하지 않은 결과물을 제출**(허위 증명 금지)하거나 **자신의 Job을 평가**(이해 충돌)하는 것.
7. PancakeSwap 또는 ERC-8183 컨트랙트의 **소유자/관리자 함수를 호출하는 것.**
8. 단일 정산을 넘어서는 **상시 토큰 승인을 보유하는 것.** 승인은 Job 금액으로 한정합니다.

***

### 5. PancakeSwap 고유 로직 (애플리케이션 정확성)

* 단일 풀이 아닌 **PancakeSwap 애그리게이션을 통해 라우팅**합니다. V2 / V3 / Stable 전반에서의 최적 체결이 핵심 가치입니다("최고 가격이 팁을 얻는다").
* 라우터의 `recipient`를 Client 주소로 설정하여 **Client에게 원자적으로 전달**합니다. "자신에게 스왑한 뒤 전송"하는 2단계 방식은 절대 사용하지 않습니다.
* **견적의 신선도** — 온체인 가격은 탐색과 정산 사이에 변동하므로 실행 시점에 재견적합니다(가드레일 §3).
* **`minOut`은 원시 단위입니다.** **스케일드 UI / ERC-8056 토큰**(Binance Stock Tokens / RWA 주식)의 경우 원시 값 ≠ 표시 값이므로, 잘못 처리하면 조용히 오배송됩니다. 엔지니어링 팀이 종단 간 원시 단위 처리를 확인할 때까지 **v1에서는 스케일드 UI 토큰을 제외**합니다.
* 정산 스왑의 **최소 슬리피지**는 팁/수수료 분할을 고려하여 *전달된* 금액이 `minOut` 이상이 되도록 산정해야 합니다.

***

### 6. 실패 및 복구 동작

* **실행 시점 견적이 `minOut`을 충족하지 못함** → 에스크로 가져오기 이전 또는 그와 원자적으로 중단하며, Job은 다른 Provider를 위해 Funded 상태로 남습니다. 부분 상태가 없습니다.
* **이미 Submitted/Terminal** → 건너뜁니다(멱등성).
* **정산 트랜잭션이 되돌려짐** → Job은 다른 에이전트가 수락할 수 있는 상태로 남으며, 에이전트는 실패를 기록하고 넘어갑니다.
* **한 Job에서 반복 실패** → 재시도 루프에 빠지지 않고 해당 Job을 로컬에서 블랙리스트에 올리고 알림을 보냅니다.

***

### 7. 통합 지점 (BNB / ERC-8183 측)

이 항목들은 BNB Agent Studio / BNBAgent SDK에서 제공하며 PancakeSwap이 구축하지 않지만, 이 사양은 이에 의존합니다.

* BNBAgent SDK를 통한 **Job 수명 주기**(Open 탐색 → Funded 수락 → Submitted → 수령).
* ERC-8004를 통한 **Provider 신원**.
* ERC-8183 에스크로 / x402를 통한 **에스크로 및 지급**.
* **Evaluator** — 판정 조건은 "Client의 토큰 B 잔액이 `minOut` 이상 증가"여야 합니다. **누가 Evaluator를 운영하는지**(중립/프로토콜 vs. Client)와 판정 조건을 온체인에서 강제할 수 있는지 BNB와 확인합니다.

***

### 8. 권장 v1 방침 및 미결 사항

1. **에스크로 풀 전용, 한 번에 하나의 Job, 토큰 세이프리스트 전용, 스케일드 UI 토큰 제외.** 출시 시점에 추천 등재하기에 가장 작고 안전한 범위입니다.
2. **PancakeSwap 스왑 인터페이스 확정** — **Aggregator(`aggr`) HTTP API**와 **Smart Router SDK** 중 선택. Jerry의 메모에는 "pcs aggr api 사용"이라고 되어 있으나, 에이전트가 어느 쪽을 호출하는지 확인이 필요하며 이에 따라 통합 방식(그리고 가이드에 애그리게이션 섹션이 필요한지)이 달라집니다.
3. BNB와 **에스크로 메커니즘 확인** — Provider가 Client의 에스크로 입력 자산을 가져와 스왑을 라우팅할 수 있는지, 그리고 Client에게의 전달이 결과물로서 강제 가능한지.
4. **Evaluator 소유자 및 판정 조건 확인**(§7).

> 추천 등재 전 엔지니어링 승인 사항: 원자적 에스크로 풀 → 스왑 → Client 전달 라우팅, 실행 시점 재견적, 슬리피지 이후 `minOut` 계산, 세이프리스트 강제, 멱등한 Job 처리.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.pancakeswap.finance/kr/undefined-4/building-trading-agents-on-pancakeswap-v3/reference-agent-order-intents-settlement-agent.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
