# Emily API

[Emily](https://github.com/stacks-network/sbtc/tree/main/emily) 是一个 API，帮助促进和监督 sBTC Bridge，作为 sBTC 用户与签名者之间的程序化联络人。

## 概述

Emily API 旨在跟踪存款和取款，提供有关进行中的 sBTC 操作状态的信息。它主要服务于两类用户：sBTC 用户和 sBTC 应用开发者。

### 为什么叫 Emily？

Emily API 之所以取一个间接的名字，是因为它处理的不只是存款和取款；它还能检测系统健康状况，并且随着用户需求的成熟，很可能会扩展以处理更多内容。它曾被称为“Revealer API”，但在几次设计变更后，这个名字就不再合适了；后来又叫“Deposit API”，但在又经过几次变更后也不再合适了。最明显的选择是“sBTC API”，但这同样会让人对该 API 的职责产生错误印象，因为 API 本身并不负责整个协议。

大公司通常会用与某事物有些关联但又足够模糊的名字来命名其 API，这样即使 API 扩展了，原来的名字也不会显得误导。基于这一点，我们选择了“Emily”，取自 Emily Warren Roebling——她是布鲁克林大桥建造者与总工程师、也就是她丈夫之间的联络人。实际上，她是大桥建设的监督者；同样地，Emily API 监督 sBTC bridge，并在协议用户与 sBTC 签名者之间进行联络。

### 主要特性

* 跟踪存款：监控将 BTC 转换为 sBTC 的过程。
* 跟踪取款：监控将 sBTC 转回 BTC 的过程。
* 提供操作状态：为进行中的 sBTC 操作提供实时状态更新。
* 检索历史数据：允许查询过去的 sBTC 操作。

## 核心概念

#### sBTC 操作

sBTC 操作是 Emily 跟踪的基本流程：

* 存款：将 BTC 转换为 sBTC
* 取款：将 sBTC 转回 BTC

#### 操作状态

每个 sBTC 操作都会经历几个状态：

* PENDING：操作已启动。
* ACCEPTED：操作已被签名者批准。
* CONFIRMED：操作已完成并在区块链上确认。
* FAILED：操作无法完成。

### Emily 在 sBTC 流程中的参与位置

在 sBTC 的每个存款和取款流程中，Emily 都扮演着至关重要的角色。以下是 Emily 在存款和取款流程中的位置。

#### **在存款流程中**

1. 用户在比特币上创建存款交易
2. 用户向 Deposit API 提交存款证明
3. **Emily 将该存款记录为 PENDING**
4. 签名者验证并对存款进行投票
5. **如果被接受，Emily 将状态更新为 ACCEPTED**
6. 签名者处理比特币交易
7. 签名者在 Stacks 上铸造 sBTC
8. **Emily 将存款状态更新为 CONFIRMED**

#### **在取款流程中**

1. 用户通过 sBTC Clarity 合约发起取款
2. **Emily 将该取款记录为 PENDING**
3. 签名者决定接受或拒绝该取款
4. **如果被接受，Emily 将状态更新为 ACCEPTED**
5. 签名者处理比特币交易
6. 签名者在 Stacks 上销毁 sBTC
7. **Emily 将取款状态更新为 CONFIRMED**


---

# 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.stacks.co/learn/zh/sbtc/emily-api.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.
