Skip to content

Commit 817f661

Browse files
feat(docs): additional information to new guides
1 parent 3423245 commit 817f661

2 files changed

Lines changed: 34 additions & 4 deletions

File tree

docs/fassets/03-direct-minting.mdx

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ The transaction identifies the minting parameters (recipient and executor) throu
1515
An **executor** then calls `executeDirectMinting` on the Flare side to finalize the mint.
1616
The executor is paid a fee upon successful completion.
1717

18+
## Fees
19+
20+
Direct minting charges two fees, both deducted from the underlying payment amount:
21+
22+
- **Minting fee**: A percentage of the received amount (in BIPS), with a minimum floor.
23+
This fee is paid to a governance-configured fee receiver.
24+
If the payment is smaller than the minimum minting fee, no FAssets are minted and the entire payment goes to the fee receiver.
25+
- **Executor fee**: A flat fee in the underlying asset, paid to the executor who finalizes the minting.
26+
The minting fee takes priority: if the payment only covers the minting fee, the executor receives nothing.
27+
1828
## Identifying Minting Parameters
1929

2030
There are two ways to specify the minting recipient and executor in a direct minting payment.
@@ -30,13 +40,23 @@ This path is convenient for repeated use, such as an exchange or service that re
3040

3141
### Memo Field
3242

33-
Instead of a tag, the minter can encode the recipient and executor directly in a 48-byte memo field on the XRPL payment:
43+
Instead of a tag, the minter can encode the minting parameters directly in the memo field on the XRPL payment.
44+
There are two supported formats:
45+
46+
**32-byte memo** (recipient only):
47+
48+
A standard direct minting payment reference that encodes only the 20-byte recipient address.
49+
Anyone can execute, as no executor is specified.
50+
51+
**48-byte memo** (recipient and executor):
3452

3553
1. **8-byte prefix**: `0x4642505266410021` (`DIRECT_MINTING_EX`)
3654
2. **20-byte recipient address**
3755
3. **20-byte executor address**
3856

39-
No reservation is needed, but the memo must be constructed for each payment.
57+
If the executor address is the zero address, anyone can execute.
58+
59+
No reservation is needed for either format, but the memo must be constructed for each payment.
4060

4161
## Minting Tag Manager
4262

@@ -48,6 +68,7 @@ The `MintingTagManager` contract on Flare manages the reservation and ownership
4868
The user always receives the next available tag.
4969
- The contract implements the **ERC-721** (NFT) interface, so reserved tags can be transferred or resold.
5070
- Tag owners can set a minting recipient with `setMintingRecipient` and a preferred executor with `setAllowedExecutor`.
71+
Executor changes are not immediate: the new executor becomes active after a 10-minute cooldown to protect in-flight FDC proofs.
5172
- On initial reservation and tag transfer, the recipient resets to the new owner and the executor resets to the zero address.
5273

5374
## Executor Restrictions
@@ -57,7 +78,8 @@ Executors can be restricted in three ways depending on the minting method:
5778
1. **Tag-based:** The tag manager's `setAllowedExecutor` method defines the allowed executor.
5879
If set to the zero address, anyone can execute.
5980
2. **Memo-based:** The 48-byte memo format encodes the executor address directly.
60-
If the executor address is the zero address, anyone can execute.
81+
The 32-byte memo format does not specify an executor, so anyone can execute.
82+
If the executor address in the 48-byte format is the zero address, anyone can also execute.
6183
3. **Smart account:** The smart account manager may restrict the executor.
6284
The asset manager passes every request through.
6385

docs/fassets/04-redemption.mdx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,16 @@ This is the summary of the redemption process:
5757
The standard `redeem` method requires whole lots.
5858
The `redeemAmount` method allows redeeming **any amount** of FAssets, which is useful for redeeming yields or partial amounts that don not align with lot boundaries.
5959

60-
No redemption can be smaller than `minimumRedeemAmountUBA` to prevent uneconomical micro-redemptions.
60+
No redemption through `redeemAmount` or `redeemWithTag` can be smaller than `minimumRedeemAmountUBA` to prevent uneconomical micro-redemptions.
61+
If the requested amount requires too many redemption tickets, only a partial redemption is performed and the remaining amount is returned in a `RedemptionAmountIncomplete` event.
6162

6263
## Redeem with Tag
6364

6465
The `redeemWithTag` method allows the redeemer to request an **XRP destination tag** on the redemption payment.
6566
This is useful when redeeming directly to an exchange address that requires a destination tag.
6667
Like `redeemAmount`, it also supports redeeming any amount, not just whole lots.
6768

69+
The destination tag must fit in a 32-bit integer.
6870
This is an XRP-only feature, gated by the `redeemWithTagSupported` flag.
6971
Confirming a redemption with a tag requires the `confirmXRPRedemptionPayment` method, which uses a dedicated FDC proof type that supports destination tags.
7072
If the agent fails to pay, the redeemer calls `xrpRedemptionPaymentDefault` to trigger the default process.
@@ -134,6 +136,12 @@ During step 4 above, if any agent does not pay on the underlying chain, the rede
134136
This remainder is derived from the [system-wide collateral ratio settings](/fassets/collateral#system-wide-thresholds) specified by governance.
135137
5. The underlying assets backing the redeemed FAssets are marked as free and can be withdrawn by the agent later.
136138

139+
## Redemption Time Extension
140+
141+
When many redemption requests target the same agent in rapid succession, the system automatically extends the agent's payment deadline.
142+
Each new redemption request adds time to the deadline, which then gradually decays back to the baseline as the volume of requests decreases.
143+
This mechanism prevents agents from being overwhelmed by a burst of redemptions and failing to pay in time through no fault of their own.
144+
137145
## Edge Cases
138146

139147
### Unresponsive redeemer

0 commit comments

Comments
 (0)