# Aftermath Finance 대해

Aftermath Finance 대해

비트코인은 2008년 금융 위기의 여파로 탄생했습니다. 분산 금융(DeFi)은 이더리움의 "프로그래밍 가능한 돈"의 약속의 첫 번째 약탈적 응용인 ICO 광풍의 여파로 태어났습니다. DeFi 프로토콜의 첫 세대는 지속 불가능한 토큰 경제 모델에 의존하여 사용자들이 토큰을 농사짓고 버리도록 유도했습니다. 다른 프로토콜들은 매우 불안정한 구조(올림푸스, 테라 등)에 의존했으며, 이는 초기 참여자들에게 이익을 주었지만 결국 폭발했습니다.

다른 암호화폐 투기꾼들은 DeFi에는 손도 대지 않고 단순히 중앙 집중식 거래소에 토큰을 보유하는 것을 선호했으며, 이것이 더 쉽고 위험하지 않다고 믿었습니다. FTX, Celsius 등의 붕괴는 이것도 어리석은 짓이었음을 보여주었습니다.

중앙 집중식 거래소와 분산 금융의 다른 주요 프로토콜들의 실패 이후, 우리의 앞날은 어떻게 될까요? 무엇이 잘 작동했고, 암호화폐의 원래 비전을 위협하는 대재앙적 손실을 초래한 원인은 무엇일까요?

가치와 정보의 흐름에 대한 평등한 접근, 중개인 없이도 가능한 것이 암호화폐가 태어난 이념입니다. 우리 산업을 오염시킨 많은 악당들 이후에 우리의 뿌리로 어떻게 돌아갈 수 있을까요?

<br>

Aftermath Finance 소개

우리의 비전은 단순하지만, 연구, 거래(이기는 것과 손실을 보는 것 모두), 그리고 개발에 수년이 걸렸습니다. 우리는 빠르고, 저렴하며, 완전히 투명하고 온체인상에서 이루어지며, 사용자가 자신의 자산을 보관할 수 있는 거래, 투자, 수익 창출 플랫폼을 구축하고 있습니다. 당신의 키가 아니면 당신의 암호화폐도 아닙니다.

간단한 아이디어 같은데, 왜 아무도 이것을 하지 않았을까요? 간단히 말해서, 블록체인 기술이 지금까지 Aftermath와 같은 것을 구축할 수 있게 해주지 않았습니다. 다른 이들이 시도했지만, 여전히 오프체인 실행이나 중앙 집중식 시퀀서에 의존하고 있습니다. 이것은 올바른 방향으로의 한 걸음이지만, 해결책은 아닙니다.

경험 많은 DeFi 사용자와 러스트 개발자로 구성된 우리 팀은 Sui를 선택했습니다. 왜냐하면 Sui는 분산된, 완전히 온체인상의 거래소를 구축하기 위해 필요한 대기 시간, 처리량, 그리고 확장성을 제공하기 때문입니다. Mysten Labs가 우리와 같은 이념을 공유하기 때문에, 우리는 파트너이자 Sui Builder Hero 상의 수상자로서 자랑스럽게 생각합니다.


# 우리는 무엇을 구축하고 있나요?

Aftermath는 거래, 투자, 수익 창출을 위한 모든 것을 제공하는 빠르고, 저렴하며, 완전히 투명한 플랫폼을 구축하고 있습니다. 우리의 초점은 모든 시장에서 직관적인 사용자 경험을 제공하는 것입니다. 우리는 수년에 걸친 로드맵을 가지고 있으며, 완성되고 테스트 및 감사를 거친 새로운 제품을 지속적으로 출시할 예정입니다.

<br>

풀

우리의 상수 함수 시장 메이커(CFMM)는 임의의 가중치를 가진 최대 8개의 자산 풀 생성을 허용하며, 상수 평균 및 안정적 스왑 불변 함수를 모두 지원합니다. 지수 풀은 포트폴리오 관리, 현물 스왑 및 수익 창출 농사에 사용할 수 있습니다. 우리의 다자산 풀은 안정적 스왑 불변과 결합하여 Sui에 연결된 다양한 브리지의 안정적 코인, ETH, BTC 간에 가장 낮은 슬리피지 거래를 제공할 것입니다.

<br>

거래

우리의 스마트 오더 라우터는 두 자산 간의 최적의 거래를 찾습니다. 거래가 우리의 풀에서 수행되든 Aftermath나 다른 Sui DEX 중 어느 곳에서 수행되든 상관없습니다. 우리는 충분한 유동성을 가진 모든 DEX를 추가합니다.

<br>

액체 스테이킹 파생상품

우리의 LSD - afSUI - 는 SUI 토큰을 스테이킹하여 네트워크를 보호하면서도 Sui의 DeFi 환경 전반에서 사용할 수 있게 하는 수익 창출 토큰입니다.

<br>

영구 계약

Sui의 속도와 처리량에 최적화된 주문장 실행 레이어를 활용하여, 우리의 영구 계약 시장은 트레이더들이 암호화폐, 외환, 상품, 그리고 GameFi 자산을 레버리지 거래할 수 있게 합니다. 우리의 SDK 및 LP 금고를 통해 제공되는 봇은 소매 투자자가 시장 메이킹 게임에 참여하고 트레이더들에게 깊은 유동성과 타이트한 스프레드를 보장할 것입니다.

<br>

NFT 및 GameFi

Sui는 게임과 그와 관련된 모든 것을 위한 주요 생태계가 될 위치에 있습니다. 즉, 사람들이 거래하고 추측하고 싶어하는 GameFi 자산입니다. 우리는 전통적인 암호화 자산 시장을 뛰어넘을 잠재력을 가진 NFT와 GameFi 자산에 대한 시장을 만들 것이라고 믿으며, 가까운 미래에 Sui GameFi 풍경이 형성되는 것을 보기를 기대합니다.

<br>

대출

독립적인 대출 풀을 특징으로 하는 우리의 자금 시장은 Sui 네트워크 자산의 보유자들이 수익을 얻고, 레버리지를 얻거나 자산을 단기 대출할 수 있게 할 것입니다. 우리의 대출 구조는 Sui와 같은 신생 생태계에 필요한 유동성과 보안을 제공하며, NFT 대출 및 그 이상으로 확장할 모듈성을 제공합니다.

<br>

구조화된 제품

Aftermath는 장기적으로 Sui 생태계에 전념하고 있습니다. 우리는 구축할 제품들의 수년에 걸친 로드맵을 가지고 있으며, 끊임없이 더 많은 것을 꿈꿉니다. 주문장에서 시장을 만드는 금고부터 한 번의 클릭으로 헤징 전략, 크로스체인 파생상품 차익 거래, 이자율 스왑에 이르기까지... 우리의 기초 제품 위에 생성될 수 있는 다양한 전략이 많습니다.

<br>

Sui 생태계 구축

우리는 다른 개발자들과의 협업, 함께 구축할 수 있는 제품, 또는 기술 지원을 제공할 기회를 탐색하기 위해 항상 열려 있습니다. 궁금한 점이나 아이디어가 있으시면 언제든지 우리의 소셜을 통해 연락주시기 바랍니다.


# 계정 만들기

다음을 통해 지갑을 만드는 방법을 알아보세요.

#### [zkLogin](/undefined/undefined/zklogin)

#### [Sui Metamask Snap](/undefined/undefined/sui-metamask-snap)

#### [Native Sui Wallets](/undefined/undefined/native-sui-wallets)


# zkLogin

Sui에 입문하기 쉬워지는 zkLogin

