Skip to content

Commit d9cd71a

Browse files
fix(docs): fixes problems in guides (#872)
2 parents 0081b9d + 738b2e5 commit d9cd71a

File tree

10 files changed

+94
-290
lines changed

10 files changed

+94
-290
lines changed

docs/fassets/1-overview.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Agents manage the infrastructure and operations of the FAssets system, including
6060
- Providing collateral for minting and redemption.
6161
- Redeeming underlying assets for users.
6262

63-
Each agent is verified through governance and uses the following addresses:
63+
Each agent is verified through governance and uses the following addresses on the native chain:
6464

6565
- **Work Address:** A hot wallet for executing operations.
6666
- **Management Address:** A cold wallet for secure administrative actions.

docs/fassets/2-minting.mdx

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ The choice is based on the minting fee or the amount of free collateral, which m
3030
The minter sends to the Asset Manager contract a collateral reservation transaction (CRT). The CRT includes:
3131

3232
- The address of the chosen agent.
33-
- The amount to mint, which must be a whole number of [lots](/fassets/minting#lots).
33+
- The amount to mint, which must be a positive integer of [lots](/fassets/minting#lots).
3434
- The [collateral reservation fee (CRF)](#fees) to compensate for the locked collateral.
3535
- The executor's address, if the minter is not the executor.
3636
- The executor's fee, if the minter is not the executor.
@@ -51,7 +51,8 @@ The collateral reservation response is an event issued by the contract, which in
5151

5252
### 2. Underlying Payment
5353

54-
After this event is emitted, the minter must pay the full underlying amount plus the fee to the agent on the underlying chain in a certain amount of time.
54+
After this event is emitted, the minter must pay the full underlying amount plus the fee to the agent on the underlying chain.
55+
This payment must be completed within a specified time limit.
5556

5657
### 3. Payment Proof
5758

@@ -148,11 +149,11 @@ The [agent's registration process](/fassets/overview#agents) verifies that the a
148149
The following example shows proof of nonpayment.
149150

150151
<details>
151-
<summary>Proof of nonpayment example.</summary>
152+
<summary>Referenced payment nonexistence attestation type example.</summary>
152153

153154
The following example shows how the nonpayment proof works.
154155

155-
The Data Connector's [payment nonexistence attestation type](https://gitlab.com/flarenetwork/state-connector-protocol/-/blob/main/specs/attestations/active-types/ReferencedPaymentNonexistence.md?ref_type=heads) proves nonpayment.
156+
The Flare Data Connector's [referenced payment nonexistence attestation type](/fdc/attestation-types/referenced-payment-nonexistence) proves nonpayment.
156157

157158
1. The minter sends a request to mint FBTC.
158159
At the time the request is received, the last mined block on the Bitcoin chain is number 92, with timestamp 09:00 AM.
@@ -172,7 +173,7 @@ The Data Connector's [payment nonexistence attestation type](https://gitlab.com/
172173
5. The agent sends a nonpayment attestation request, which includes the payment reference, the underlying amount that was expected, the last block (100), and the last timestamp (11:00).
173174
6. Attestation providers attest to the following facts:
174175
- Block 102 is finalized and has both the number and timestamp larger than required.
175-
- Until this block, the required payment either was not made or was not sufficient.
176+
- Before this block, the required payment either was not made or was not sufficient.
176177

177178
Now, the mint-payment failure and the nonpayment proof can be submitted to the FAssets system.
178179

@@ -188,14 +189,14 @@ FAssets are still transferred to the minter's account, and the agent's collatera
188189

189190
### Expired proof
190191

191-
Proofs provided by the Data Connector are available for only 24 hours, approximately.
192+
Proofs provided by the Flare Data Connector are available for only 24 hours, approximately.
192193
If neither the minter nor the agent presents the proof of payment or nonpayment within 24 hours, the regular minting process cannot continue, and the agent's collateral could be locked indefinitely.
193194

194195
In this case, the agent can still recover the collateral by buying it back with native tokens.
195196
The recovery is accomplished with the following procedure:
196197

197198
1. Request the proof from the time when the deposit should have happened.
198-
The Data Connector's answer will indicate that payments proofs are no longer available for that time.
199+
The Flare Data Connector's answer will indicate that payments proofs are no longer available for that time.
199200
2. Provide the amount of FLR collateral equivalent to the price of the underlying assets that should have been deposited.
200201
3. Present the proof.
201202

@@ -214,7 +215,7 @@ The maximum duration of the process is the sum of:
214215
- A system-defined maximum time for deposit.
215216
It is either a few blocks on the underlying chain or a few minutes, whichever is longer.
216217
- The underlying chain's finalization time.
217-
- The Data Connector proof time, which is approximately 3 - 5 minutes, independent of the underlying chain.
218+
- The Flare Data Connector proof time, which is approximately 3 - 5 minutes, independent of the underlying chain.
218219

219220
On fast chains like XRPL, the maximum total time is less than 10 minutes, while on Bitcoin it is approximately 1.5 hours.
220221
For payment failures, the agent needs to wait the maximum time, as defined above, before the nonpayment proof can be retrieved.
@@ -243,11 +244,11 @@ The following example shows how the redemption queue works.
243244
<details>
244245
<summary>Redemption queue example.</summary>
245246

246-
1. Bob mints 10 FXRP with Agent 1.
247-
2. Alice mints 20 FXRP with Agent 2.
247+
1. Alice mints 10 FXRP with Agent 1.
248+
2. Bob mints 20 FXRP with Agent 2.
248249
3. Charlie mints 5 FXRP with Agent 1.
249250

250-
After Bob, Alice, and Charlie have minted their FAssets, the redemption queue according to the FIFO method is:
251+
After Alice, Bob, and Charlie have minted their FAssets, the redemption queue according to the FIFO method is:
251252
1. Agent 1 with 10 FXRP.
252253
2. Agent 2 with 20 FXRP.
253254
3. Agent 1 with 5 FXRP.
@@ -265,7 +266,7 @@ The following example shows how the redemption queue works.
265266

266267
## Lots
267268

268-
Every minting and redemption must be made in a whole number of lots.
269+
Every minting and redemption must be made in a positive integer of lots.
269270
Lots serve the following purposes:
270271

271272
- They prevent underlying transaction fees from exceeding minting or redemption fees.
@@ -284,9 +285,9 @@ Some processes generate a fractional number of lots:
284285

285286
- On minting, part of the minting fee is minted as the FAsset fee to the collateral pool.
286287
This value is usually less than 1 lot.
287-
- When the lot size is changed, redemptions close only a whole number of lots of each redemption ticket, which leaves the remainder unredeemed.
288+
- When the lot size is changed, redemptions close only a positive integer of lots of each redemption ticket, which leaves the remainder unredeemed.
288289

289-
These amounts, known as dust, cannot be redeemed directly because redemption requires a whole number of lots.
290+
These amounts, known as dust, cannot be redeemed directly because redemption requires a positive integer of lots.
290291

291292
In such cases, the generated dust is not included in any redemption ticket.
292293
Instead, each agent's dust is accumulated until the dust amounts to a whole lot.

docs/fassets/3-redemption.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ To do so, these holders, known as redeemers, send FAssets to the Asset Manager s
1111

1212
This is the summary of the redemption process:
1313

14-
1. The redeemer starts the redemption for a whole number of lots by issuing a request to the Asset Manager smart contract.
14+
1. The redeemer starts the redemption for a positive integer of lots by issuing a request to the Asset Manager smart contract.
1515

1616
The FAssets system chooses one or more redemption tickets from the front of the [FIFO redemption queue](/fassets/minting#redemption-tickets-and-the-redemption-queue).
1717
The number of chosen redemption tickets is capped to avoid high gas consumption.
@@ -24,7 +24,7 @@ This is the summary of the redemption process:
2424
For every agent participating in the redemption, the system issues an event with the following redemption payment information:
2525
- Redeemer's underlying address.
2626

27-
Agents can use the Data Connector to ensure the validity of this address.
27+
Agents can use the Flare Data Connector to ensure the validity of this address.
2828
Otherwise, malicious redeemers could provide an address that systematically blocks payments and exploit the redeeming process to their advantage.
2929

3030
- Amount to pay minus the fee that was already subtracted.
@@ -67,7 +67,7 @@ If the agent does not report the failed payment in time, anyone (including the e
6767

6868
:::info
6969

70-
When payment fails because of the redeemer, the agent can obtain a proof of the failed payment from the Data Connector and present it to the FAssets system.
70+
When payment fails because of the redeemer, the agent can obtain a proof of the failed payment from the Flare Data Connector and present it to the FAssets system.
7171
The agent's obligation is then fulfilled, and he can keep both the collateral and the underlying.
7272

7373
Two different proofs can be used:
@@ -76,13 +76,13 @@ If the agent does not report the failed payment in time, anyone (including the e
7676
* Proof of blocked payment: Even if the address is valid, it might contain a contract that blocks the payment.
7777
This can only happen on underlying networks supporting smart contracts.
7878

79-
The agent must still try to pay and, if the payment is blocked, the agent can request this proof from the Data Connector and present it to the FAssets system.
79+
The agent must still try to pay and, if the payment is blocked, the agent can request this proof from the Flare Data Connector and present it to the FAssets system.
8080

8181
:::
8282

8383
During step 4 above, if any agent does not pay on the underlying chain, the redeemer completes the following procedure separately for each nonpaying agent:
8484

85-
1. The redeemer obtains a proof of nonpayment from the Data Connector.
85+
1. The redeemer obtains a proof of nonpayment from the Flare Data Connector.
8686
2. The redeemer presents the nonpayment proofs to the FAssets system, which triggers a redemption failure.
8787
3. The redeemer is paid with collateral, according to the current price plus a premium.
8888
4. FAssets are overcollateralized, so, even after paying the redeemer with a premium, a remainder is released.
@@ -107,7 +107,7 @@ After enough time for the agent to present the proof has elapsed, anyone, includ
107107

108108
### Expired proof
109109

110-
Proofs provided by the Data Connector are available for only 24 hours, approximately.
110+
Proofs provided by the Flare Data Connector are available for only 24 hours, approximately.
111111
If neither the redeemer, the agent, nor the executor presents the proof of payment or nonpayment within 24 hours, the regular redeeming process cannot continue, and the agent's collateral could be locked indefinitely.
112112

113113
The procedure to recover this collateral is the same as the procedure in the minting case.
@@ -135,4 +135,4 @@ As shown in the following process, agents can self-redeem for any reason, includ
135135
3. The collateral that was backing those assets is released.
136136
4. The underlying collateral is released and can be withdrawn from the underlying address later.
137137

138-
The self-redeemed amount is not limited to a whole number of lots and can be less than 1 lot, which makes self-closing ideal for redeeming an agent's dust.
138+
The self-redeemed amount is not limited to a positive integer of lots and can be less than 1 lot, which makes self-closing ideal for redeeming an agent's dust.

docs/fassets/4-collateral.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ If governance deprecates a type, agents must switch to a supported type.
3535
Each vault is associated with a single, unique address on the underlying chain called the agent's underlying address.
3636
It receives underlying assets when they are minted into FAssets and sends underlying assets to the redeemer's address when they are redeemed.
3737

38-
When an agent creates a vault, the underlying address is checked for validity using the Data Connector.
38+
When an agent creates a vault, the underlying address is checked for validity using the Flare Data Connector.
3939
Otherwise, malicious agents could provide an address that systematically blocks payments and exploit the [minting process](/fassets/minting) to their advantage.
4040

4141
### Pool Collateral

docs/fassets/5-core-vault.mdx

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,35 +22,44 @@ import useBaseUrl from "@docusaurus/useBaseUrl";
2222
/>
2323

2424
The **Core Vault (CV)** is a specialized FAsset system vault that operates on the underlying network.
25-
It allows FAsset agents to deposit and withdraw underlying assets while optimizing capital efficiency through reduced collateral requirements.
26-
The CV was introduced in **FAssets v1.1** to solve key limitations of v1, such as limited minting capacity, high collateral burdens, and poor agent exit flexibility.
25+
It addresses a critical challenge in cross-chain systems: **protecting user funds from malicious agents while maintaining system scalability.**
2726

28-
Only whitelisted users can withdraw from the Core Vault.
27+
### Why the Core Vault?
2928

30-
The Core Vault is:
29+
- In **FAssets v1**, every agent had to keep the underlying asset (e.g., XRP) in their own wallet.
30+
- To prevent theft, agents needed to be heavily overcollateralized - they had to lock up more value than they could ever profit from stealing.
31+
- This worked, but it limited minting capacity and made the system capital-inefficient.
3132

32-
- A **multisig-controlled reserve** that enhances **agent liquidity and profitability**
33-
- Integrated into the **FAssets smart contract system** on Flare
34-
- Designed to operate with **manual, auditable, and time-bounded signing routines**
35-
- Supported by **escrow-based fund throttling** to mitigate security risk
33+
The **Core Vault** changes this model:
3634

37-
FAsset users don't need to take any action to benefit from CV — it automatically integrates with FXRP and other v1 tokens.
35+
- Instead of holding XRP in their own wallets, **agents can transfer underlying assets into a shared, insured vault**.
36+
- The vault is **multisig-controlled** and governed by Flare, so agents cannot unilaterally take the funds.
37+
- Because theft is structurally prevented, agents no longer need extreme levels of overcollateralization.
38+
39+
The Core Vault prevents agents from running away with XRP while simultaneously lowering collateral requirements and improving system scalability.
40+
41+
### Key Properties
42+
43+
- **Secure by design**: Agents cannot withdraw underlying assets directly.
44+
- **Capital efficient**: Agents can mint more FAssets with less collateral.
45+
- **System-wide liquidity**: Assets in the CV form a shared pool available to all agents.
46+
- **Governance oversight**: Multisig with pause controls and time-bounded fund release.
47+
48+
Introduced in **FAssets v1.1**, the Core Vault enables the system to expand its minting capacity while maintaining the same strong guarantees of safety for users.
3849

3950
## Key Features
4051

4152
### Transfer Capacity
4253

43-
A system parameter defines the minimum percentage of minting capacity (based on collateral) that must remain on an agent's address after transferring assets to the CV.
44-
This ensures redemption liquidity and protects the system from agent insolvency.
54+
To ensure redemption liquidity, a parameter enforces that after transferring assets to the Core Vault, **an agent must still maintain a minimum portion of minting capacity outside the CV**.
55+
This prevents agents from moving everything into the vault and leaving the system unbalanced.
4556

4657
### Security Design
4758

48-
Each asset type has a dedicated Core Vault, which is managed by a multisig account on the underlying network under a formal agreement with Flare.
49-
The assets stored in the CV do not belong to any specific agent and can be requested to return to the agent's collateralized security.
50-
To ensure security, governance has the authority to pause deposits and withdrawals if necessary, such as in the event of a system compromise.
51-
52-
The Core Vault operates through a predefined address on the underlying chain and is managed via a multisig setup with smart contract oversight under formal Flare contracts.
53-
Governance has the authority to pause operations in the event of a security issue.
59+
- Each supported asset (XRP, BTC, DOGE, etc.) has its **own dedicated Core Vault**.
60+
- Each CV is a **multisig account on the underlying chain**, operated under a formal governance agreement with Flare.
61+
- Funds in the CV **no longer belong to a single agent** - they are pooled, with withdrawals only allowed under system rules.
62+
- Governance can pause deposits or withdrawals if suspicious activity is detected.
5463

5564
## Core Vault Implementation
5665

@@ -61,21 +70,21 @@ The Core Vault operates differently depending on the underlying network:
6170
**For XRP Ledger (XRP CV):**
6271

6372
- The CV is implemented as a **multisig account** on the XRP Ledger.
64-
- Only the designated **multisig signers** can move XRP from the vault.
73+
- Only the authorized **multisig signers** can move XRP from the vault.
6574
- These signers are authorized by Flare governance and operate under formal agreements.
6675
- All outgoing transactions require multiple signatures from the authorized signers.
6776

68-
### Agent Ownership Clarification
77+
### Agent Ownership vs. Core Vault Ownership
6978

7079
There's an important distinction between agent ownership and CV ownership:
7180

72-
### Agent Ownership (Standard FAssets)
81+
#### Agent Ownership (Standard FAssets)
7382

7483
- Agents hold underlying assets in their own wallets.
7584
- These assets belong to the specific agent and are part of their collateral.
7685
- Agents have direct control over these assets.
7786

78-
### Core Vault Ownership
87+
#### Core Vault Ownership
7988

8089
- Assets transferred to the CV become part of a shared pool.
8190
- These assets **do not belong to any specific agent** once in the CV.
@@ -90,7 +99,7 @@ Agents are required to provide collateral in the form of:
9099
- **USDC/USDT (stablecoins)**
91100

92101
When agents transfer underlying assets to the CV, they can reduce their collateral requirements while maintaining their minting capacity.
93-
The CV acts as a shared reserve that backs the system, allowing agents to operate more efficiently.
102+
The CV effectively acts as an **insurance-backed reserve** that boosts efficiency without weakening security.
94103

95104
## Operational Workflow
96105

@@ -102,7 +111,7 @@ The CV acts as a shared reserve that backs the system, allowing agents to operat
102111

103112
2. **Proof of Payment Submitted**
104113

105-
Anyone (including the agent) submits a proof of the transfer to the FAsset system.
114+
Anyone (including the agent) submits the proof of the transfer to the FAsset system.
106115

107116
3. **Verification and Redemption**
108117

@@ -127,7 +136,7 @@ There is no time limit for the CV to honor the request, but governance ensures t
127136
#### Direct Redemption (Users)
128137

129138
Approved users can burn FXRP and receive underlying XRP from the CV.
130-
This Requires KYC approval and a minimum redemption threshold.
139+
This requires KYC approval and a minimum redemption threshold.
131140
It is typically processed once per day and has a lower priority than agent return requests.
132141
It is helpful for large, less time-sensitive redemptions.
133142

@@ -157,7 +166,7 @@ Multisig signers validate all outgoing transactions against a pre-approved rule
157166

158167
2. **Withdrawals & Payouts**
159168

160-
Users request withdrawals; multisig operators validate Flare's offchain instructions and process payouts.
169+
Users request withdrawals; multisig operators validate Flare's off-chain instructions and process payouts.
161170

162171
3. **Re-escrow Excess & Maintain Reserve**
163172

@@ -170,3 +179,14 @@ Three escrows are created if `remaining_funds = M + 3L`, and M stays in the wall
170179
The XRP Core Vault features enhanced security measures for managing daily liquidity, including escrow time-locking and a minimum reserve in multisig setups. It has an emergency pause function and "Red Alert Mode" for urgent threats.
171180

172181
In case of a security issue, all signing is halted pending governance review. Escrow accounts may be unlocked to prevent asset loss, with governance overseeing the restoration of operations. Only one escrow can be unlocked per day, minimizing potential damage.
182+
183+
## Summary
184+
185+
The **Core Vault** fundamentally strengthens FAssets:
186+
187+
- **Prevents loss of underlying assets** by removing agent control over pooled funds.
188+
- **Lowers collateral burdens**, improving capital efficiency.
189+
- **Expands minting capacity**, making the system more scalable.
190+
- **Adds layered security**, combining multisig, escrow, and governance controls.
191+
192+
It is the key to making cross-chain assets on Flare both **secure** and **efficient**.

0 commit comments

Comments
 (0)