Sui 생태계가 처음이고 아직 Sui 지갑이 없다면, [zkLogin이라는 새로운 Sui ](https://sui.io/zklogin)기능이 새 계정 설정을 믿을 수 없을 만큼 간단하게 만듭니다. 이제 시드 구문을 적어둘 필요가 없으며, Google이나 Twitch와 같은 기존의 Web2 자격증명만 있으면 새 지갑을 생성할 수 있습니다. 이는 제로 지식 증명의 마법을 통해 가능해졌으며, 이는 사용자가 계정 소유자임을 확인하면서 온체인상에서 어떠한 정보도 노출시키지 않습니다.

<figure><img src="/files/YUnMZwYPVzlzbTUm0RFB" alt=""><figcaption><p>내비게이션 바의 로그인 / 연결 버튼</p></figcaption></figure>

시작하려면 [Aftermath dApp](https://aftermath.finance/)을 실행하고 화면 상단의 내비게이션 바 오른쪽에 있는 로그인 / 연결 버튼을 클릭하세요. 로그인 / 연결을 클릭하면 지갑 연결 메뉴가 나타납니다.

<figure><img src="/files/d1mT3ocHXl0LvmWpVvTw" alt="" width="375"><figcaption><p>지갑 연결 메뉴</p></figcaption></figure>

메뉴의 상단에서 Google과 Twitch의 아이콘을 볼 수 있습니다. 이 아이콘을 클릭하면 Google 또는 Twitch의 기존 자격증명을 사용하여 Aftermath에서 사용할 새로운 Sui 지갑을 생성할 수 있습니다.

Google 또는 Twitch 계정에 이미 로그인하지 않은 경우, 계속하기 전에 로그인하라는 메시지가 나타납니다. 로그인하면 자동으로 Aftermath로 돌아가며 "로그인 완료 중..." 메시지가 잠시 나타납니다. zkLogin이 새 지갑을 생성하면, 이전에 연결 / 로그인 버튼이 있던 곳에 Sui 주소가 표시됩니다. 현재 어떤 자격증명으로 로그인했는지 알려주기 위해 지갑 드롭다운 상단에 Google 또는 Twitch가 표시됩니다.

<figure><img src="/files/mH21yy5C9CIJqZN2tTAb" alt="" width="375"><figcaption><p>Sui 주소와 사용된 zkLogin 자격증명을 표시하는 지갑 드롭다운</p></figcaption></figure>

이제 Aftermath와 상호 작용할 준비가 되었습니다. 마지막 단계는 새 지갑에 자금을 조달하는 것인데, 이는 Sui 주소(0x로 시작) 옆에 있는 클립보드 아이콘을 클릭하여 수행할 수 있습니다. [브리지](/undefined/aftermath/undefined-3)를 통해, 다른 Sui 지갑에서, 또는 Sui 네트워크를 지원하는 중앙 집중식 거래소에서 새 지갑으로 자금을 이체할 수 있습니다.


# zkLogin 계정 제거하기

이전에 설정한 zkLogin 계정과 그와 관련된 모든 데이터를 Aftermath에서 제거하고 싶다면, 다음 간단한 단계를 따르세요:

<figure><img src="/files/1Rbc4j9a5yrO4CQuXIlT" alt="" width="375"><figcaption><p>단계 1</p></figcaption></figure>

1. 우리 사이트의 오른쪽 상단에 있는 지갑 드롭다운 버튼을 클릭하세요.

<figure><img src="/files/e0imxXxuEyELzQK2by2C" alt="" width="375"><figcaption><p>단계 2</p></figcaption></figure>

2. 지갑 드롭다운 페이지의 왼쪽 상단에 있는 설정 버튼을 클릭하세요.

<figure><img src="/files/Y9gGpzJnbjk965E6o3A7" alt="" width="375"><figcaption><p>단계 3</p></figcaption></figure>

3. 설정 페이지 하단에 있는 지갑 전환 버튼을 클릭하세요.

<figure><img src="/files/6FL3jMLLEWr2DNhZKmnk" alt="" width="375"><figcaption><p>단계 4</p></figcaption></figure>

4. 데이터를 제거하고 싶은 소셜 제공업체를 선택하세요 (Google, Facebook, Twitch 등).

<figure><img src="/files/JySl5PRjJJf3kufM3tAZ" alt="" width="375"><figcaption><p>단계 5</p></figcaption></figure>

5. 해당 플랫폼과 우리 사이트에 연결된 모든 데이터를 제거하려면 "\[Facebook] 지갑 모두 잊기"를 클릭하세요.


# Sui Metamask Snap

기존 Metamask 지갑에 Sui 네트워크 추가하기

Aftermath에서 Metamask 지갑을 사용하고 싶은 사용자는 Sui Metamask Snap을 설치하여 이를 할 수 있습니다. Snaps는 Metamask에 추가 기능을 제공하는 서드파티 개발자가 개발한 응용 프로그램으로, Sui와 같은 EVM 이외의 네트워크에 연결하는 등의 추가 기능을 제공합니다. 자세한 내용은 [metamask Snaps FAQ](https://support.metamask.io/hc/en-us/articles/18245938714395-MetaMask-Snaps-FAQ)를 참조하십시오.

Metamask 지갑에 Sui Snap을 설치하려면 먼저 Snaps 디렉터리의 Sui Snap 페이지로 이동하십시오:[ Sui Metamask Snap](https://snaps.metamask.io/snap/npm/kunalabs-io/sui-metamask-snap/)

<figure><img src="/files/F060iyd5vtwLhLlSszB7" alt=""><figcaption><p>Sui Snap</p></figcaption></figure>

Metamask에 추가하기 버튼을 클릭하면 Third-party software 알림이 표시됩니다. 수락을 클릭하고 Metamask 브라우저 지갑 메뉴가 표시되어 Sui Snap에 연결하도록 안내됩니다.

<div align="left"><figure><img src="/files/YBt6L0ZUqDehmgJkre2t" alt="" width="373"><figcaption><p>타사 소프트웨어 고지사항</p></figcaption></figure> <figure><img src="/files/vn3kOhCmnoiRCwRKqWA1" alt="" width="369"><figcaption><p>연결요청</p></figcaption></figure></div>

연결을 클릭하면 설치 요청 및 확인이 표시됩니다. 설치를 클릭한 다음 계속 확인을 클릭합니다.

<div align="left"><figure><img src="/files/7VogS5SWaJp8EZg5uTsG" alt="" width="373"><figcaption><p>설치요청</p></figcaption></figure> <figure><img src="/files/eWm5ztL23z9dPlkTxgsO" alt="" width="375"><figcaption><p>Sui계정관리확인</p></figcaption></figure></div>

Sui Snap이 설치되었음을 나타내는 확인이 표시됩니다. Metamask를 [Suisnap.com](https://suisnap.com/)에 연결하려면 링크를 따르세요.

<figure><img src="/files/74WphUzFjLAXfOs0rkLa" alt="" width="375"><figcaption><p>Sui Snap Installed</p></figcaption></figure>

Sui Snap 홈페이지에 도착하면 Metamask에 연결하라는 메시지가 표시됩니다. 연결을 클릭하면 지갑이 브라우저에 표시됩니다.

<div align="left"><figure><img src="/files/WCsEGr86alslTqLR1hyW" alt="" width="375"><figcaption><p>Metamask Sui Snap에 연결</p></figcaption></figure> <figure><img src="/files/QRL1I3xLQ368bfMu9xjz" alt="" width="375"><figcaption><p>Sui와 연결된 메타마스크</p></figcaption></figure></div>

이제 Aftermath에서 Metamask 지갑을 사용할 준비가 되었습니다. Aftermath dAPP로 이동하고 화면 상단 네비게이션 바 오른쪽에 있는 로그인/연결 버튼을 클릭하십시오.

<figure><img src="/files/pVTlvew3ZsMpUaVsQUnq" alt=""><figcaption><p>탐색 모음</p></figcaption></figure>

로그인/연결 지갑 메뉴가 표시됩니다. Metamask Snap을 선택하면 Metamask 브라우저 확장 프로그램 메뉴가 Aftermath에 연결하도록 안내됩니다. 계속하려면 연결을 클릭하십시오.

<div align="left"><figure><img src="/files/sGKyMhoCQx7elru8XrqY" alt="" width="370"><figcaption><p>로그인/연결 메뉴</p></figcaption></figure> <figure><img src="/files/NOCMzNOvAiZ8QSBWLFUL" alt="" width="375"><figcaption><p>연결요청</p></figcaption></figure></div>

이제 Metamask가 Aftermath에 연결되었습니다. 이전에 로그인/연결 버튼이 있던 화면 상단 네비게이션 바에서 주소를 클릭하여 Metamask를 Aftermath에서 확인할 수 있습니다.

<figure><img src="/files/g2hVoj86QzT1MCwEK7d1" alt="" width="375"><figcaption><p>Aftermath와 연결된 메타마스크</p></figcaption></figure>

이제 Metamask 지갑을 사용하여 Aftermath를 사용할 준비가 되었습니다.


# Native Sui wallets

Add a Sui wallet extension to your web browser

There are a number of native Sui wallets which you can add to your favorite browser. These wallets are secure and intuitive to use, so it is simply a matter of preference as to which wallet you choose.&#x20;

To begin, open the Aftermath dApp and click on the Login / Connect button at the right side of the navigation bar at the top of the screen.

<figure><img src="/files/vIjzzayxZP7jkNLKEpug" alt=""><figcaption><p>Login / Connect button at right side of navigation bar</p></figcaption></figure>

The wallet connect interface will appear, displaying a list of wallets which can be used with Aftermath. Clicking on any wallet which is indicated as Not installed will link you to the official web store where you can install the extension to your browser.

<figure><img src="/files/hvrzQ9chdRbnkDLpwnGu" alt="" width="375"><figcaption><p>Login / Connect interface</p></figcaption></figure>

Simply follow the instructions on the web store page to complete the installation of the wallet into your browser.


# Dynamic Gas

Sui 생태계 진입 장벽 제거

새로운 블록체인 생태계에 온보딩하는 가장 좌절스러운 측면 중 하나는 트랜잭션 비용을 지불하기 위해 네이티브 토큰을 획득하는 것입니다. Sui 생태계에 새로 온 사용자들에게 원활한 경험을 제공하기 위해, Aftermath는 Dynamic Gas를 구축했습니다.

Dynamic Gas는 사용자가 SUI 이외의 코인을 사용하여 Aftermath에서 어떤 트랜잭션을 수행하는 데 필요한 가스 비용을 지불할 수 있게 합니다. 이 기능은 Sponsored Transactions(후원된 트랜잭션)과 Programmable Transactions(프로그래밍 가능한 트랜잭션)이라는 두 가지 Sui 토착 기능을 통해 가능합니다. 본질적으로 작동 방식은 Aftermath가 SUI로 트랜잭션을 후원하고, 사용자가 선택한 코인으로 지불을 받는 것으로, 사용자로부터 완전히 추상화된 하나의 행동으로 이루어집니다.

현재 Dynamic Gas는 afSUI, 이더리움, Arbitrum, Solana 또는 BNB에서 브리지된 USDC, 그리고 이더리움에서 브리지된 USDT를 지원합니다. 어떤 가스 토큰을 사용하고 싶은지 선택하려면 화면 상단의 메뉴 바에서 맨 오른쪽에 있는 설정 버튼을 클릭하세요. 이는 기어 아이콘으로 나타납니다

<figure><img src="/files/PW0D9akaKyYuyQIIrltL" alt=""><figcaption><p>설정은 화면 상단의 메뉴 바에서 맨 오른쪽에 있는 기어 아이콘을 통해 접근할 수 있습니다</p></figcaption></figure>

기어 아이콘을 클릭하면 설정 드롭다운이 확장됩니다. 여기에서 가스에 대한 옵션을 보게 되며, 이를 클릭하면 트랜잭션을 위해 지불하고 싶은 코인을 선택할 수 있는 메뉴가 열립니다.

<div align="center"><figure><img src="/files/81bjlAyI4H1q3z9hsTFR" alt="" width="324"><figcaption><p>설정 메뉴 확장</p></figcaption></figure> <figure><img src="/files/vh4x8bYa9AUxpZKYKxcS" alt="" width="325"><figcaption><p>가스 코인 선택</p></figcaption></figure></div>

zkLogin과 Dynamic Gas의 조합은 새로운 사용자들이 Aftermath와 Sui 생태계에 원활하게 온보딩할 수 있게 만듭니다.


# Aftermath 탐색하기

다양한 제품을 찾고 모든 잔액을 확인하는 방법

Aftermath.Finance 홈페이지에 처음 도착하면, 스왑을 수행하기 위한 스마트-오더 라우터와 액체 스테이킹 파생상품인 afSUI로 바로 이동할 수 있는 두 개의 버튼을 볼 수 있습니다. 랜딩 페이지 상단에는 우리의 디스코드, 트위터 및 dApp으로 연결되는 링크가 있습니다.

dApp을 실행하면 화면 맨 위에 메뉴 바가 나타나 다양한 제품과 기능 간에 빠르게 이동할 수 있습니다. 왼쪽에서 오른쪽으로 하나씩 살펴보겠습니다

<figure><img src="/files/74PweqNzcSCXwb2JTIJs" alt=""><figcaption><p>Aftermath 메뉴 바</p></figcaption></figure>

## 거래

거래" 버튼을 클릭하면 스마트 주문 라우터(SOR)로 이동합니다. 이는 두 자산 간에 스왑할 수 있도록 해주는데, SOR은 DEX 집약기로, Sui의 모든 주요 유동성 소스에 연결됩니다. 더 나아가, SOR은 여러 DEX를 경유하는 복잡한 경로를 발견하고, 주문을 분할하여 일부가 한 경로를 통해 이루어지고 다른 부분은 다른 경로를 통해 이루어지도록 할 수 있습니다. 이 모든 것은 여러 다른 거래소를 수동으로 찾지 않아도 거래 시 최상의 수익을 얻을 수 있도록 보장합니다. SOR이 대신해줍니다. 더 많은 정보는 문서의 "[거래](https://docs.aftermath.finance/trade)" 섹션을 참조하세요

## SUI 스테이킹

SUI 스테이킹 페이지로 이동하면 액체 스테이킹 파생상품(LSD), afSUI를 발행할 수 있습니다. 기본 SUI 스테이킹으로는 Sui 네트워크를 보호하는 대가로 보상을 받지만, SUI 토큰은 지갑에 잠겨 있어 DeFi 전반에 걸쳐 다른 목적으로 사용할 수 없습니다. afSUI를 사용하면 동일한 스테이킹 보상을 받으면서도 다양한 다른 목적으로 사용할 수 있는 [액체 토큰](https://docs.aftermath.finance/liquid-staking)이 발행됩니다. afSUI에 대한 자세한 정보는 문서의 해당 섹션을 참조하세요.

## 수익

"수익" 버튼 위에 마우스를 올리면 Pools 및 Farms 페이지로 이어지는 드롭다운 메뉴가 나타납니다. Pools는 Aftermath에서 유동성 제공자(LP)가 되어 AMM의 거래 활동에서 수수료를 얻을 수 있는 곳입니다. Farms는 수영장에 예치한 LP 토큰을 가져와서 스테이킹하여 추가 보상을 받을 수 있는 곳입니다. 자세한 정보는 문서의 [Pools ](https://docs.aftermath.finance/pools)및 [Farms ](https://docs.aftermath.finance/farms)섹션을 참조하세요."

## 포트폴리오

Aftermath은 다양한 제품을 제공하며 포트폴리오 페이지는 여러 자산을 한 곳에서 추적할 수 있는 곳입니다. LP인지, Farm에 지분이 있는지, afSUI를 민트했는지, 아니면 Aftermath에서의 활동을 보려는지에 상관없이 모두 포트폴리오에 표시됩니다. 자세한 정보는 문서의 [포트폴리오 보기](https://docs.aftermath.finance/getting-started/viewing-your-portfolio) 섹션으로 이동하세요.

## 브리지

Aftermath는 현재 Sui 네트워크를 지원하는 브릿지에 대한 링크를 제공함으로써 이더리움이나 솔라나와 같은 다른 블록체인에서 자산을 전송하는 것을 간단하게 만듭니다. 이 프로세스에 익숙하지 않은 경우 지침을 위해 문서의 [브릿지 ](https://app.gitbook.com/o/UoFBlY0GkyIkxurmUIH1/s/meKfXaQnIP3bbI1AdlVX/~/changes/60/getting-started/bridge)페이지를 참조하세요.

## 지갑

메뉴 바의 다음 버튼은 지갑과 상호 작용하는 곳입니다. 아직 지갑을 연결하지 않았다면 "지갑 연결"이라고 표시됩니다. 이미 연결된 경우 현재 사용 중인 지갑의 Sui 주소가 표시됩니다. 자세한 정보는 문서의 [지갑과 상호 작용](https://app.gitbook.com/o/UoFBlY0GkyIkxurmUIH1/s/meKfXaQnIP3bbI1AdlVX/~/changes/62/getting-started/interacting-with-your-wallet) 섹션을 참조하세요.

## 설정

사용자들에게 최고의 경험을 제공하기 위해 Aftermath는 사용자의 선호에 맞게 매우 사용자 정의가 가능합니다. 가스로 사용할 코인, 밝은 모드 또는 어두운 모드, 화면 레이아웃과 같은 매개변수는 모두 여기에서 수정할 수 있습니다. 자세한 내용은 [설정 변경 페이지](https://app.gitbook.com/o/UoFBlY0GkyIkxurmUIH1/s/meKfXaQnIP3bbI1AdlVX/~/changes/61/getting-started/changing-your-settings)를 참조하세요.


# 지갑 상호작용하기

Aftermath는 지갑과 계정을 전환하고, 코인과 활동을 볼 수 있는 내장 지갑 메뉴를 제공합니다.

## 지갑 연결하기

앱의 맨 오른쪽 상단에서 "지갑 연결"이라고 적힌 버튼을 볼 수 있습니다. 여기를 클릭하면 선호하는 지갑을 연결할 수 있으며, 설치되어 있는 경우 선택할 수 있습니다. 아직 Sui 지갑이 설치되어 있지 않다면, 선택한 지갑을 클릭하여 각각의 설치 페이지로 이동하면 됩니다.

<figure><img src="/files/iQdd49coNkD3PgzkTwEW" alt="" width="375"><figcaption><p>지갑 연결</p></figcaption></figure>

## 지갑 및 계정 전환하기

여러 지갑이 설치되어 있거나 여러 계정을 가지고 있고 다른 것으로 전환하고 싶다면, 설정 메뉴를 통해 할 수 있습니다. 설정은 지갑 드롭다운 메뉴의 왼쪽 상단에 있는 기어 아이콘으로 표시됩니다.

<figure><img src="/files/mZ3bpi0yALWiNMtfWwiW" alt="" width="360"><figcaption><p>왼쪽 상단의 기어 아이콘을 클릭하면 지갑 설정이 열립니다</p></figcaption></figure>

기어 아이콘을 클릭하면 여러 계정 사이를 전환할 수 있고, 지갑을 전환하거나 연결 해제할 수 있는 새 메뉴가 표시됩니다. "지갑 전환"을 클릭하면 지갑 연결 메뉴로 돌아갑니다.

<figure><img src="/files/9bz3rfggKEoocl7caLro" alt="" width="322"><figcaption><p>계정 / 지갑 전환 / 연결 해제 창</p></figcaption></figure>

## 코인 잔액 및 활동 보기

지갑 메뉴를 통해 Aftermath에서 코인과 모든 활동을 볼 수 있습니다. 연결된 후, 지갑 드롭다운을 열면 잔액이 표시되고, 하단의 "활동" 버튼을 클릭하면 최근 거래를 볼 수 있습니다. 이 정보는 포트폴리오 페이지에서도 확인할 수 있습니다.

<div align="left"><figure><img src="/files/KVbMioCMyp2fCvq83XWO" alt="" width="329"><figcaption><p>코인 잔액</p></figcaption></figure> <figure><img src="/files/OssFB3J9y2PkIAqnt58U" alt="" width="325"><figcaption><p>최근 활동</p></figcaption></figure></div>

각 거래와 관련된 링크를 클릭하여 블록 탐색기에서 어떤 거래의 세부 정보도 볼 수 있습니다.

## 코인 보내기

Aftermath 지갑 디스플레이를 통해 다른 Sui 주소로 코인을 쉽게 보낼 수도 있습니다. SUI 토큰 잔액 아래에 보내기 버튼이 표시됩니다. 그것을 클릭하면 코인 보내기 메뉴가 열립니다. 그런 다음 잔액이 0이 아닌 코인을 선택하여 다른 Sui 주소로 보낼 수 있습니다.

<figure><img src="/files/VC9RNaLjvlTgrrET9t2q" alt="" width="375"><figcaption><p>Aftermath 지갑 디스플레이의 보내기 버튼</p></figcaption></figure>

보내려는 코인을 선택하면 목적지 주소와 보낼 코인 금액을 입력하라는 메시지가 표시됩니다. 세부 사항을 입력하고 다음을 클릭하면 확인이 나타납니다. 모든 것이 올바른지 검토하고 보내기를 누르면 전송이 완료됩니다.

<figure><img src="/files/2lm0Wnb6TMKZFMBLObGo" alt=""><figcaption><p>송금 수령 주소 및 송금 금액(왼쪽), 송금 확인(오른쪽)</p></figcaption></figure>

## NFT 보기

NFT 탭을 클릭하여 Aftermath 지갑 드롭다운을 통해 NFT를 볼 수 있습니다. NFT를 선택하면 이름, 설명, 작성자 및 개체 ID를 확인할 수 있습니다. 개체 ID를 클릭하면 지정된 탐색기에서 NFT가 열리고 프로젝트 보기 버튼을 통해 프로젝트 웹사이트 링크에 액세스할 수 있습니다.

<figure><img src="/files/9jAZi1kpRoS8bsIYBDdQ" alt=""><figcaption><p>NFT 보기 및 검사</p></figcaption></figure>

## NFT 전송

NFT 탭 하단에 있는 전송 버튼을 클릭하여 NFT를 전송할 수도 있습니다. NFT를 전송하고자 하는 Sui 지갑 주소를 복사하고 Next를 클릭하여 거래를 검토하기만 하면 됩니다. 전송하고자 하는 NFT와 목적지 주소가 정확한지 확인했다면 전송을 클릭하여 거래를 완료합니다.

<figure><img src="/files/MrbaGfE3xuytQJvLtrP5" alt=""><figcaption><p>NFT 전송</p></figcaption></figure>


# 포트폴리오 보기

모든 자산과 활동을 쉽게 추적하기

포트폴리오 탭으로 이동하면, Aftermath의 모든 제품에 배포된 지갑 내 모든 코인을 한 곳에서 볼 수 있습니다. 스왑 수행, 스테이킹, 풀이나 농장에 입금하거나 출금하는 등의 모든 활동도 확인할 수 있습니다.

<figure><img src="/files/8gNikzcEhj5fCIonqqu2" alt=""><figcaption><p>각 제품별로 자산과 활동을 분류해 볼 수 있는 포트폴리오 페이지</p></figcaption></figure>

포트폴리오 페이지 상단에서는 모든 자산의 분석을 볼 수 있습니다. 왼쪽에서 오른쪽으로, 첫 번째는 "순자산"입니다. 이는 지갑 내의 모든 코인, 유동성 풀과 농장에 예치된 것, 스테이킹된 SUI와 afSUI, 그리고 청구되지 않은 보상의 총 가치입니다. 다음으로 "청구 가능한" 잔액을 볼 수 있는데, 이는 농장에서 얻은 보상 중 아직 청구하지 않은 금액입니다. "총 자산"은 순자산에서 청구 가능한 잔액을 뺀 값입니다. "총 부채"는 빌린 코인의 가치를 나타냅니다.

아래에는 다양한 제품별로 자산과 활동을 정렬할 수 있는 일련의 탭이 있습니다. 모두 여기에서 검토하겠습니다.

## 전체

"전체" 탭을 선택하면 "코인"과 "거래" 두 개의 하위 탭이 표시됩니다. 코인을 선택하면 지갑에 있는 모든 코인을 볼 수 있으며, LP 토큰도 포함됩니다. 농장에 스테이킹된 LP 토큰은 지갑에 없기 때문에 여기에 표시되지 않지만, "농장" 탭에서 찾을 수 있습니다.

<figure><img src="/files/dMZjCsH2PGdrpJhmPshm" alt=""><figcaption><p>포트폴리오 전체 코인 표시</p></figcaption></figure>

NFT 하위 탭에서는 모든 NFT를 볼 수 있습니다. 이를 클릭하면 선택한 Sui 탐색기에서 NFT를 검사할 수 있는 새 탭이 열립니다. NFT를 전송하려면 지갑 드롭다운을 통해 전송할 수 있습니다. NFT를 전송하는 방법에 대한 지침은 지갑과 상호 작용을 참조하세요.

<figure><img src="/files/I8hXibiKRpmZL4gNjmDo" alt=""><figcaption><p>NFT 표시</p></figcaption></figure>

거래 하위 탭을 선택하면 Aftermath에서 수행한 모든 활동이 표시됩니다. 거래, 입금, 스테이킹, 보상 청구 등이 될 수 있습니다. 모든 활동을 쉽게 추적할 수 있으며, 각 거래에 연결된 링크를 클릭하여 블록 탐색기에서 거래의 세부 정보를 확인할 수 있습니다.

<figure><img src="/files/ujIh8x8smescDyYF5TZE" alt=""><figcaption><p>포트폴리오 전체 거래 표시</p></figcaption></figure>

## 스테이킹

스테이킹 탭을 선택하면 "스테이킹 포지션"과 "거래" 두 개의 하위 탭이 나타납니다. SUI를 afSUI로 스테이킹할 때마다 새로운 스테이킹 포지션이 생성됩니다. 모든 afSUI는 대체 가능하며 모든 afSUI를 한 번에 언스테이킹할 수 있지만, 이를 통해 각 스테이킹 시기를 추적할 수 있습니다.

<figure><img src="/files/a4Uu9nMjioulLKb7Gxeq" alt=""><figcaption><p>포트폴리오 스테이킹 포지션 표시</p></figcaption></figure>

여기서는 어떤 검증자에게 스테이킹했는지, 얼마나 많은 SUI가 스테이킹되었는지, 그리고 몇 에폭 동안 스테이킹되었는지 볼 수 있습니다. 오른쪽에 있는 링크를 클릭하면 블록 탐색기에서 거래를 열 수 있습니다. "거래" 하위 탭은 비슷한 정보를 보여주지만, 언스테이킹 작업도 표시됩니다.

## 풀

풀 탭에는 "LP 코인"과 "거래" 두 개의 하위 탭이 포함됩니다. LP 코인을 선택하면 현재 지갑에 있는 모든 유동성 공급자 코인이 표시됩니다. AMM에 유동성을 입금하면 LP 코인을 받게 됩니다. 각 LP 토큰이 속한 풀로 직접 이동하는 버튼도 찾을 수 있습니다. LP 코인을 농장에 스테이크한 경우 여기에는 표시되지 않습니다. 대신, "농장" 탭에서 찾을 수 있습니다. LP 코인을 농장에 입금하면 농장에 잠기게 되며 더 이상 지갑의 코인이 아니게 됩니다.

<figure><img src="/files/vbcQZW6MPUn7h7mSYBtw" alt=""><figcaption><p>포트폴리오 풀 LP 코인 표시</p></figcaption></figure>

거래 하위 탭은 풀에 수행한 모든 입금 및 출금을 표시합니다

<figure><img src="/files/nk8YoTfn9Qtx903fkBi1" alt=""><figcaption><p>포트폴리오 풀 거래 표시</p></figcaption></figure>

## 농장

농장 탭에는 "농사 포지션"과 "거래" 두 개의 하위 탭이 포함됩니다. 농사 포지션은 농장에 입금한 모든 LP 코인을 표시하며, 잠금 상태, 얻은 보상, 현재 연간 수익률(APR)에 대한 한눈에 보는 정보도 제공합니다. 각각의 농장으로 직접 이동하는 버튼도 있습니다:

<figure><img src="/files/kWwqTBtNpMKBYklbVZRy" alt=""><figcaption><p>포트폴리오 농장 농사 포지션 표시</p></figcaption></figure>

거래 하위 탭은 모든 농사 포지션에 대해 수행한 모든 작업을 표시합니다. 스테이킹, 언스테이킹, 잠금, 보상 수확과 같은 작업이 포함됩니다:

<figure><img src="/files/xUlvd0AF096Qrv8knUb7" alt=""><figcaption><p>포트폴리오 농장 거래 표시</p></figcaption></figure>

## 라우터

라우터 탭은 Aftermath의 스마트-오더 라우터를 사용하여 수행한 모든 스왑을 표시합니다. 거래의 명목 가치, 보낸 코인의 종류 및 수량, 받은 코인의 종류 및 수량, 그리고 거래를 블록 탐색기에서 검사할 수 있는 링크가 표시됩니다.

<figure><img src="/files/JrZTEeK3HYBV4S5hrskE" alt=""><figcaption><p>포트폴리오 라우터 표시</p></figcaption></figure>


# 설정 변경하기

화면 상단 메뉴 바의 가장 오른쪽에서 기어 아이콘을 찾을 수 있습니다. 이를 클릭하면 Aftermath Finance dApp을 보고 상호 작용하는 방식을 사용자 정의할 수 있습니다.

<figure><img src="/files/YidcmOJlsJlgPu6hUbdt" alt=""><figcaption><p>가장 오른쪽에 있는 기어 아이콘은 설정 메뉴를 엽니다</p></figcaption></figure>

설정 메뉴에서는 다음과 같은 매개변수를 선호도에 따라 설정할 수 있습니다:

<figure><img src="/files/tes5Sa8x12usakLEXfwd" alt="" width="276"><figcaption><p>Aftermath 설정 메뉴</p></figcaption></figure>

가스: 여기서 Aftermath에서 트랜잭션을 수행하기 위해 가스 비용으로 사용할 코인을 선택할 수 있습니다. 자세한 정보는 문서의 [Dynamic Gas](https://docs.aftermath.finance/getting-started/dynamic-gas) 섹션을 참조하세요.

언어: 현재는 영어만 지원되지만, 곧 추가 언어를 추가하기 위해 커뮤니티와 파트너들과 협력하고 있습니다.

탐색기: Aftermath에서 거래 내역을 볼 수 있는 곳이면 어디든, 블록 탐색기로 이동하여 거래를 더 자세히 조사할 수 있는 버튼을 찾을 수 있습니다. 사용자마다 선호하는 탐색기가 다르기 때문에, SuiVision, Suiscan, Sui Explorer 사이에서 선택할 수 있도록 허용합니다. 여기에서 선호도를 설정하면 이러한 링크 중 하나를 클릭할 때마다 해당 탐색기를 항상 사용하게 됩니다.

네트워크: 메인넷과 테스트넷 사이를 전환할 수 있습니다.

디스플레이: UI를 사용자 정의할 수 있으며, 밝은 모드 또는 어두운 모드, 알림이 표시되는 위치를 설정할 수 있습니다.


# 브리지

다른 블록체인의 자산을 Sui로 전송하여 Aftermath에서 사용하기

Wormhole을 사용한 Sui 생태계로의 브리징은 간단하며 다양한 블록체인을 지원합니다. 시작하려면 화면 상단의 메뉴 바에서 버튼을 클릭하여 브리지 페이지로 이동하세요.

<figure><img src="/files/492NeR0OcWbxfyZJpmfy" alt="" width="375"><figcaption><p>브리지 랜딩 페이지</p></figcaption></figure>

"Bridge Using Wormhole" 버튼을 클릭하여 Portal Bridge dApp을 실행하세요. 목적지 체인으로 Sui를 선택하고, 어느 체인에서 브리징할지 선택하세요. 다음으로, Sui 지갑과 브리징하는 체인에서 사용하는 지갑(예: Metamask)을 연결해야 합니다.

<figure><img src="/files/ircICG9aZMUOECEOIDEY" alt="" width="330"><figcaption><p>Arbitrum에서 Sui로의 Portal Bridge 전송</p></figcaption></figure>

브리징하고자 하는 코인 유형과 수량을 입력하고 예상 수수료를 검토한 후, "Approve and proceed with transaction"을 클릭하세요. 그러면 지갑에서 거래를 승인하라는 메시지가 표시됩니다. 승인되면 브리징 전송의 진행 상황을 모니터링할 수 있습니다.

<div><figure><img src="/files/bjLADd3gEGQcTLAPIbmM" alt="" width="375"><figcaption><p>브리징 진행 상태</p></figcaption></figure> <figure><img src="/files/CLwU0ic3bZBupeWeTRZk" alt="" width="375"><figcaption><p>1단계가 완료되면 "Claim" 버튼이 나타납니다. </p></figcaption></figure></div>

여기를 클릭하면 Sui 지갑에서 거래를 수락하라는 메시지가 표시됩니다. 거래를 승인하면 곧 토큰이 Sui 지갑으로 도착합니다.


# 추천

추천을 통해 사용자는 dApp에서 거래, 스테이킹 또는 유동성 제공을 통해 다른 사람들을 Aftermath 커뮤니티에 초대할 수 있습니다. 추천은 추천인과 추천인의 두 당사자로 구성됩니다. 추천인은 현재 Aftermath 사용자이며, 추천 링크를 생성하여 친구들과 공유합니다. 심판은 Aftermath에 대한 추천 링크를 따라 dApp을 사용하기 시작하는 당사자입니다.

귀하의 고유한 추천 링크는 거래 및 스테이크 페이지 하단에 있는 Share and Earn Rewards 배너에서 찾을 수 있습니다. 추천 링크 복사 버튼을 클릭하여 고유한 추천 링크를 클립보드에 복사합니다. 그런 다음 소셜 미디어를 통해 공유할 수 있습니다.

<figure><img src="/files/I39X1z0S4e1DxGszxJQd" alt=""><figcaption></figcaption></figure>

추천인이 링크를 클릭하면 추천인이 URL에 포함됩니다. 추천인이 Aftermath에서 거래를 실행하면, 귀하의 추천은 온체인에 저장되고 해당 사용자가 수행한 모든 거래는 귀하에게 적립됩니다.

추천인은 추천인이 자신의 계정과 연결될 수 있도록 추천 링크가 있는 하나의 거래만 실행하면 됩니다. 향후 모든 거래는 리퍼럴 링크의 존재 여부와 관계없이 레퍼럴 링크를 통해 실행된 것처럼 연결됩니다(예: 사용자가 비리퍼럴 링크를 사용하여 동일한 주소의 다른 기기를 사용하는 경우).

추천은 온체인에 저장되기 때문에 추천인이 새로운 추천 링크를 사용하여 거래를 실행하지 않는 한 추천은 영구적으로 유효합니다. 새 조회를 사용하는 경우 새 조회가 이전 조회를 대체합니다.

추천은 추천인의 Sui 주소와 연결되어 있으며 Aftermath의 모든 제품에서 유효합니다. 예를 들어, 거래 페이지에서 생성된 추천 링크는 추천 목적으로 Stake 페이지에서 생성된 링크와 동일합니다.

현재 심판은 애프터매스 프로토콜 수수료의 5%를 할인받습니다. 추천인 활동은 추적되지만 현재 적용되는 리베이트는 없습니다.


# 스마트 오더 라우터

Sui의 모든 DEX에서 최고의 스왑 가격을 한 곳에서 찾기

우리의 스마트 오더 라우터(SOR)는 DEX 집계기로, Aftermath의 모든 풀뿐만 아니라 API를 제공하고 충분한 유동성이 있는 Sui의 다른 모든 DEX에도 연결됩니다. 이는 교환하고자 하는 자산을 선택할 때, 우리의 라우터가 Sui의 모든 DEX를 검색하여 최고의 거래를 찾아주며, 이것이 우리 자체 풀에서 오지 않더라도 최적의 거래를 찾아준다는 의미입니다.

현재 Aftermath SOR은 Aftermath, DeepBook, Cetus, Turbos, FlowX, Kriya, Suiswap, 그리고 BlueMove의 유동성 풀과 통합되어 있습니다. Sui DeFi 생태계가 성장하고 새로운 유동성 소스가 온라인으로 제공됨에 따라, 이들도 우리 라우터에 통합되어 귀하의 모든 스왑에 대해 최고의 가격을 보장하기 위해 한 곳만 가면 되도록 할 것입니다.

<figure><img src="/files/HFXwNtpxgG87vmzxVFnt" alt=""><figcaption><p>Aftermath 스마트 오더 라우터에 통합된 유동성 소스</p></figcaption></figure>

단순히 Sui의 모든 유동적인 DEX를 검색하는 것을 넘어서, 스마트 오더 라우터는 단일 스왑을 여러 하위 경로로 나눌 수도 있습니다. 이는 스왑의 일정 비율이 하나의 DEX에서 하나 또는 여러 풀을 통해 진행될 수 있으며, 여러 다른 하위 경로가 나머지 거래를 완료할 수 있다는 것을 의미합니다. 이는 큰 거래를 수행할 때 특히 유용하며, 거래가 여러 DEX의 여러 풀에 걸쳐 분할될 수 있을 때 발생하는 슬리피지가 크게 줄어듭니다. 우리는 우리의 집계기를 설계할 때 Sui의 네이티브 기능을 최대한 활용했으므로, 경로의 전반적인 복잡성이나 총 스왑 수에 관계없이 최종 사용자는 단 하나의 트랜잭션에만 서명해야 합니다.

거래를 여러 하위 경로로 나누는 것은 프로그래머블 트랜잭션 블록(PTB)의 사용을 통해 가능합니다. PTB를 사용하면 여러 상호 관련 스왑을 하나의 원자적으로 실행되는 트랜잭션으로 묶을 수 있습니다. 경로 전체의 유효성 검사는 핫 포테이토 패턴을 사용하여 강제되어, 슬리피지 허용치가 초과되지 않도록 합니다. 이는 또한 경로를 따라 접촉된 코인의 오남용을 방지함으로써 보안을 더욱 강화합니다. 일부 하위 경로는 사용자가 지정한 입력 및 출력 코인 외의 다른 코인을 포함하기 때문입니다. 이러한 보안 조치를 계약 수준에서 시행함으로써 허가 없는 구성 가능성을 실현하여 다른 사람들이 SOR 위에 구축할 수 있게 합니다.

<figure><img src="/files/crTXqweBmXYtBClyNdHH" alt=""><figcaption><p>스마트 오더 라우터 스왑, 여러 하위 경로로 나누기</p></figcaption></figure>

우리는 허가 없는 구성 가능성을 염두에 두고 라우터를 설계함으로써, 다른 Sui 개발자들이 SOR을 그들의 dApp에 통합하기 쉽게 만들었습니다. 현재 SOR 통합에는 Aftermath의 [Dynamic Gas](https://docs.aftermath.finance/getting-started/dynamic-gas) 기능, [Nightly 지갑](https://docs.aftermath.finance/getting-started/interacting-with-your-wallet) 내 스왑, [Scallop ](https://twitter.com/Scallop_io)Tools UI 내의 스왑, 그리고 [Suiba ](https://twitter.com/SuibaOnSUI)Telegram 봇을 통한 거래가 포함되며, 곧 더 많은 통합이 발표될 예정입니다!


# 거래하기

스왑을 수행하려면 먼저 거래 탭으로 이동하세요. 거래 메뉴의 드롭다운 메뉴를 사용하여 스왑할 코인을 선택하세요. 여기에서 자주 거래되는 코인의 아이콘을 클릭하거나, 검색 필드에 코인 이름을 입력하거나, 드롭다운 메뉴에서 선택할 수 있습니다. 이 메뉴들은 세 가지 카테고리로 나뉩니다: 알려진 코인, LP 코인, 인식되지 않는 코인.

알려진 코인은 진품으로 확인되어 자신 있게 거래할 수 있는 코인입니다. 알려지지 않은 코인은 밈 코인, Sui로 브리지된 코인, 그리고 아직 알려진 코인으로 확인되지 않은 다른 코인을 찾을 수 있는 곳입니다. 이들은 안전하게 거래될 수 있지만, 스왑을 수행하기 전에 충분한 주의를 기울여야 합니다. 코인 이름 아래에는 블록 탐색기에서 해당 코인을 검사하여 찾고 있는 것이 맞는지 확인할 수 있는 링크 주소가 있습니다. LP 코인도 지원되며, 다른 풀의 LP 코인을 사용하여 유동성 풀을 생성할 수 있습니다. 충분한 유동성을 가진 모든 풀은 SOR에 의해 집계됩니다.

<div><figure><img src="/files/1kEw1XQze0chKJbVC3CC" alt="" width="375"><figcaption><p>알려진 코인, LP 코인, 인식되지 않는 코인 카테고리가 있는 코인 선택 메뉴</p></figcaption></figure> <figure><img src="/files/o7J1DrGf3lFQfAe8AyBP" alt="" width="375"><figcaption><p>SOL 찾기를 위한 검색 기능을 사용하는 코인 선택 메뉴</p></figcaption></figure></div>

스왑하고자 하는 코인을 선택한 후, 거래 메뉴의 오른쪽 상단에서 지갑에 있는 입력 코인의 총량을 볼 수 있습니다. 원하는 스왑 금액을 입력하려면 타이핑하거나, 슬라이더를 사용하거나, 반(Half) 또는 최대(Max) 버튼을 클릭하세요. 그러면 라우터는 입력한 코인에 대해 가장 많은 출력 코인을 제공하는 경로를 빠르게 계산합니다.

<figure><img src="/files/vFNnOpEf1The7HwcOUXT" alt=""><figcaption></figcaption></figure>

거래 버튼 아래에는 거래 설정을 여는 아이콘이 있습니다. 여기서 디스플레이를 사용자 지정하고, 슬리피지 허용치를 설정할 수 있습니다. 슬리피지는 입력 코인을 유동성 풀에 추가하고 출력 코인을 제거할 때 발생하는 가격 영향을 의미합니다. 지정한 슬리피지 허용치는 초과되지 않으며, 영향이 너무 크면 거래가 되돌아갑니다. 이는 받는 금액이 만족스러운지 확인하기 위한 것으로, 특히 총 사용 가능한 유동성에 비해 큰 스왑을 시도할 때 가장 중요합니다.

거래를 검토하고 허용된 최대 슬리피지를 설정한 후, 거래 버튼을 클릭하고 지갑으로 거래를 확인하세요. 경로가 얼마나 복잡하든 관계없이 단 한 번의 확인만 필요합니다.

그게 다입니다! Aftermath의 스마트 오더 라우터는 스왑을 놀랍도록 간단하게 만들면서 Sui에서 모든 현물 거래에 대해 최고의 가격을 받을 수 있도록 합니다.


# 수수료

집계기 수수료는 프로토콜 수수료와 통합자 수수료 두 가지 카테고리로 나뉩니다.

스마트 오더 라우터를 통해 수행된 모든 거래에 대해 0.005%의 프로토콜 수수료가 부과됩니다. 예를 들어, 1,000 USDC를 거래할 경우, 프로토콜 수수료는 0.05 USDC가 됩니다. 이 수수료는 온체인에서 집행됩니다.

통합자 수수료는 Aftermath 스마트 오더 라우터를 사용하는 dApp이 원하는 경우 자체 수수료를 지정할 수 있게 합니다. 사용자는 통합자 수수료가 적용되었는지 확인하기 위해 각각의 문서를 참조해야 합니다. 이 수수료는 오프체인에서 집행됩니다.

Aftermath.finance에서 수행된 거래는 0.01%의 통합자 수수료를 부과합니다. 예를 들어, 1,000 USDC의 거래는 0.1 USDC의 통합자 수수료가 발생합니다.

Aftermath.finance에서 스왑을 수행할 때 발생하는 총 수수료는 0.015%입니다.

<br>


# 상수 함수 시장 메이커

SUI의 다른 모든 AMM과 달리, 두 자산만을 풀에 허용하는 것이 아니라, Aftermath는 최대 8개의 자산을 풀 당 허용하는 상수 함수 시장 메이커를 제공합니다. 이것이 왜 중요할까요? Sui와 같은 신생 생태계에서 대부분의 유동성은 브리지를 통해 도입됩니다.

불행히도, 다른 체인이나/또는 다른 브리지에서 온 자산은 서로 교환 가능하지 않습니다. 이는 Arbitrum에서 ETH 같은 코인을 브리지했을 때, Solana에서 브리지된 같은 코인이 포함된 풀에서 거래할 수 없다는 것을 의미합니다. 또는 다른 브리지를 통해 도착한 경우에도 마찬가지입니다.

이 문제에 대한 우리의 대답은 이러한 비슷한 코인을 모두 함께 풀에 모으고, 그 가치를 대략적으로 동일하게 고정하는 안정적 스왑 불변을 사용하여 코인 간의 쉽고 낮은 슬리피지 거래를 가능하게 하는 것입니다.

<figure><img src="/files/xRrPzrFyTlKjMet7n4lG" alt=""><figcaption><p>Aftermath Wormhole Stables 다자산 풀</p></figcaption></figure>

우리의 CFMM은 또한 ETH, BTC, SUI, USDC 또는 사용자가 원하는 어떤 상대적 무게의 조합이든지 가능한 비상관 자산 풀을 지원합니다. 풀 내의 여러 코인 간의 효율적인 스왑을 촉진하는 것 외에도, 이러한 비상관 풀은 다양한 유형의 바스켓 생성을 허용합니다. 예를 들어, 각 개별 코인이 전체 풀의 100%까지 모두 합쳐야 하지만, 블루칩 지수나 밈 코인 지수를 만들 수 있습니다.

풀 생성은 완전히 허가 없이 이루어져, 커뮤니티가 가장 관심 있는 풀을 배포할 수 있는 완전한 창의적 자유를 제공합니다.


# 자습서

다음 방법에 대한 단계별 지침:

#### [**수영장에 입금**](https://app.gitbook.com/o/UoFBlY0GkyIkxurmUIH1/s/tBWRI3CUEvo6lk7n5GNW/~/changes/17/undefined-2/undefined-1/depositing)

#### [풀에서 인출](https://app.gitbook.com/o/UoFBlY0GkyIkxurmUIH1/s/tBWRI3CUEvo6lk7n5GNW/~/changes/17/undefined-2/undefined-1/withdrawing)

#### [새 풀 만들기](https://app.gitbook.com/o/UoFBlY0GkyIkxurmUIH1/s/tBWRI3CUEvo6lk7n5GNW/~/changes/17/undefined-2/undefined-1/creating-a-pool)


# 예치하기

Aftermath에서 유동성을 제공하는 것은 간단합니다. Earn -> Pools 탭으로 이동하고, 예치하고 싶은 풀을 선택하세요. 소유한 코인 중 하나에 대한 풀이라면 어떤 풀이든 될 수 있으며, 유동성 제공자가 되기 위해 모든 코인을 가질 필요는 없습니다.

여기에서 페이지 상단에 두 가지 선택지가 보일 것입니다: 공식(Official)과 커뮤니티(Community).

공식 풀은 Aftermath가 파트너와 협력하여 생성한 풀입니다. 커뮤니티 풀은 완전히 허가 없이 누구나 생성할 수 있습니다. 우리는 최고의 사용자 경험을 보장하면서도 탈중앙화를 존중하는 이러한 접근 방식을 취했습니다.

<figure><img src="/files/9Hfj0HALzeqbOkKvSD3R" alt=""><figcaption><p>Aftermath의 공식 풀 목록. 커뮤니티 탭에는 사용자가 허가 없이 생성한 풀 목록이 표시됩니다.</p></figcaption></figure>

풀을 선택하고, 해당 특정 풀의 페이지에 도착하면 오른쪽 상단에 예치 버튼이 보일 것입니다. 이 버튼을 클릭하면 다음과 같은 메뉴가 나타납니다

<figure><img src="/files/jOFQd9mmjGTzPTzj2vGd" alt=""><figcaption></figcaption></figure>

여기에서 풀에 예치할 수 있는 옵션이 보입니다. 풀에 따라 최대 8개의 총 코인을 예치할 수 있습니다. 지갑에 있는 코인 중 하나만, 일부 코인만, 또는 모든 코인을, 그리고 어떤 상대적인 양으로든 예치할 수 있습니다.

풀과 각 자산의 지정된 무게에 비해 현재 잔액에 따라, 한 코인보다 다른 코인을 더 많이 예치함으로써 더 나은 결과를 얻을 수 있습니다. 예치 메뉴 상단의 첫 번째 필드 아래에서 받게 될 LP 토큰의 추정 가치를 볼 수 있습니다. 이 가치를 하단에 있는 총계(Total) 필드와 비교하면 예치할 코인의 최적 비율을 결정할 수 있습니다. 대부분의 공식 풀의 경우, 풀의 각 코인에 지정된 무게에 따라 예치하면 최상의 결과를 얻을 수 있지만, 특히 큰 금액을 예치할 때는 LP 토큰의 가치가 만족스러운지 확인한 후에 진행하는 것이 좋습니다.

예치하고자 하는 각 코인의 금액을 입력하고 예치 버튼을 누르면 미리보기가 나타납니다:

<figure><img src="/files/OJ4z3YywXY0Js6RTE3Vg" alt="" width="375"><figcaption><p>예치 미리보기</p></figcaption></figure>

여기에서 예치 내용을 검토하여 받게 될 LP 토큰의 가치를 확인하고 허용된 최대 슬리피지를 설정할 수 있습니다. 슬리피지는 풀에 코인을 예치할 때 발생하는 가격 영향을 의미하며, 풀의 총 유동성에 비해 큰 금액을 예치할 때 가장 중요합니다. 예를 들어, 위 이미지에서 예치되는 코인의 총 가치는 $30.44이며, 받게 될 LP 토큰의 가치는 $30.45입니다. 지정된 0.5%의 슬리피지 허용치는 최소 $30.30의 LP 토큰을 받게 되거나, 예치가 되돌아가고 완료되지 않음을 보장합니다.

\
예치 내용을 검토하고 만족한다고 판단되면 예치 버튼을 클릭하고 지갑에서 트랜잭션을 승인하여 예치를 완료하세요. 그러면 지갑에 LP 토큰을 받게 됩니다. 또한 [포트폴리오 ](https://docs.aftermath.finance/getting-started/viewing-your-portfolio)페이지에서 모든 LP 토큰을 볼 수 있습니다

### 가격 영향 및 최소 수령액

풀의 전체 유동성에 비해 상당한 금액을 예치할 때, 가격 영향은 예치된 토큰 대비 받는 LP 토큰의 가치에 영향을 줄 수 있습니다. 예치 시, 모든 예치된 자금은 풀로 이전되고 LP가 발행되어 사용자에게 전달됩니다. 우리가 고려하는 차이점은 예치된 자금이 사라지지 않는다는 것입니다 -- 그것들은 풀의 나머지 자산과 함께 거래에 참여합니다. 차이점은 예치된 금액과 반환된 LP의 양 사이에 있습니다.

그렇다면 풀은 예치에 대해 얼마나 많은 LP를 반환할지를 어떻게 결정할까요? 가장 예치자에게 유리한 간단한 예치는 풀의 잔액 분포와 완벽하게 일치하는 것입니다. 예를 들어, 예치가 각 잔액을 10% 증가시킨다면(예: 풀이 100 USDC와 110 USDT로 시작할 경우, 10% 예치는 10 USDC와 11 USDT입니다) 그러면 발행된 LP의 양은 예치 시작 시 존재하는 모든 LP의 총합의 10%와 같습니다(유통 중인 LP가 105개라면 10% 예치는 10.5 LP를 벌게 됩니다).

사용자가 모든 코인 유형의 균형 잡힌 조합 대신 단일 코인 유형을 예치하기를 원할 경우, 풀은 그것이 얼마나 많은 LP 가치가 있는지 계산해야 합니다. 그것은 내부적으로 예치된 금액을 다른 코인 유형 각각으로 변환하여 결과가 자금의 균형 잡힌 분포가 되도록 한 다음, 그것을 예치하고 위에서 설명한 비례 규칙을 따릅니다.

이러한 동작을 설명하는 예를 들어보겠습니다. 105개의 순환 LP를 가진 안정적인 풀이 100 USDC와 110 USDT(USDT/USDC = 1.1)로 구성되어 있고 우리가 그것에 $50을 예치하고 싶다고 가정해 보겠습니다. 우리가 벌 수 있는 LP를 최대화하는 방법은 23.81 USDC와 26.19 USDT(USDT/USDC 또한 1.1)를 예치하는 것입니다. 이 예치는 총 $50(23.81 + 26.19 = 50)이며 풀의 각 자산의 23.81%를 구성합니다(100의 23.81%는 23.81이고 110의 23.81%는 26.19입니다). 따라서 우리는 순환 공급량의 23.81%, 즉 25 LP를 보상받습니다.

대신 50을 하나의 코인으로 모두 예치한다면, 우리는 더 적은 LP를 벌게 됩니다. 50을 모두 USDC로 예치한다면, 풀은 그것을 모든 자산 예치에 허용되는 금액으로 변환합니다. 이 경우, 우리의 50에서 21.59 USDC를 가져와 20.83 USDT로 교환합니다(이것이 큰 거래이기 때문에 여기에서 가격 영향이 역할을 하는 것을 주목하세요), 이는 풀의 잔액을 121.59(100 + 21.59)와 89.17(110 - 20.83)로 전환합니다. 남은 28.41 USDC(50 - 21.59)와 20.83 USDT는 각각 해당 풀 잔액의 23.37%입니다(28.41은 121.59의 23.37%이고 20.83은 89.17의 23.37%입니다), 그래서 이 예치는 우리에게 총 LP의 23.31%를 벌게 합니다. 즉, 24.53 LP, 105의 23.31%입니다. 이것은 우리가 직접 모든 자산 예치로 벌었을 25 LP보다 적습니다.

숫자를 다른 방향으로 계산해보면, 대신 50 USDT를 예치하고 싶고 USDC는 예치하지 않는다고 가정해 보겠습니다. 풀은 20.37 USDT를 18.52 USDC로 변환합니다(가격 영향이 더 심하게 나타납니다. 왜냐하면 처음부터 USDT가 더 풍부하기 때문입니다), 풀 잔액을 81.48 USDC와 130.37 USDT로 변경합니다. 우리가 교환한 18.52 USDC와 우리의 남은 29.63 USDT는 각각 해당 풀 잔액의 22.72%입니다, 그래서 우리는 총 LP의 22.72%를 벌게 됩니다. 즉, 23.86 LP, 세 시나리오 중 가장 적습니다.

큰 양을 예치하기 전에, 예치 미리보기 메뉴를 확인하여 총 예치액과 최소 수령액이 만족스러운지 확인하세요. 그렇지 않다면, 여러 코인을 동일한 양으로 예치하는 것이 가장 좋습니다.


# 출금하기

출금하고자 하는 LP 포지션이 있다면, 단순히 풀로 이동하여 출금 버튼을 선택하면 됩니다. 또한, 제공한 유동성이 있는 모든 풀을 빠르게 볼 수 있습니다. LP 토큰을 농장에 스테이킹한 경우, 포트폴리오의 Pools 탭 아래에 표시되지 않는다는 점을 유의하세요. 왜냐하면 그 코인들은 현재 지갑에 있지 않기 때문입니다. 대신, 포트폴리오의 Farms 탭 아래에서 모든 농장 포지션을 볼 수 있습니다. 농장에 현재 스테이킹된 유동성을 출금하고자 하는 경우, 먼저 농장에서 스테이킹을 해제한 다음, 풀에서 출금하기 위한 여기의 지침을 따르세요.

출금하고자 하는 풀로 이동한 후, 페이지 상단 오른쪽에 있는 출금 버튼을 클릭하세요. 이렇게 생긴 메뉴가 나타날 것입니다:

<figure><img src="/files/sDO5D1ua6hkax9zJgHCJ" alt=""><figcaption><p>출금 메뉴</p></figcaption></figure>

소유한 LP 토큰의 총량이 페이지 상단의 첫 번째 필드 위에 표시됩니다. 풀에서 제거하고자 하는 LP 토큰의 양을 입력하거나 슬라이더를 사용하거나 Half 또는 Max 버튼을 선택할 수 있습니다.

출금은 출금하는 LP 토큰 양에 상대적으로 각 코인의 가치에 따라 동등한 비중으로 분배됩니다. 이는 고변동성 시기에도 Aftermath 풀이 유동성 제공자에게 안전하게 유지될 수 있도록 보장하는 보안 기능입니다.


# 풀 생성하기

풀을 생성하려면, Pools 탭으로 이동하세요.

오른쪽 상단에 풀 생성(Create Pool) 버튼이 보일 것입니다. 이를 클릭하면 Aftermath에 새 풀을 열 수 있는 페이지로 이동합니다.

<figure><img src="/files/aF8CKXTJckxrbcQhCh6y" alt=""><figcaption><p>풀 생성 버튼은 Pools 페이지의 오른쪽 상단에 위치합니다.</p></figcaption></figure>

풀 생성을 클릭하면 텍스트를 입력할 수 있는 여러 필드가 있는 새 페이지가 열립니다. 여기서 모두 검토해 보겠습니다:

**풀 이름:** 이것은 Aftermath 앱 사용자에게 Pools 페이지에 표시될 이름입니다.

**거래 수수료:** 여기에서 유동성 제공자에게 가는 거래자에게 부과되는 수수료를 설정할 수 있습니다. 일반적인 수수료는 상관 관계가 없는 풀에 대해 0.3%, 안정적인 풀에 대해 0.1%이지만, 원하는 수수료를 지정할 수 있습니다.

**LP 코인 이름:** 이것은 지갑과 앱에서 표시될 LP 토큰의 이름입니다.

**LP 코인 심볼:** 이것은 블록체인에 저장될 LP 토큰의 이름입니다.

<figure><img src="/files/5wxNGM4FD9mi5vbZrnyP" alt=""><figcaption><p>풀 생성 메뉴</p></figcaption></figure>

## 곡선 유형

다음으로 볼 옵션은 곡선 유형(Curve Type)이며, 여기에는 두 가지 옵션이 있습니다: 상관 관계 없음(Uncollated) 또는 안정적(Stable).

상관 관계 없음은 ETH, BTC, SUI, USDC와 같이 상대적 가치가 변동적인 자산을 포함하는 풀에 대한 것입니다.

안정적은 오직 비슷한 자산을 포함하는 풀에만 해당됩니다. 예를 들어, 오직 안정적인 코인만, 다른 블록체인에서 브리지된 여러 유형의 ETH만, 또는 다른 버전의 BTC만 포함하는 경우입니다. 각각 하나씩 포함하는 풀이 아닙니다.

상관 관계가 있는 풀은 각 자산이 동일한 비중을 가져야 합니다. 상관 관계가 없는 풀은 풀 생성자가 선택한 상대적인 비중을 가질 수 있습니다.

## 코인 및 초기 예치금

이름, 수수료, 심볼, 곡선 유형을 지정한 후, 풀에 있는 코인의 수와 상대적인 비중을 선택할 차례입니다. 기본값은 두 코인이지만, 메뉴 하단의 코인 추가 버튼을 클릭하여 더 많은 코인을 추가할 수 있습니다. 각 코인에 대한 초기 예치금을 제공해야 하므로 지갑에 보유한 코인만 추가할 수 있다는 점에 유의하세요.

드롭다운 메뉴를 사용하여 목록에서 코인을 선택하고, 풀에 예치하고자 하는 코인의 양을 입력하세요. 그런 다음 해당 코인의 전체 풀에 대한 상대적인 비중을 선택할 수 있습니다. 이 비중은 모든 코인의 총합이 100%가 되도록 1%에서 99% 사이의 어떤 값이든 될 수 있습니다.

풀에 넣고 싶은 모든 코인의 초기 예치금과 상대적인 비중을 설정하면, 풀 생성 버튼이 활성화되고 진행할 수 있습니다. 필드가 올바르게 채워지지 않은 경우, 풀을 생성할 수 없습니다.

## LP 코인 소각

풀 생성자는 풀 생성 시 초기 유동성 LP 토큰을 소각할 수 있습니다. 이러한 LP 토큰은 연결할 수 없는 주소로 전송되며 검색할 수 없습니다. 이는 풀을 처음 시드하는 데 사용된 모든 유동성이 풀에 영원히 잠긴다는 것을 의미합니다.

이는 풀에 있는 각 코인의 초기 입금액에만 적용됩니다. 풀이 생성된 후 풀에 추가되는 모든 유동성은 정상적으로 LP 토큰이 발행됩니다.

<figure><img src="/files/xbfj80wqX642JtIMbJFj" alt="" width="375"><figcaption></figcaption></figure>

&#x20;풀 생성은 완전히 허가 없이 이루어지며 수수료가 부과되지 않습니다. 임의의 비중으로 최대 8개의 자산을 사용할 수 있으므로 새 풀을 출시할 때 상당히 창의적일 수 있으니 즐기세요!


# 수수료

유동성 제공자는 Aftermath의 풀에서 코인을 예치하거나 인출할 때 어떠한 수수료도 부과되지 않습니다. 대신, 풀의 유동성을 사용하여 한 코인에서 다른 코인으로 스왑하는 거래자들이 지불하는 수수료를 벌게 됩니다.

특정 풀에 의해 부과되는 거래 수수료는 풀이 생성될 때 결정됩니다. Aftermath의 공식 풀의 경우, 상관 관계가 없는 풀에 대해 거래자에게 0.3%의 거래 수수료가 부과되며, 안정적인 풀의 경우 0.1%입니다.

커뮤니티 풀의 수수료는 풀의 생성자에 의해 지정되므로 다양할 수 있습니다. 각 풀은 거래 수수료를 해당 페이지에 나열하여, LP가 되기 전에 확인할 수 있습니다.

<figure><img src="/files/qJWVGSsiKq07K9e46BVs" alt=""><figcaption><p>각 풀의 거래 수수료는 풀의 나머지 세부 정보와 함께 해당 페이지에 나열됩니다.</p></figcaption></figure>

각 풀의 거래 수수료 외에도, Aftermath는 풀을 통해 코인을 스왑하는 거래자에게 0.005%의 프로토콜 수수료를 부과합니다. 유동성 제공자에게는 어떠한 수수료도 부과되지 않습니다.


# Contracts

{% tabs %}
{% tab title="Mainnet" %}

<table><thead><tr><th width="176">Contract</th><th width="110.33333333333334">Type</th><th>Address</th></tr></thead><tbody><tr><td>amm</td><td>package</td><td>0xefe170ec0be4d762196bedecd7a065816576198a6527c99282a2551aaa7da38c</td></tr><tr><td>ammInterface</td><td>package</td><td>0x0625dc2cd40aee3998a1d6620de8892964c15066e0a285d8b573910ed4c75d50</td></tr><tr><td>events</td><td>package</td><td>0xefe170ec0be4d762196bedecd7a065816576198a6527c99282a2551aaa7da38c</td></tr><tr><td>poolRegistry</td><td>object</td><td>0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae</td></tr><tr><td>protocolFeeVault</td><td>object</td><td>0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4</td></tr><tr><td>treasury</td><td>object</td><td>0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce</td></tr><tr><td>insuranceFund</td><td>object</td><td>0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b</td></tr><tr><td>lpCoinsTable</td><td>object</td><td>0x7f3bb65251feccacc7f48461239be1008233b85594114f7bf304e5e5b340bf59</td></tr></tbody></table>
{% endtab %}

{% tab title="Testnet" %}

<table><thead><tr><th width="176.33333333333334">Contract</th><th width="110">Type</th><th>Address</th></tr></thead><tbody><tr><td>amm</td><td>package</td><td>0x538a63ce76fde26c90874ab1e7640b07a5422e03dad1011628debf3f0fb26a56</td></tr><tr><td>ammInterface</td><td>package</td><td>0xbe2b471e0a4867cd002a7ac5358c82458bf70a42184af12b0a013abe032aa346</td></tr><tr><td>events</td><td>package</td><td>0x538a63ce76fde26c90874ab1e7640b07a5422e03dad1011628debf3f0fb26a56</td></tr><tr><td>poolRegistry</td><td>object</td><td>0x06dc43d8660aa74f24bdee67739e4627726fe8077aa95aa993d987367efe16cc</td></tr><tr><td>protocolFeeVault</td><td>object</td><td>0x1a15b189c6ef99e8cacc4ef7535f5edb54a68e13995bd78bb20e17b2f8fab1b7</td></tr><tr><td>treasury</td><td>object</td><td>0xcaac321cf5c889dc94957d29a1e99454f7d511e30c50dbb4fd7ab54890f40d32</td></tr><tr><td>insuranceFund</td><td>object</td><td>0x0e7798f626fa5a7a2b1f488a1334ef9310c478cf78074bce6aeb4518f9d78ccd</td></tr><tr><td>lpCoinsTable</td><td>object</td><td>0xf036195cbdc63d557d762cc4ae922ade86de4be7bbdabffc0c64b0fd25ba16b0</td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# Afterburner Vaults

저희의 Afterburner Vaults는 Aftermath의 풀에 유동성을 제공하는 사용자들에게 토큰 보상을 분배함으로써 인센티브를 제공합니다. 인센티브를 받을 수 있는 풀은 Pools 및 Farms 페이지 상단에서 확인할 수 있는 배너를 통해 식별됩니다.

<figure><img src="/files/KllRSV64ZahTvgdFVO2W" alt=""><figcaption></figcaption></figure>

초기에는 이러한 풀이 SUI 및 afSUI 토큰을 발행하지만, 향후 다른 토큰도 발행될 것입니다.

토큰 발행량 분배는 매 분마다 계산되며, 각 유동성 제공자는 해당 풀에 스테이크한 유동성의 양에 따라 총 유동성에 대한 자신의 보상을 획득합니다.

\
Afterburner Vault에 스테이킹하려면 먼저 인센티브를 받을 수 있는 풀 중 하나에 유동성을 제공해야 합니다. 이에 대한 지침은[ 풀에 입금하는 방법](https://docs.aftermath.finance/pools/depositing)에 대한 문서를 참조하십시오.


# 자습서

Step by step instructions on how to:

#### [Stake into a Farm](/farms/undefined/undefined)

#### [Claim Rewards](/farms/undefined/claiming-rewards)

#### [Unstake from a Farm](/farms/undefined/unstaking)


# 농장에 스테이킹하기

LP 토큰을 농장에 스테이킹하여 인센티브를 받는 것은 간단합니다. 애프터버너 볼트가 있는 풀에 예치하면, 해당 농장으로 직접 이동할 수 있는 페이지 상단의 배너를 볼 수 있습니다.

<figure><img src="/files/ae5w8kOJYa3d1GRpdomb" alt=""><figcaption></figcaption></figure>

또는, 애프터버너 볼트를 통해 인센티브가 제공되는 풀의 전체 목록을 보려면 Farms 탭으로 이동할 수 있습니다.

<figure><img src="/files/eaZBCgCpC9mJSKBCcUaj" alt=""><figcaption></figcaption></figure>

해당 LP 토큰의 잔액을 가진 농장으로 이동하면, 그 농장에 대한 여러 지표를 검토할 수 있습니다. 여기에는 TVL, APR, 최대 잠금 기간, 블록 탐색기에서의 농장 링크가 포함됩니다.

잠금 기간은 사용자가 특정 기간 동안 유동성을 커밋함으로써 더 높은 APR을 벌 수 있는 기능을 제공합니다. 이는 필수 사항은 아니지만, 사용자가 특정 잠금 기간에 편안함을 느끼는 경우 더 많은 보상을 벌 수 있는 기회를 제공합니다.

스테이크 메뉴 안에서, 사용자가 스테이킹하고자 하는 LP 토큰의 수를 지정할 수 있는 곳 아래에 잠금 기간 슬라이더가 있습니다. 사용자는 이 슬라이더를 움직여 다양한 잠금 기간에 대한 APR 잠금 부스트와 총 APR을 볼 수 있으며, 가장 편안한 기간을 선택할 수 있습니다.

<div><figure><img src="/files/DElvD1VQRzDqLXugil0y" alt="" width="375"><figcaption><p>잠금 부스트 없음</p></figcaption></figure> <figure><img src="/files/EWpXhwUpKBerVbYmzzn4" alt="" width="375"><figcaption><p>4일 잠금 부스트</p></figcaption></figure></div>

최대 잠금 기간은 보상 방출 일정 및 보충과 관련이 있으며, 이는 매주 월요일마다 한 번씩 발생합니다. 이는 현재 보상 방출 에포크의 남은 시간보다 더 길게 잠금을 방지하기 위한 것입니다. 잠금을 할 수 없는 경우, 다음 에포크가 시작되고 애프터버너 볼트에 새로운 보상이 입금되면 잠금을 할 수 있게 됩니다.

LP 토큰의 양과 잠금 기간을 선택한 후, 스테이크 버튼을 클릭하여 농장에 진입하세요. 그러면 페이지 하단에 스테이킹 포지션이 나타납니다.

<figure><img src="/files/EK0l6U8p8Hox1Ak8ad1j" alt=""><figcaption></figcaption></figure>


# Claiming Rewards

Afterburner Vault에 스테이크 한 후에는 포지션의 상태를 모니터링하고 다양한 작업을 수행할 수 있습니다. 여러 농장에 스테이크한 경우, 포트폴리오 탭으로 이동하여 농장 탭을 선택하고 모든 농장 포지션을 쉽게 볼 수 있으며 각각의 페이지로 이동할 수 있습니다.[ 포트폴리오 보기: 농장](https://docs.aftermath.finance/getting-started/viewing-your-portfolio#farms) 문서 섹션을 참조하십시오.

<figure><img src="/files/q7I5XokdxVFzVmUrxSOI" alt=""><figcaption></figcaption></figure>

스테이크한 Afterburner Vault의 페이지로 이동하면 여러 가지 작업을 수행할 수 있습니다. 이러한 작업에는 스테이크 추가, 스테이크 해제, 잠금 연장, 보상 청구가 포함됩니다.

<figure><img src="/files/CziOFqdXcvhQcyRlyMfl" alt=""><figcaption></figcaption></figure>

스테이크 추가를 통해 농장에 커밋한 LP 토큰의 양을 늘릴 수 있습니다. 이 옵션을 선택하면 작업을 수행하기 전에 포지션에 대한 변경 사항을 검토할 수 있습니다. 새로운 잠금 기간, 새로운 APY 잠금 부스트 및 총 APY, 스테이크 양과 같은 지표를 검토할 수 있습니다.

<figure><img src="/files/WntMoCuyD4xtxZiTaSRT" alt="" width="344"><figcaption></figcaption></figure>

잠금 연장을 통해 이전에 스테이크한 LP 토큰을 더 긴 기간 동안 커밋함으로써 추가 보상을 받을 수 있습니다. 이 옵션을 선택하면 거래를 실행하기 전에 새로운 APY와 새로운 잠금 기간을 포함한 스테이킹 포지션에 대한 변경 사항을 검토할 수 있습니다.

<figure><img src="/files/3eQb5MRHYLEruateu1Vx" alt="" width="375"><figcaption></figcaption></figure>

보상 청구를 통해 지갑에 있는 모든 보상을 받을 수 있습니다. 그런 다음 이를 원하는 대로 사용할 수 있습니다.

<figure><img src="/files/K8g4Ysil44sleoXniQlQ" alt="" width="375"><figcaption></figcaption></figure>

특정 시점에 FE는 그 순간에 누적된 정확한 보상을 표시합니다. 그러나 보상이 실현될 때까지 누적된 보상을 추정치로 간주해야 합니다. 이는 보상을 더 자주 청구할수록 FE에 표시된 것과 실제 청구된 보상이 더 정확하게 일치하게 됨을 의미합니다.

저희 볼트는 Sui에 내재된 소유권 의미론을 활용합니다. 저희 afSUI/SUI LP와 같은 자산을 저희 볼트 중 하나에 스테이크할 때, 스테이크한 코인을 래핑하는 포지션을 생성합니다. 저희 볼트는 포지션에 대해 보상을 배포하는 것을 포함하여 귀하의 StakedPosition과 상호 작용할 수 없습니다 - 그것들은 귀하에 의해서만 소유되기 때문입니다. 따라서 귀하의 포지션의 보상은 귀하가 포지션과 상호 작용하는 트랜잭션에 서명한 후에만 체인상에서 업데이트됩니다. 저희는 보상을 청구하는 행위뿐만 아니라 수행할 수 있는 모든 작업이 귀하의 포지션의 누적 보상을 업데이트하도록 설정했습니다.

포지션의 소유자로서, 여러분만이 그것과 상호 작용할 수 있는 거래를 실행할 수 있습니다. 본질적으로 볼트는 여러분이 투자한 자금에 대해 아무것도 할 수 없습니다.

그게 다입니다! 질문이 있으시면 Aftermath 팀에 [디스코드](https://discord.com/invite/VFqMUqKHF3)로 연락주시면 도와드리겠습니다.


# Unstaking

농장에서 스테이크를 해제하려면 해당 농장으로 이동하여 자신의 포지션과 수행할 수 있는 조치들을 확인할 수 있습니다. 여러 농장 포지션을 가지고 있다면, 포트폴리오를 통해 모든 포지션을 확인할 수 있습니다. 자세한 정보는 문서의 [포트폴리오 보기: 농장](https://docs.aftermath.finance/getting-started/viewing-your-portfolio#farms) 섹션을 참조하세요.

스테이크한 Afterburner Vault 페이지로 이동하면, 농장 포지션 디스플레이에서 '스테이크 해제' 버튼을 볼 수 있습니다.

<figure><img src="/files/7G25DPdw8HncoDxy952j" alt=""><figcaption></figcaption></figure>

스테이크 해제를 통해 Afterburner Vault에서 유동성을 제거할 수 있으며, 이때 기본 풀에서도 유동성을 인출할 수 있습니다. 이 옵션은 LP 토큰을 잠근 시간이 경과한 후 사용할 수 있게 되며, 이는 상태 제목 아래에 표시됩니다.

<figure><img src="/files/umTpVEivjTB0KI5rz6xe" alt="" width="375"><figcaption></figcaption></figure>

스테이크 해제 시 아직 청구되지 않은 모든 보류 중인 보상도 동시에 청구하여 포지션이 완전히 실현되고 LP 토큰과 모든 보상이 지갑으로 전송되도록 합니다.


# 아키텍처

## 아키텍처 및 사용 방법

Afterburner Vault는 본질적으로 스테이크한 금액에 비례하여 보상을 제공하는 농장 볼트입니다. 이 제품에는 '엄격한' 버전과 '유연한' 버전의 두 가지 형태가 있으며, 차이점은 아래에서 설명됩니다.

기능은 afterburner\_vaults 패키지에 캡슐화되어 있으며, vault와 staked position 두 개의 하위 패키지에 걸쳐 분산되어 있습니다.


# 볼트

## 볼트 패키지

이 패키지는 볼트 조작을 위한 인터페이스를 제공합니다. 주요 진입점은 AfterburnerVault 구조체로, 사용자가 Coin 타입의 코인을 스테이크할 수 있는 볼트입니다. 볼트에는 어떤 수의 보상도 추가될 수 있으며, 각 보상의 배출 일정에 따라 스테이커에게 배출됩니다. 사용자는 볼트에 진입할 때 자신의 포지션을 잠그어 보너스 보상을 받을 수 있습니다. '엄격한' 구현의 경우 어떤 시점에서든, '유연한' 구현의 경우 잠금 기간이 끝난 후에 보상을 청구할 수 있습니다.

## 엄격한 구현과 유연한 구현

Afterburner 볼트는 사용자가 자신의 포지션을 잠그어 더 많은 보상을 받을 수 있도록 합니다. 그러나, 변화가 빠른 DeFi 환경에서 잠금의 전형적인 문제점은 사용자의 자본을 위한 더 유리한 기회가 나타날 수 있으며, 자산이 잠겨 있는 경우 이 기회를 놓칠 수 있다는 것입니다.

이 문제를 극복하기 위해 우리는 잠금 기간이 끝나기 전에 사용자가 자신의 포지션을 잠금 해제할 수 있는 '유연한' 볼트 변형을 제안합니다. 이 경우 사용자는 포지션을 잠근 시간 동안만 보너스 보상을 받게 됩니다.

반대로, Afterburner Vault는 잠금 기간이 끝난 후에만 사용자가 자신의 포지션을 잠금 해제하고, 따라서 인출할 수 있는 '엄격한' 버전도 제공합니다.

엄격한 구현의 경우, 사용자는 언제든지 자신의 보상을 청구할 수 있습니다.

유연한 구현의 경우, 사용자는 포지션이 잠금 해제된 후에만 자신의 보상을 청구할 수 있습니다.

## 볼트 생성

볼트 생성은 new\<STAKE> 메서드가 담당합니다. 이 메서드는 배출이 없는 새로운 볼트를 생성합니다. 매개변수 중 하나는 '엄격한' 볼트( lock\_enforcement = 0) 또는 '유연한' 볼트( lock\_enforcement = 1) 생성을 가능하게 하는 lock\_enforcement입니다. 볼트가 생성된 후, share\_vault\<stake> 함수를 실행하여 공유해야 합니다.

볼트가 기능하려면, 보상 배출이 볼트 소유자에 의해 초기화되어야 합니다. 이는 initialize\_reward\<STAKE, REWARD> 메서드를 호출함으로써 달성될 수 있으며, 배출 일정, 배출 비율, 배출 지연 시간을 설정할 수 있습니다.

## 보상 추가 및 증가

소유자는 add\_reward\<STAKE, REWARD> 메서드를 사용하여 볼트에 추가 보상을 추가하거나, increase\_emissions\_for\<STAKE, REWARD> 함수를 사용하여 보상 배출을 증가시킬 수 있습니다.

<br>


# 스테이크 포지션 패키지

### 스테이크 포지션 패키지

이 패키지는 스테이크된 포지션 조작을 위한 인터페이스를 제공합니다. 주요 진입점은 StakedPosition 구조체입니다.

### 포지션 오픈

사용자는 stake 함수를 사용하여 포지션을 오픈할 수 있습니다. 포지션을 오픈할 때, 사용자는 잠금 기간을 밀리초 단위로 지정해야 합니다. 잠금 기간은 Afterburner Vault 구성 중에 설정된 경계를 준수해야 합니다.

잠긴 포지션은 구성된 Afterburner Vault의 배수를 존중하여 보너스 보상을 받게 됩니다.

### 보상 수확

보상 수확은 세 단계 과정입니다:

사용자는 begin\_harvest\<STAKE> 함수를 호출해야 합니다;

각 보상에 대해, 사용자는 harvest\_rewards\<STAKE, REWARD> 함수를 호출해야 합니다. 이 함수는 사용자가 Coin\<REWARD> 유형에 대해 누적된 보상을 얻을 수 있게 해줍니다;

과정을 마무리하기 위해 사용자는 해당 이벤트를 발생시키는 end\_harvest 함수를 호출해야 합니다.

엄격한 구현에서는 사용자가 언제든지 보상을 청구할 수 있습니다.

유연한 구현에서는 사용자가 포지션이 잠금 해제된 후에만 보상을 청구할 수 있습니다.

### 스테이크 추가

사용자는 언제든지 deposit\_principal 함수를 사용하여 포지션의 스테이크 금액을 증가시킬 수 있습니다. 잠긴 포지션의 스테이크를 증가시킨 후, 잠금 기간은 재계산됩니다.

### 스테이크 인출

사용자는 withdraw\_principal\<STAKE> 함수를 사용하여 스테이크한 원금을 인출할 수 있습니다. 인출하기 위해서는 포지션이 잠금 해제되어야 합니다.

잠금 기간이 끝나기 전에는 엄격한 Afterburner Vault에 스테이크된 포지션을 잠금 해제할 수 없습니다.

### 포지션의 잠금 연장

사용자는 renew\_lock 함수를 사용하여 잠금 기간을 늘릴 수 있습니다.

### 포지션 합치기

사용자는 join 함수를 사용하여 두 포지션을 합칠 수 있습니다. 결과 포지션은 두 포지션 중 가장 최근의 잠금 시작 시간과 더 긴 잠금 기간을 가지게 됩니다.

### 포지션 분할

사용자는 split 함수를 사용하여 포지션을 둘로 분할할 수 있습니다. 누적된 보상은 총 스테이크 금액에 대해 분할되는 비례 금액에 의해 두 포지션 사이에 분할됩니다. 모든 다른 매개변수는 원래 포지션과 동일하게 유지됩니다.

### 포지션 종료

사용자는 destroy 함수를 사용하여 비활성 포지션을 삭제할 수 있습니다. 파괴된 포지션에는 원금이나 보상이 남아 있지 않아야 합니다.

<br>


# 수수료

수수료

Afterburner 볼트는 유동성 제공자에게 보상을 분배하는 수단일 뿐이며, 어떠한 수수료도 부과하지 않습니다.


# FAQs

### 보상은 어떻게 계산되나요?

각 스테이크된 포지션이 벌어들이는 APR은 현재 에폭에 볼트에 예치된 미청구 보상의 양, 볼트에 스테이크된 LP 토큰의 총량에 대한 스테이크된 포지션의 크기, 그리고 특정 기간 동안 잠금으로 적용된 보상 배수를 기반으로 합니다.

각 농장 볼트의 배출률을 결정하기 위해 사용되는 계산은 다음과 같습니다:

```typescript
 const emissionRateUsd =
            Coin.balanceWithDecimals(rewardCoin.emissionRate, decimals) * price;

        dayjs.extend(duration);
        const oneYearMs = dayjs.duration(1, "year").asMilliseconds();
        const rewardsUsdOneYear =
            emissionRateUsd * (oneYearMs / rewardCoin.emissionSchedulesMs);

        const apy = rewardsUsdOneYear / tvlUsd;
```

* 보상 코인의 배출률과 가격을 곱하여 USD로 환산한 배출률을 구합니다.
* 1년치 밀리초를 기준으로 하여 1년 동안의 보상(USD)을 계산합니다.
* APY는 1년 동안의 보상(USD)을 TVL(USD)로 나누어 계산합니다.

그런 다음 각 사용자 포지션에 의해 벌어들인 보상은 볼트의 총 배출량을 볼트에 스테이크된 LP 토큰의 총 수에 대한 각 포지션의 상대적 크기로 나눔으로써 계산됩니다. 잠금 배수가 적용된 모든 포지션은 누적된 보상에서 비례적인 증가를 받게 됩니다.

일반적으로 각 포지션의 APR 계산은 다음과 같습니다:

```typescript
dayjs.extend(duration);
const oneYearMs = dayjs.duration(1, "year").asMilliseconds();
const timeSinceLastHarvestMs =
  dayjs().valueOf() - this.trueLastHarvestRewardsTimestamp;

const rewardsUsdOneYear =
  timeSinceLastHarvestMs > 0
    ? rewardsUsd * (oneYearMs / timeSinceLastHarvestMs)
    : 0;

const apr = stakeUsd > 0 ? rewardsUsdOneYear / stakeUsd : 0;
return apr < 0 ? 0 : apr;
```

* 마지막 수확 이후 시간을 계산합니다.
* 1년 동안의 보상(USD)을 계산합니다.
* APR은 스테이크 USD가 0보다 클 경우 1년 동안의 보상(USD)을 스테이크 USD로 나눈 값입니다.

우리의 프론트엔드는 언제나 그 순간에 누적된 정확한 보상을 표시합니다. 그러나 보상이 실현될 때까지 이는 누적된 보상에 대한 추정치로 간주해야 합니다. 이는 보상을 더 자주 청구할수록 프론트엔드에 표시된 것과 실제 청구된 보상이 더 정확하게 일치함을 의미합니다.

우리의 볼트는 Sui에 내재된 소유권 의미를 활용합니다. afSUI/SUI LP와 같은 자산을 우리의 볼트 중 하나에 스테이크할 때, 여러분은 스테이크한 코인을 래핑하는 포지션을 생성합니다. 이 포지션의 소유자로서, 여러분만이 그것과 상호 작용하는 트랜잭션을 호출할 수 있습니다. 이 모든 것은 볼트가 여러분이 스테이크한 자금과 아무런 상호 작용을 할 수 없기 때문입니다.

### 잠금을 왜 할 수 없나요?

우리의 볼트는 보상이 각 에폭마다 완전히 분배되므로, 사용자가 현재 에폭의 끝을 넘어서 자신의 포지션을 잠글 수 없도록 설계되었습니다. 포지션을 잠글 수 없다면, 현재 에폭이 곧 끝날 것임을 의미합니다. 현재 이는 매 2주마다 일요일에 발생합니다. Aftermath는 트위터에서 새 에폭이 언제 시작되는지, 얼마나 지속될지, 그리고 어떤 인센티브가 분배될지 항상 발표합니다. 잠글 수 없다면, 우리의 트위터 피드를 확인하고 발표가 게시된 후 다시 시도하세요.

### 보상을 자동으로 복합하거나 자동으로 재잠금할 수 있나요?

Sui에서 이러한 기능은 가능하지만, 우리는 사용자가 자신의 포지션을 통제하길 원한다는 주된 이유로 이 기능을 제공하지 않기로 결정했습니다. 현재 상황에서, 여러분은 여러분의 스테이크된 포지션을 소유하고 있으며, Sui의 소유권 의미론으로 인해 여러분만이 이 객체에 영향을 미치는 트랜잭션에 서명할 수 있습니다. 이는 우리가 여러분의 스테이크된 포지션과 직접 상호 작용할 수 없기 때문에 스테이크를 추가하거나(자동 복합) 여러분의 잠금 기간을 변경할 수 없다는 것을 의미합니다(자동 잠금).

이러한 기능은 구축될 수 있지만, Sui가 본래 가능하게 하는 소유권 특성을 제거합니다. 이 기능에 대한 수요가 있다면 분명히 고려할 가치가 있지만, 우리는 사용자가 이러한 기능을 선택함으로써 포기하게 될 소유권 권리를 이해하도록 하고 싶습니다.

### 농장 배출은 얼마나 지속되나요?

현재 배출은 2주 에폭으로 운영되며, 하나가 끝나고 다음 에폭은 일요일에 시작됩니다.

### Afterburner 볼트에 새로운 보상이 추가되었을 때 어떻게 알 수 있나요?

Aftermath는 항상 트위터에서 새 에폭이 언제 시작되는지, 얼마나 지속될지, 그리고 어떤 인센티브가 분배될지 발표합니다.

### 스테이크, 스테이크 해제, 보상 청구는 어떻게 하나요?

[농장에 스테이크하기](https://docs.aftermath.finance/farms/staking-into-a-farm), [보상 청구하기](https://docs.aftermath.finance/farms/claiming-rewards), [스테이크 해제하기](https://docs.aftermath.finance/farms/unstaking) 등 각 작업을 수행하는 방법에 대한 지침은 문서의 해당 섹션을 참조하세요.

### 모든 농장 포지션을 어떻게 추적하나요?

포트폴리오를 통해 모든 농장 포지션을 어떻게 모니터링할 수 있는지 보려면 문서의 '[포트폴리오 보기: 농장](https://docs.aftermath.finance/getting-started/viewing-your-portfolio#farms)' 섹션을 참조하세요.


# afSUI

afSUI를 통해 DeFI에서 스테이킹된 SUI 토큰 활용

Sui 네트워크에서 SUI 토큰을 스테이킹하는 것은 다른 위임증명 스테이크(Delegated Proof of Stake) 네트워크와 비교했을 때 새로운 접근법입니다. Sui에서 스테이킹할 때는 원하는 검증자에게 위임할 수 있으며, 여러분의 SUI 토큰은 스마트 계약이 아닌 여러분의 지갑에 잠겨 있게 됩니다.

SUI 토큰을 보유하고 있지만, 스테이킹되어 있는 동안에는 다른 목적으로 사용할 수 없습니다. 스테이킹된 SUI 토큰을 DeFi에서 활용하면서 동시에 수익을 얻을 수 있도록 하기 위해, Aftermath는 afSUI를 개발했습니다.

처음에는 Sui에서 완전히 분산된 유동 스테이킹 파생 상품을 구축하는 것이 불가능했습니다. 타협이나 중앙 집중식 구성 요소 없이 LSD(유동 스테이킹 파생 상품)를 구축하기 위해, Aftermath는 커뮤니티에 의해 채택된 Sui 프레임워크 업데이트인 [SIP-6](https://github.com/sui-foundation/sips/blob/main/sips/sip-6.md)을 작성했습니다.

우리는 가능한 한 분산화의 핵심 원칙을 유지하기 위해 노력하므로, Aftermath와 함께 SUI를 스테이킹할 때 사용자는 여전히 원하는 검증자에게 토큰을 위임할 수 있습니다. Aftermath는 위임할 검증자를 선택하기 위해 알고리즘에 의존하지 않으며, 우리 자신의 검증자에게 위임하지도 않습니다. afSUI에 의해 벌어들인 수익은 모든 검증자에 걸쳐 afSUI로 스테이킹된 모든 SUI 토큰의 기능으로, 모든 afSUI 토큰이 대체 가능하게 보장합니다.

Sui 네트워크는 24시간의 에폭으로 운영됩니다. 사용자가 SUI 토큰을 afSUI로 스테이킹하면, 그 에폭에 대한 현재 SUI 대비 afSUI의 환율로 afSUI를 받게 됩니다. 각 에폭이 지남에 따라, 스테이킹 보상이 복리로 계산되면서 SUI 대비 afSUI의 환율이 증가합니다. 이는 스테이킹 해제 시 사용자가 처음 스테이킹한 SUI 원금과 스테이킹 기간 동안 벌어들인 보상을 받게 함을 보장합니다. 사용자가 스테이킹 해제 외에 다른 조치를 취할 필요는 없습니다.

Aftermath는 afSUI를 SUI 토큰 자체만큼이나 대체 가능하고 조립 가능하게 설계했으며, 동시에 스테이킹 보상에서 수익을 얻습니다. 이는 afSUI를 담보로 사용하거나 유동성 풀에 예치하고, 다른 토큰과 교환하며, 다른 블록체인으로 브리징할 수 있음을 의미합니다.


# 자습서

Step by step instructions on how to:

#### [Stake](/liquid-staking/undefined/undefined) SUI for afSUi

#### [Unstake](/liquid-staking/undefined/undefined-1) afSUI and redeem for SUI


# 스테이킹

SUI 토큰을 스테이킹하고 afSUI를 발행하기 위해, 먼저 우리의 [스테이킹 페이지](https://aftermath.finance/stake)로 이동하세요. 지갑에 SUI 토큰이 있어야 합니다. 만약 여러분의 SUI 토큰이 이미 지갑을 통해 네이티브하게 스테이킹되어 있다면, 먼저 스테이킹을 해제할 필요가 없습니다. 단순히 그것들을 이전할 수 있으며, 그 과정은 아래에 자세히 설명되어 있습니다.

<figure><img src="/files/q3koRJlCEjp1UClKn1m5" alt="" width="563"><figcaption></figcaption></figure>

페이지 상단에서는 TVL, APY, 에폭 진행 상황 등의 지표를 볼 수 있습니다. TVL은 현재 afSUI를 위해 유동 스테이킹된 SUI 토큰의 총량입니다. APY는 afSUI가 제공하는 연간 퍼센트 수익률입니다. 에폭 진행 상황은 Sui 네트워크가 다음 에폭으로 진행될 때까지 남은 시간을 나타냅니다. 이는 스테이킹과 스테이킹 해제 작업이 에폭 진행 시 수행되기 때문에 관련이 있습니다. afSUI는 스테이킹 시 즉시 사용자의 지갑에 발행되며, 에폭 진행 시 또는 즉시 SUI로 afSUI를 교환할 수 있는 여러 방법이 있습니다.

지표와 스테이크 및 스테이크 해제 버튼 아래에는 검증자 선택 드롭다운 메뉴가 있습니다. 여기에서 활성 세트의 모든 검증자를 탐색하고, SUI 토큰을 위임하고 싶은 검증자를 선택할 수 있습니다. 스테이킹 작업당 하나의 검증자만 선택할 수 있지만, 여러 번의 스테이킹 작업을 수행하여 여러 검증자에 걸쳐 SUI 토큰의 총량을 분할할 수 있습니다. 검증자를 선택하는 방법에 대한 자세한 정보는 여기 또는 스테이크 버튼 아래 스테이킹 페이지의 FAQ 섹션에서 확인할 수 있습니다.

<figure><img src="/files/cYBufeXCmMhi4fcJnv4S" alt="" width="375"><figcaption></figcaption></figure>

검증자 선택 드롭다운에서는 스테이킹 APY와 스테이크 수수료를 포함한 지표를 볼 수 있습니다. 스테이킹 APY는 해당 검증자의 과거 성능을 바탕으로 계산된 추정 연간 퍼센트 수익률입니다. 모든 afSUI는 동일한 APY를 얻지만, 사용자가 더 성능이 좋은 검증자를 개별적으로 선택하면 afSUI 전체의 APY가 증가합니다. 스테이크 수수료는 검증자가 선택할 수 있는 선택적 수수료이며, 기본값은 0입니다. 검증자 스테이크 수수료가 부과되는 경우, 그 수수료는 스테이킹 시 스테이크된 SUI 토큰의 원금에서 차감됩니다. 예를 들어, 검증자가 1%의 수수료를 설정하고 사용자가 1 SUI를 스테이킹하는 경우, 검증자는 스테이킹 시 0.01 SUI를 받고 0.99 SUI가 스테이크됩니다.

검증자를 선택한 후, afSUI로 스테이크하고자 하는 SUI 토큰의 양을 입력하고 스테이크를 클릭하세요. afSUI는 즉시 여러분의 지갑에 발행됩니다. 여러분이 새로 개설한 유동 스테이킹 포지션과 이전에 개설한 모든 포지션은 스테이크 메뉴 아래의 Liquid Stakes 탭에 표시됩니다.

<figure><img src="/files/NBq8cYlTVnvgEtgKG8Qg" alt=""><figcaption></figcaption></figure>

이미 스테이킹된 SUI 토큰이 있다면, 페이지 하단으로 이동하여 Native Stakes 탭을 클릭하세요.

<figure><img src="/files/LtCG9JobshpX1I8MlwGC" alt=""><figcaption></figcaption></figure>

여기에서 현재 개설된 모든 활성 스테이킹 포지션을 볼 수 있습니다. Restake for afSUI를 클릭하면 네이티브 스테이킹 포지션을 즉시 유동 스테이킹 포지션으로 이전하고 즉시 afSUI를 받을 수 있습니다.

그게 다입니다! 오늘 afSUI를 발행하여 스테이킹 보상을 자동으로 얻으면서 다양한 DeFi 통합을 통해 afSUI를 사용해 보세요!


# 스테이킹 해제하기

afSUI를 SUI로 교환하는 것은 간단하지만, 사용자의 필요와 선호에 따라 여러 방법으로 이를 달성할 수 있습니다. 먼저, 스테이크 해제 탭으로 이동하여 옵션을 확인하세요.

<figure><img src="/files/o9VE5DWNa7m9IoIpCcMR" alt=""><figcaption></figcaption></figure>

여기에서는 즉시 스테이크 해제와 X시간 후 스테이크 해제 두 가지 옵션을 볼 수 있습니다. 여기서 X는 Sui 네트워크의 현재 에폭이 끝날 때까지 남은 시간입니다.

Sui에서는 에폭이 진행될 때마다 스테이킹 및 스테이킹 해제 작업이 이루어지며, 이는 매 24시간마다 발생합니다. 이는 표준 스테이킹 해제 절차를 수행할 경우 사용자가 에폭이 진행될 때까지 기다려야 자신의 지갑에서 SUI 토큰을 받을 수 있음을 의미합니다. 일부 사용자는 이렇게 오래 기다리고 싶지 않을 수 있습니다.

더 많은 유연성을 제공하기 위해, Aftermath는 소량의 수수료가 부과되는 즉시 스테이크 해제를 수행하기 위해 인출할 수 있는 SUI 토큰의 예비량을 유지합니다. 수수료는 사용자가 교환하고자 하는 afSUI의 양과 예비량에 남아 있는 SUI 토큰의 양에 따라 달라집니다. 매 에폭마다 예비량은 보충됩니다.

각 스테이크 해제 유형의 수수료가 표시되어 사용자가 에폭이 진행될 때까지 기다릴지 아니면 즉시 SUI 토큰을 받고 싶은지 결정할 수 있습니다. 어떤 스테이크 해제 방법을 사용할지 결정한 후, 교환하고자 하는 afSUI의 양을 입력하고 스테이크 해제를 클릭하세요.

afSUI를 SUI로 교환하는 세 번째 방법은 스마트-오더 라우터를 사용하여 스왑을 수행하는 것입니다. Aftermath와 여러 탈중앙화 거래소는 이러한 거래를 가능하게 하는 afSUI-SUI 유동성 풀을 유지합니다. 풀의 재고와 Aftermath 즉시 스테이크 해제 예비량에 따라, 이 방법을 사용하는 것이 더 바람직할 수 있습니다. 거래 페이지로 이동하여 교환될 자산으로 afSUI를 선택하고 받을 자산으로 SUI를 선택하여 현재 환율을 확인하세요.

<figure><img src="/files/Hdn9bPv1e3iTi2wBzlJ9" alt=""><figcaption></figcaption></figure>


# Architecture

xAftermath Liquid Staking 프로토콜의 기능은 완전히 Sui Staking Framework에 의존합니다. 상위 수준에서 볼 때, 이 프로토콜은 Sui Framework에 의해 제공된 비대체 스테이킹 엔티티(StakedSui)를 보유하고 유동적인 afSUI 토큰을 발행하는 프록시로 간주될 수 있습니다. 핵심 기능은 AftermathLSD 패키지에서 구현됩니다.


# Packages & Modules

## AftermathLSD 패키지

<figure><img src="/files/PTUTlpjInXdY22vf3955" alt=""><figcaption><p>AftermathLSD package diagram</p></figcaption></figure>

이 패키지의 기능은 여러 모듈 간에 분배됩니다. 주요 모듈은 아래에 설명되어 있습니다:

## staked\_sui\_vault 모듈

이 모듈은 프로토콜과 상호 작용할 수 있는 인터페이스 역할을 합니다. 프로토콜 사용자를 위한 주요 진입점을 제공합니다. 사용자는 다음 기능을 사용할 수 있습니다:

1. 스테이크 요청: 사용자는 SUI 코인을 프로토콜에 제공하고, 현재 에폭의 SUI <-> AFSUI 환율에 따라 해당하는 양의 AFSUI를 즉시 받습니다.
2. 스테이크 해제 요청: 사용자는 AFSUI를 제공하고 해당하는 양의 SUI를 받습니다. 두 가지 가능성이 있습니다. 정규 스테이킹 해제는 사용자가 다음 에폭 시작 시 SUI를 받습니다. 즉시 스테이킹 해제는 사용자가 즉시 SUI를 받습니다. StakedSui 객체를 재스테이킹하는 것도 가능합니다.
3. 에폭 변경 처리: Sui 스테이킹 프레임워크 워크플로우는 에폭 변경 처리와 밀접하게 연결되어 있습니다. Sui 프레임워크가 매 두 에폭 사이에 수행하는 몇 가지 활동이 있습니다. 가장 중요한 것은 보상 수집과 스테이크 활성화입니다. 이를 프로토콜에 반영하기 위해 크랭크 기능이 트리거되어야 합니다. Sui 프레임워크의 제한으로 인해, 이 기능은 여러 번 트리거될 가능성이 큽니다. 에폭 변경이 처리되기 전에 프로토콜은 미정의 상태로 간주되며 작동하지 않습니다. 크랭크 기능을 트리거하면 인센티브 지급을 받습니다. 에폭 변경 처리를 원활하게 하기 위해, Aftermath는 Sui 체인 상태를 모니터링하고 적시에 에폭 처리를 시작하는 봇을 운영했습니다.
4. 검증자 수수료 업데이트: 프로토콜이 특정 검증자를 인지하고 있는 경우, 그 검증자는 검증자 수수료를 변경할 수 있는 운영 능력 객체(Operation Capability Object)를 받습니다. 검증자 수수료는 각각 발행된 AFSUI에서 취해지며, 직접 검증자 주소로 보내집니다.

<figure><img src="/files/H1UfvQ3fyf5BjLwoFTvH" alt=""><figcaption><p>Aftermath LSD Protocol stake_sui_vault module diagram</p></figcaption></figure>

## actions 모듈

이 모듈은 staked\_sui\_vault 모듈 설명에서 이전에 논의된 프로토콜의 비즈니스 로직을 구현합니다.&#x20;

## staked\_sui\_vault\_state 모듈

이 모듈은 staked sui vault의 실제 구현을 제공합니다. AFSUI를 발행하고 소각할 권한이 있으며, 프로토콜 구성도 담당합니다. 주요 목적은 모든 StakedSui 객체와 SUI 잔액을 유지하는 것입니다. StakedSuis를 조직화하기 위해 Storage 엔티티가 사용됩니다.

## storage 모듈

storage는 StakedSui 객체를 유지하고 스테이킹 해제 로직을 구현하는 추상화입니다. 스테이킹 해제는 LSD 프로토콜의 핵심 부분이며, 어떤 의미에서는 프로토콜 성능을 정의합니다. 이를 제공하기 위해 storage에는 성능 순으로 정렬된 스테이킹 해제 큐가 있어, 비활성 및 저성능 검증자로부터의 스테이크가 우선적으로 스테이킹 해제됩니다. 즉시 검증자를 고갈시키지 않기 위해, 각 스테이킹 해제는 여러 검증자 간에 분배됩니다.

## validator 모듈

이 모듈은 Operation Capability Object 로직을 구현합니다. 이 객체는 특정 검증자에 대한 검증자 수수료 값을 변경할 수 있습니다.

Aftermath LSD 프로토콜은 여러 추가 패키지를 사용합니다.

## 안전 패키지

이 패키지는 Safe라는 모듈을 제공합니다. 이 엔티티는 어떤 타입의 객체도 저장할 수 있으며, 해당 객체에 대한 변경 가능한 참조를 인증된 모듈에게만 제공합니다. 오직 하나의 모듈만이 인증될 수 있습니다. LSD 프로토콜은 이 엔티티를 사용하여 AFSUI Treasury를 저장하고 스테이크된 sui 볼트 상태 모듈로부터 인증된 접근을 제공합니다. &#x20;

## 추천 볼트 패키지

Aftermath LSD 프로토콜 사용자는 추천 시스템을 이용할 수 있습니다. 이 모듈은 추천인 - 피추천인 관계를 관리하고 로열티를 수집하는 로직을 제공합니다.

## 재무 패키지

프로토콜은 여러 유형의 수수료를 수집합니다. Treasury 엔티티는 수수료의 특정 부분을 수집하고 나중에 다양한 목적으로 사용할 수 있게 합니다.&#x20;

## 유틸리티 패키지

Aftermath는 고성능 수학 프리미티브와 함수의 컬렉션입니다.

## 연결 세트 패키지

LinkedSet은 Sui 프레임워크의 LinkedTable 구현을 기반으로 합니다. 이 엔티티는 언스테이킹 큐를 구현하는 데 사용됩니다.

## SuiSystemUtils 패키지

Sui 시스템과의 상호작용을 위한 메소드 컬렉션입니다.


# 진입점

프로토콜은 다음과 같은 진입점을 제공합니다:

## AFSUI 게터들

**public fun afsui\_to\_sui\_exchange\_rate()**: 현재 에포크에 대한 AFSUI<->SUI 환율을 반환합니다.

**public fun afsui\_to\_sui()**: 주어진 AFSUI 양에 해당하는 SUI 양을 반환합니다.

**public fun sui\_to\_afsui\_exchange\_rate()**: 현재 에포크에 대한 SUI<->AFSUI 환율을 반환합니다.

**public fun sui\_to\_afsui():** 주어진 SUI 양에 해당하는 AFSUI 양을 반환합니다.

**public fun total\_sui\_amount()**: 프로토콜에 잠긴 총 SUI 양(모든 원금 + 보상)을 반환합니다.

## 총량 게터들

**public fun total\_rewards\_amount()**: 수집된 총 보상 양을 반환합니다.&#x20;

**public fun epoch\_was\_changed()**: 에포크 변경 처리를 시작합니다. 연속해서 여러 번 호출될 수 있습니다.

## 스테이킹

**public fun request\_stake()**: 지정된 검증자에게 SUI 코인을 위임하고 즉시 동등한 양의 AFSUI를 반환합니다. 검증자가 활성 상태여야 합니다.&#x20;

**entry fun request\_stake\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다.

**public fun request\_stake\_vec()**: SUI 코인의 벡터를 가져와서 합치고, 지정된 검증자에게 스테이크하고 즉시 동등한 양의 AFSUI를 반환합니다. 검증자가 활성 상태여야 합니다.

**entry fun request\_stake\_vec\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다

**public fun request\_stake\_staked\_sui()**: 제공된 StakedSui 객체를 재스테이크하고, 해당하는 양의 AFSUI를 민트하고 반환합니다.

**public fun request\_stake\_staked\_sui\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다.

**public fun request\_stake\_staked\_sui\_vec()**: StakedSui 객체의 벡터를 가져와서 재스테이크하고, 해당하는 양의 AFSUI를 민트하고 반환합니다.

**public fun request\_stake\_staked\_sui\_vec\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다.

## 일반 언스테이킹

**public fun request\_unstake()**: AFSUI를 입력으로 받아, 다음 에포크 시작 시 해당하는 양의 SUI를 민트할 요청을 등록합니다.

**public fun request\_unstake\_vec()**: AFSUI 코인의 벡터를 입력으로 받아, 합치고, 다음 에포크 시작 시 해당하는 양의 SUI를 민트할 요청을 등록합니다.

## 원자 언스테이킹

**public fun request\_unstake\_atomic()**: AFSUI 코인을 입력으로 받고 즉시 해당하는 양의 SUI를 반환합니다&#x20;

**entry fun request\_unstake\_atomic\_and\_keep()**: 거래 발신자 계정으로 직접 SUI를 전송하는 유지 버전입니다.

**public fun request\_unstake\_vec\_atomic()**: AFSUI 코인의 벡터를 입력으로 받아, 하나로 합치고 즉시 해당하는 양의 SUI를 반환합니다

**public fun request\_unstake\_vec\_atomic\_and\_keep()**: 거래 발신자 계정으로 직접 SUI를 전송하는 유지 버전입니다.

## 검증자 수수료

**public fun rotate\_operation\_cap()**: 새로운 작업 능력 객체를 생성하고 등록합니다.

**public fun update\_validator\_fee()**: 해당 검증자 수수료를 변경합니다.


# 수수료

## 지연된 언스테이킹 프로토콜 수수료

획득한 스테이킹 보상의 5%에 해당하는 수수료가 일반 언스테이킹 프로세스 중에 부과됩니다. 수수료는 귀하의 포지션이 획득한 총 스테이킹 보상에 적용되며 다음과 같이 계산할 수 있습니다.

Fee = amount\_staked \* staking\_APY \* duration\_staked \* 5%

본보기:

3개월 동안 100 SUI를 스테이킹하고 스테이킹 APY가 3.5%인 경우 획득하는 총 스테이킹 보상은 다음과 같습니다:

staking\_rewards = 100 (SUI) \* 0.035 (APY) \* 0.25 (Years)  =  0.875 SUI&#x20;

수수료는 이 금액의 5%입니다. (staking\_rewards \* 0.05):

Fee = 0.875 (SUI) \* 0.05 = 0.043 SUI

수수료는 스테이킹되는 SUI의 총 금액에 대한 백분율로 표현할 수도 있습니다:

Fee/(amount\_staked + staking\_rewards) \* 100

Percent\_of\_total\_unstaked = 0.043 / (100 + 0.875)  \* 100 = 0.043%

## 아토믹 언스테이크 프로토콜 수수료

이 수수료는 Unstake Instantly를 선택한 경우에만 적용됩니다. 아토믹 프로토콜 수수료는 스테이킹되는 SUI의 총량에 적용됩니다. 수수료 가치는 프로토콜이 아토믹 언스테이킹을 위해 할당하는 SUI 준비금에서 사용할 수 있는 유동성에 따라 달라지며 다음과 같이 계산됩니다.

max\_fee - (max\_fee - min\_fee) \* reserves\_value / reserves\_target\_value

여기서 reserves\_value는 현재 언스테이킹 후 원자 언스테이킹을 위해 프로토콜에 할당된 SUI의 양이며, 다른 매개변수는 상수입니다:

max\_fee = 1%

min\_fee = 0.1%

reserves\_target\_value = 10000 SUI

## 검증자 수수료 (선택적)

각 검증자는 각 스테이크에 적용되는 자신의 수수료를 설정할 수 있습니다. AFSUI가 발행되면, 이 금액의 지정된 부분이 스테이크가 이루어진 검증자에게 전송됩니다. 기본적으로 이 수수료는 0과 같습니다. 각 검증자는 다음 범위 내에서 이 값을 변경할 수 있습니다: \[0, 0.1%]

검증인이 수수료를 설정한 경우, 스테이킹 페이지의 검증인 선택 드롭다운 메뉴에 표시됩니다:

<figure><img src="/files/N4TTxdWnstnsCUmTks4v" alt="" width="375"><figcaption><p>Validator Fee in Select Validator dropdown menu</p></figcaption></figure>


# FAQs

## 누구와 스테이킹할 수 있나요?

Aftermath를 통한 스테이킹은 완전히 허가가 필요 없습니다.

[Sui 네트워크의 활성 검증자](https://explorer.sui.io/validators)와 스테이킹할 수 있으며, 해당 검증자에게 더 많은 투표 권한을 제공할 수 있습니다.

Aftermath는 특정 검증자를 다른 검증자보다 우대하지 않고, 사용자가 스스로 결정할 수 있도록 분산화를 염두에 두고 이러한 설계 결정을 했습니다.

## 어떻게 검증자를 선택하나요?

검증자를 선택할 때 고려해야 할 여러 요소가 있습니다. 가장 중요한 것은 각 검증자가 자신의 수수료율과 제안된 가스 가격을 설정할 수 있다는 것입니다.

수수료율은 검증자가 서비스에 대한 대가로 유지하는 총 보상의 퍼센트이며, 수수료율이 낮을수록 위임자에게 더 많은 보상이 돌아갑니다.

제안된 다음 에포크 가스 가격은 SUI 네트워크에서의 거래 비용을 결정하며, 검증자들이 각 에포크마다 함께 투표로 결정합니다.

마지막으로, 검증자가 활성 상태이며 강력한 성능 기록을 가지고 있는지 확인하고 싶습니다. afSUI를 통해 Aftermath를 통해 스테이킹된 모든 SUI의 누적 보상은 모든 검증자를 통한 것입니다.

## 스테이킹 보상은 어떻게 받나요?

afSUI는 가치가 증가하는데, 이는 기본 스테이킹 보상이 각 에포크마다 자동으로 복리로 증가함에 따라 SUI 대비 afSUI의 가격이 상승한다는 것을 의미합니다.

afSUI를 언스테이킹할 때 처음 스테이크한 SUI 양과 스테이킹 기간 동안 얻은 모든 보상을 받게 됩니다.

## afSUI는 언제 받나요?

SUI 토큰을 위임하는 즉시 afSUI를 받게 됩니다.

## 언제 언스테이킹할 수 있나요?

즉시 또는 지연된 두 가지 방법으로 afSUI를 언스테이킹할 수 있습니다.

즉시 언스테이킹을 통해 언본딩 기간을 겪지 않고 즉시 afSUI를 SUI로 언스테이킹할 수 있지만, 즉시 언스테이킹 잔고에 있는 SUI 양에 비례하여 0.1% - 5%의 가변 수수료가 부과됩니다.

지연된 언스테이킹은 언본딩 기간이 지난 후에 afSUI가 SUI로 언스테이킹됨을 의미합니다; 현재 언본딩 기간은 한 에포크(24시간)입니다. 현재 에포크에서 남은 시간은 언스테이크 메뉴에 표시됩니다.

afSUI 상환에 영향을 미치는 SUI 스테이킹 메커니즘의 변경 사항은 즉시 통보됩니다.

## afSUI를 어디에서 사용할 수 있나요?

Aftermath는 afSUI를 SUI 토큰 자체만큼이나 대체 가능하고 조합 가능하게 설계했으며, 동시에 스테이킹 보상을 적립합니다.

이는 afSUI를 다른 토큰과 교환하거나 유동성 풀에 예치하고, 담보로 사용하며, 다른 블록체인으로 브리징할 수 있음을 의미합니다.

afSUI는 Sui의 Aftermath 파트너 프로토콜들에 통합되어 있습니다. 스테이크 페이지 하단의 "afSUI를 어디에서 사용할 수 있나요?" 제목 아래에서 이러한 사용 방법의 목록을 찾을 수 있습니다.

<figure><img src="/files/Uo7lufwiwT35jtwKpGrk" alt=""><figcaption></figcaption></figure>

## afSUI는 언제 받나요?

Aftermath에서 액체 스테이킹을 할 때 즉시 지갑에 afSUI를 받게 됩니다.&#x20;


# Contracts

{% tabs %}
{% tab title="Mainnet" %}

<table><thead><tr><th width="215.33333333333334">Contract</th><th width="112">Type</th><th>Address</th></tr></thead><tbody><tr><td>events</td><td>package</td><td>0x7f6ce7ade63857c4fd16ef7783fed2dfc4d7fb7e40615abdb653030b76aef0c6</td></tr><tr><td>lsd</td><td>package</td><td>0x7f6ce7ade63857c4fd16ef7783fed2dfc4d7fb7e40615abdb653030b76aef0c6</td></tr><tr><td>afsui</td><td>package</td><td>0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc</td></tr><tr><td>stakedSuiVault</td><td>object</td><td>0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d</td></tr><tr><td>stakedSuiVaultState</td><td>object</td><td>0x55486449e41d89cfbdb20e005c1c5c1007858ad5b4d5d7c047d2b3b592fe8791</td></tr><tr><td>safe</td><td>object</td><td>0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610</td></tr><tr><td>treasury</td><td>object</td><td>0xd2b95022244757b0ab9f74e2ee2fb2c3bf29dce5590fa6993a85d64bd219d7e8</td></tr><tr><td>referralVault</td><td>object</td><td>0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef</td></tr><tr><td>validatorConfigsTable</td><td>object</td><td>0x8536350cfb8a8efdd133a1e087b55416d431f7e8b894f77b55b20c4b799ebad9</td></tr></tbody></table>
{% endtab %}

{% tab title="Testnet" %}

<table><thead><tr><th width="215.33333333333334">Contract</th><th width="112">Type</th><th>Address</th></tr></thead><tbody><tr><td>events</td><td>package</td><td>0x5e8c0fc2b3d8aa1b06eec36c08d9d835c73c0626a1efaebc0fb03aa52f1a3ff4</td></tr><tr><td>lsd</td><td>package</td><td>0x5e8c0fc2b3d8aa1b06eec36c08d9d835c73c0626a1efaebc0fb03aa52f1a3ff4</td></tr><tr><td>afsui</td><td>package</td><td>eea9881a9e5888842c1780d8e2f4f2c703fd44c18918e8ca64e1bb4b5be95777</td></tr><tr><td>stakedSuiVault</td><td>object</td><td>0xe498a8c07ec62200c519a0092eda233abdab879e8f332c11bdc1819eb7b12fbb</td></tr><tr><td>stakedSuiVaultState</td><td>object</td><td>0x92e9f66557fe37add5181eba2a40e6a5ade2463b07079a23907cb89c430b824a</td></tr><tr><td>safe</td><td>object</td><td>0x38710a6e0bd885c158e52ec7a42c8a9a1826c6696b626b4a5e2d1dcb15cfd9b7</td></tr><tr><td>treasury</td><td>object</td><td>0xf3d41534e43ecf36da8657b48350a09a3e50eeb2ce61f8ceb80e6d2f85828bc0</td></tr><tr><td>referralVault</td><td>object</td><td>0x8d357115058f22976cd01c5415116d9aca806d1ded37eecd75d87978f404e927</td></tr><tr><td>validatorConfigsTable</td><td>object</td><td>0x4e7eeec6dbd9191c9bed001d9fb6f780c4351ae9f354ced7967eeec8af09ad74</td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# About us

Aftermath Validator

Aftermath is one of 95 genesis validators who have been maintaining the network since its inception. We encourage the other validators to perform to their maximum by allowing afSUI stakers to choose any validator they want.&#x20;

You can view the metrics of our validator [here.](https://suiscan.xyz/mainnet/validator/0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2)


# Getting Started

Official Aftermath Finance TypeScript SDK for Sui

## **Install**

```typescript
npm i aftermath-ts-sdk
```

## **Usage**

Create an instance of Aftermath for ease of use to make calls to our server, or create an instance of Aftermath API for finer control of transaction construction.

## Aftermath SDK

### 1. Create Aftermath provider

```javascript
const afSdk = new Aftermath("MAINNET"); // "MAINNET" | "TESTNET" | "DEVNET"
await afSdk.init(); // initialize provider
```

### 2. Create protocol provider

```typescript
const router = afSdk.Router(); 
const pools = afSdk.Pools(); 
const staking = afSdk.Staking(); 
const farms = afSdk.Farms();
```

## Aftermath API

### 1. Create Aftermath API provider

```typescript
const fullnodeEndpoint = "https://fullnode.mainnet.sui.io";
const addresses = {...};

const afApi = new AftermathApi(
    new SuiClient({
        transport: new SuiHTTPTransport({
            url: fullnodeEndpoint,
        }),
    }),
    addresses,
    new IndexerCaller("MAINNET"), // "MAINNET" | "TESTNET" | "DEVNET"
);
```

### 2. Create new protocol provider

```typescript
const poolsApi = afApi.Pools(); 
const stakinApi = afApi.Staking(); 
const farmsApi = afApi.Farms();
```


# Router

Smart-Order Router finds optimal trade route across multiple pools and protocols for a given trade.

```clike
const router = new Aftermath("TESTNET").Router();
```

## **Route a Trade**

### 1. Create trade route

```typescript
const route = await router.getCompleteTradeRouteGivenAmountIn({
	coinInType: "0x...",
	coinOutType: "0x...",
	coinInAmount: 1_000_000_000n,
	
	// optional
	referrer: "0x...",
	externalFee: {
		recipient: "0x...",
		feePercentage: 0.01, // 1% fee from amount out
	},
});

console.log(route);
/*
{
	coinIn: {
		type: "0x1...",
		amount: 1_000_000n,
		tradeFee: 1_00_000_000_000_000_000n, // 0.1% (18 decimals)
	},
	coinOut: {
		type: "0x2...",
		amount: 1_100_000n,
		tradeFee: 0n, // 0% (18 decimals)
	},
	spotPrice: 0.90909090909, // in/out (ignoring fees)
	routes: [...],
	
	// optional
	referrer: "0x...",
	externalFee: {
		recipient: "0x...",
		feePercentage: 0.01, // 1% fee from amount out
	},
}
*/
```

### 2. Get transaction

```typescript
const tx = await router.getTransactionForCompleteTradeRoute({
	walletAddress: "0x...",
	completeRoute: route,
	slippage: 0.01,	// 1% max slippage
});
```


# Liquid Staking

Stake SUI and receive afSUI to earn a reliable yield, and hold the most decentralized staking derivative on Sui.

## afSUI SDK

```typescript
const staking = new Aftermath("TESTNET").Staking();
```

## Transactions

### Staking Positions

```typescript
const stakingPositions = await staking.getStakingPositions({
    walletAddress: "0x..",
});
```

### Stake

```typescript
const tx = await staking.getStakeTransaction({
    walletAddress: "0x..",
    suiStakeAmount: 1_000_000_000n, // 1 Sui
    validatorAddress: "0x..",
});
```

### Unstake

```typescript
const tx = await staking.getUnstakeTransaction({
    walletAddress: "0x..",
    afSuiUnstakeAmount: 1_000_000_000n, // 1 AfSui
    isAtomic: true,
});
```

## Inspections

### Staked SUI TVL

```typescript
const suiTvl = await staking.getSuiTvl();

console.log(suiTvl);
// 9_540_200_000n
```

### afSUI Exchange Rate

```typescript
// (1 SUI = x afSUI)
const afSuiExchangeRate = await staking.getAfSuiExchangeRate();
console.log(afSuiExchangeRate);
// 1.000149000231
```

## afSUI API

```typescript
const testnetStakingAddresses = {
    staking: {
        packages: {
            events:
"0x58e6bdd081ae6035141871a1c7cdf82895e944a8b7673f78d22e370a07cbf99b",
            lsd:
"0x58e6bdd081ae6035141871a1c7cdf82895e944a8b7673f78d22e370a07cbf99b",
            afsui:
"0x5783fa2298e7301a1c7f99ce45d4a207478fbf3003eca9482ae823d6f6c7cd60",
        },
        objects: {
            stakedSuiVault:
"0x690f36f9c5249b0c4c9b3efdf8a2864c750a8021037360e3b7bedc9ceafb277f",
            safe:
"0x091686a693e86929f91ef539d867fae334a33d124bc2c204dcb3b53dd9016501",
            treasury:
"0xf3d41534e43ecf36da8657b48350a09a3e50eeb2ce61f8ceb80e6d2f85828bc0",
            referralVault: 
"0x8d357115058f22976cd01c5415116d9aca806d1ded37eecd75d87978f404e927",
            validatorConfigsTable:
"0xc9b9c0f1115793a24e0551609e51daa5ffe2b11429d12b46fdf8a3b0bfc0e908",
         },
     },
 },
 
 const afApi = new AftermathApi(
     new SuiClient({
         transport: new SuiHTTPTransport({
             url: "https://testnet.mainnet.sui.io",
         }),
     }),
     testnetStakingAddresses,
     new IndexerCaller("TESTNET"),
 );
 
 const stakingApi = afApi.Staking();
```

## Transaction Command Examples

```typescript
const stakingApi = afApi.Staking();

const suiCoin = await afApi.Coin().fetchCoinWithAmountTx({
    walletAddress: "0x...",
    coinType: "0x02::sui::SUI",
    coinAmount: BigInt(1_423_837_387), // ~1.4 SUI
});

const afSuiCoin = stakingApi.stakeTx({
    tx,
    suiCoin,
    validatorAddress: "0x...",
});

stakingApi.atomicUnstakeTx({
    tx,
    afSuiCoin,
    withTransfer: true
});
```


# Pools

AMM pools for both stable and uncorrelated assets of variable weights with up to 8 assets per pool.

```typescript
const pools = new Aftermath("TESTNET").Pools();
```

## Pools

```typescript
// single pool
const pool = await pools.getPool({
	objectId: "0x..",
});

// multiple pools
const somePools = await pools.getPools({
	objectIds: ["0x1..", "0x2.."],
});

// all pools
const allPools = await pools.getAllPools();
```

## **Events**

### Deposit

```typescript
const eventData = await pool.getDepositEvents({
	// optional
	cursor: {
		txDigest: "0x..",
		eventSeq: "0x..",
	},
	limit: 10,
});

console.log(eventData);
/*
{
	events: [
		{
			poolId: "0x..",
			depositor: "0x.."
			types: ["0x1..", "0x2..", "0x3.."],
			deposits: [1_000n, 1_000_000n, 500n],
			lpMinted: 34_000_000n,
		},
		...
	],
	nextCursor: {...},
}
*/
```

### Withdraw

```typescript
const eventData = await pool.getWithdrawEvents({
	// optional
	cursor: {
		txDigest: "0x..",
		eventSeq: "0x..",
	},
	limit: 10,
});

console.log(eventData);
/*
{
	events: [
		{
			poolId: "0x..",
			withdrawer: "0x.."
			types: ["0x1..", "0x2..", "0x3.."],
			withdrawn: [1_000n, 1_000_000n, 500n],
			lpBurned: 34_000_000n,
		},
		...
	],
	nextCursor: {...},
}
*/
```

## **Transactions**

### Deposit

```typescript
const tx = await pool.getDepositTransaction({
	walletAddress: "0x..",
	amountsIn: {
		"0x1..": 1_000_000_000n,
		"0x2..": 50_000_000n,
		"0x3..": 700_000n,
	},
	slippage: 0.01,	// 1% max slippage
	
	// optional
	referrer: "0x..",
});
```

### Withdraw

```typescript
const tx = await pool.getWithdrawTransaction({
	walletAddress: "0x..",
	// Amounts out approximation for coins wanting to withdraw
	amountsOutDirection: {
		"0x1..": 1_000_000_000n,
		"0x3..": 700_000n,
		"0x5..": 5_000_000n,
	},
	lpCoinAmount: 1_000_000_000n, // LP coin amount being sent
	slippage: 0.01,	// 1% max slippage
	
	// optional
	referrer: "0x..",
});
```

## **Calculations**

### Spot Price

```typescript
const spotPrice = pool.getSpotPrice({
	coinInType: "0x1...",
	coinOutType: "0x2...",
	
	// optional
	withFees: true,
});

console.log(spotPrice); // in/out
// 1.22312342123412
```

### Trade Amount Out

```typescript
const amountOut = pool.getTradeAmountOut({
	coinInType: "0x1...",
	coinOutType: "0x2...",
	coinInAmount: 1_000_000n,
	
	// optional
	referral: true, // apply referral discount to calculation
});

console.log(amountOut);
// 1_200_000n
```

### Trade Amount In

```typescript
const amountIn = pool.getTradeAmountIn({
	coinInType: "0x1...",
	coinOutType: "0x2...",
	coinOutAmount: 1_200_000n,
	
	// optional
	referral: true, // apply referral discount to calculation
});

console.log(amountIn);
// 1_000_000n
```

### Deposit LP Amount Out

```typescript
const depositResult = pool.getDepositLpAmountOut({
	amountsIn: {
		"0x1..": 1_000_000_000n,
		"0x2..": 50_000_000n,
		"0x3..": 700_000n,
	},
	
	// optional
	referral: true, // apply referral discount to calculation
});

console.log(depositResult);
/*
{
	lpAmountOut: 6_500_000_000n, // 6.5 (9 decimals)
	lpRatio: 1.01342132, // LP ratio after deposit
}
*/
```

### Withdraw Amounts Out

```typescript
const amountsOut = pool.getWithdrawAmountsOut({
	lpRatio: 0.98988789, // LP ratio after withdraw
	// Amounts out approximation for coins wanting to withdraw
	amountsOutDirection: {
		"0x1..": 1_000_000_000n,
		"0x3..": 700_000n,
		"0x5..": 5_000_000n,
	},
	
	// optional
	referral: true, // apply referral discount to calculation
});

console.log(amountsOut);
/*
{
	"0x1..": 1_130_000_000n,
	"0x3..": 710_000n,
	"0x5..": 5_400_000n,
}
*/
```


# About Egg

<figure><img src="/files/5tW25fEpcaaTi0Lk4lXj" alt=""><figcaption></figcaption></figure>

## [~~Mint Egg~~](https://aftermath.finance/mint)

sold out!

## [Trade Egg](https://www.tradeport.xyz/sui/collection/egg)


