1
1
---
2
- title : " Atomic Exchange"
3
- description : Enable atomic asset exchanges between parties with XvP Settlement
2
+ title : " Atomic settlements (X versus Payment Settlements)"
3
+ description :
4
+ Enable atomic settlements between parties with X versus Payment (XvP)
5
+ Settlements
4
6
---
5
7
6
8
import { Callout } from " fumadocs-ui/components/callout" ;
9
+ import { Card } from " fumadocs-ui/components/card" ;
10
+ import {
11
+ Clock ,
12
+ LayoutGrid ,
13
+ Workflow ,
14
+ ShieldCheck ,
15
+ FormInput ,
16
+ MonitorCheck ,
17
+ CalendarClock ,
18
+ FileCheck ,
19
+ } from " lucide-react" ;
20
+
21
+ ## What is X versus Payment Settlement?
22
+
23
+ The X versus Payment (XvP) Settlement is a solution enables atomic, trustless
24
+ settlements of digital assets between parties. This feature provides a mechanism
25
+ for executing delivery-versus-payment (DvP), payment-versus-payment (PvP), or
26
+ any asset-versus-asset exchange in a single, indivisible transaction.
27
+
28
+ ![ XvP Settlement list] ( ../../../img/xvp-settlement/list.png )
7
29
8
- ## SettleMint XvP Settlement
30
+ ### Key benefits
9
31
10
- The XvP (Anything-versus-Payment) Settlement module enables atomic, trustless
11
- exchanges of digital assets between parties. This feature provides a secure
12
- mechanism for executing delivery-versus-payment (DvP), payment-versus-payment
13
- (PvP), or any asset-versus-asset exchange in a single, indivisible transaction.
32
+ <div className = " grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 my-8" >
33
+ <Card
34
+ icon = { <LayoutGrid />}
35
+ title = " Multi-party transfers"
36
+ >
37
+ Enable multiple participants to exchange various assets in a single atomic
38
+ transaction.
39
+ </Card >
14
40
15
- ## What is XvP Settlement?
41
+ <Card icon = { <Clock />} title = " Conditional triggering" >
42
+ Execute settlements automatically when predefined conditions or time
43
+ thresholds are met.
44
+ </Card >
16
45
17
- XvP Settlement is a smart contract-based solution that ensures all parties in a
18
- transaction either receive their expected assets simultaneously or the
19
- transaction does not execute at all. This eliminates counterparty risk and
20
- settlement failures common in traditional exchanges.
46
+ <Card icon = { <MonitorCheck />} title = " Settlement monitoring" >
47
+ Track approvals, execution status, and transaction progress in real-time.
48
+ </Card >
21
49
22
- ### Key benefits
50
+ <Card icon = { <FileCheck />} title = " Compliance integration" >
51
+ Enforce regulatory compliance across settlements through the upcoming SMART
52
+ protocol.
53
+ </Card >
54
+
55
+ <Card icon = { <CalendarClock />} title = " Programmable settlement" >
56
+ Configure expiration dates and custom parameters to control settlement
57
+ behavior.
58
+ </Card >
59
+
60
+ <Card icon = { <Workflow />} title = " Post-settlement actions" >
61
+ Configure automated notifications, emails, or workflows triggered upon
62
+ settlement execution.
63
+ </Card >
64
+
65
+ </div >
66
+
67
+ ## Creating an X versus Payment Settlement
23
68
24
- - ** Atomic execution** : All transfers succeed or fail together, eliminating
25
- partial settlement risk
26
- - ** Trustless operation** : No need for intermediaries or escrow services
27
- - ** Programmable settlement** : Configure expiration dates and auto-execution
28
- parameters
29
- - ** Multi-party capability** : Support for complex settlement flows involving
30
- multiple assets and participants
69
+ To create a new X versus Payment Settlement, navigate to the XvP Settlement
70
+ section and click "Create new XvP Settlement." The creation interface allows you
71
+ to configure:
31
72
32
- ## Creating an XvP Settlement
73
+ 1 . ** Settlement flows ** : Configure two or more flows, where each flow specifies:
33
74
34
- To create a new XvP Settlement, navigate to the XvP Settlement section and click
35
- "Create New Settlement." The creation interface allows you to configure:
75
+ - ** From** : The sending party's wallet address
76
+ - ** To** : The receiving party's wallet address
77
+ - ** Asset** : The digital asset to be transferred
78
+ - ** Amount** : The quantity of the asset to be transferred
36
79
37
- 1 . ** Settlement party** : The counterparty wallet address for the exchange
38
- 2 . ** Assets** : Select the assets and amounts you wish to exchange
39
- 3 . ** Expiry date** : The date after which the settlement cannot be executed
40
- 4 . ** Auto-execute** : Toggle to automatically execute the settlement upon final
80
+ ![ XvP Settlement flows] ( ../../../img/xvp-settlement/flows.png )
81
+
82
+ 2 . ** Expiry date** : The date after until which the settlement can be executed
83
+
84
+ 3 . ** Auto-execute** : Whether to automatically execute the settlement on final
41
85
approval
42
86
43
- <Callout type = " info" >
44
- While the underlying smart contract supports complex multi-party flows, the
45
- current UI implements a simplified version allowing for exchanges between two
46
- parties.
47
- </Callout >
87
+ ![ XvP Settlement configuration] ( ../../../img/xvp-settlement/configuration.png )
88
+
89
+ Lastly, review the settlement details and submit the transaction to deploy a new
90
+ XvP Settlement contract.
91
+
92
+ ![ XvP Settlement summary] ( ../../../img/xvp-settlement/summary.png )
93
+
94
+ Compliance conditions for digital assets can be configured through the SMART
95
+ protocol (coming soon) directly on the assets themselves.
48
96
49
97
Once configured, submit the transaction to deploy a new XvP Settlement contract.
50
- The newly created settlement will appear in your settlement list for monitoring.
98
+ The newly created contract will appear in your settlement list for monitoring.
51
99
52
- ## Approving an XvP Settlement
100
+ ## Approving an X versus Payment Settlement
53
101
54
- When you're involved in an XvP Settlement (either as initiator or counterparty),
55
- you'll need to approve it before execution . The approval process includes:
102
+ When you're involved in an X versus Payment Settlement as a sender, you'll need
103
+ to approve it before it can be executed . The approval process includes:
56
104
57
- 1 . ** Review settlement details** : Verify the assets, amounts, and expiry date
58
- 2 . ** Grant asset allowances** : Approve the settlement contract to transfer your
59
- assets
60
- 3 . ** Submit approval** : Confirm your participation in the settlement
105
+ 1 . Granting the settlement contract an allowance to transfer the specified
106
+ assets from your wallet
107
+ 2 . Then, sending your approval to the settlement contract itself
61
108
62
- When you approve a settlement, two transactions occur:
109
+ Once all involved parties have sent their approval, the settlement is ready to
110
+ be executed.
63
111
64
- - First, you grant the XvP contract allowance to transfer the specified assets
65
- from your wallet
66
- - Second, you mark your approval on the settlement contract itself
112
+ ![ XvP Settlement approve] ( ../../../img/xvp-settlement/approve.png )
67
113
68
- Once all involved parties have approved the settlement, it becomes eligible for
69
- execution.
114
+ You can set up workflows for execution at a certain time or on other events.
70
115
71
- ## Executing an XvP Settlement
116
+ ## Execution phase of an X versus Payment Settlement
72
117
73
- The execution phase is where the XvP Settlement demonstrates its value. During
74
- execution:
118
+ The execution phase is where the X versus Payment Settlement demonstrates its
119
+ value. During execution:
75
120
76
- 1 . The contract verifies all required approvals are in place
121
+ 1 . The settlement contract verifies all required approvals are in place
77
122
2 . It checks that the settlement hasn't expired or been cancelled
78
123
3 . It atomically transfers all assets between parties in a single transaction
79
124
80
- If auto-execution is enabled during creation, the settlement will automatically
81
- execute when the final party approves it. In this case, the last approver pays
82
- the gas fees for the execution transaction.
125
+ If auto-execution is enabled during creation, the settlement contract will
126
+ automatically execute when the final party approves it. In this case, the last
127
+ approver pays the gas fees for the execution transaction.
83
128
84
- <Callout type = " warning" >
85
- If auto-execution is disabled, the settlement requires manual execution after
86
- approvals. Any wallet can execute by paying the gas fees.
87
- </Callout >
129
+ ![ XvP Settlement execute] ( ../../../img/xvp-settlement/execute.png )
88
130
89
- ## Cancelling an XvP Settlement
131
+ ## Cancelling an X versus Payment Settlement
90
132
91
- Any involved party can cancel an XvP Settlement before it has been executed.
92
- This provides a safety mechanism if:
133
+ Any involved party can cancel an X versus Payment Settlement before it has been
134
+ executed. This provides a safety mechanism if:
93
135
94
136
- Settlement parameters were incorrectly configured
95
- - Market conditions change before settlement execution
96
- - One party needs to withdraw from the agreement
97
- - The settlement is no longer needed
137
+ - Market conditions changed before execution
138
+ - A party needs to withdraw from the agreement
98
139
99
140
Once a settlement is cancelled, it cannot be reactivated or executed.
100
141
142
+ ![ XvP Settlement cancel] ( ../../../img/xvp-settlement/cancel.png )
143
+
101
144
## Settlement states
102
145
103
- An XvP Settlement can exist in one of several states:
146
+ An X versus Payment Settlement can exist in one of the following states:
104
147
105
148
- ** Pending** : Created but not yet fully approved by all parties
106
149
- ** Ready** : Fully approved and ready for execution
@@ -113,8 +156,8 @@ its current status.
113
156
114
157
## Technical implementation
115
158
116
- The XvP Settlement is powered by a secure smart contract that follows best
117
- practices for atomic exchanges. The contract:
159
+ The X versus Payment Settlement is powered by a secure smart contract that
160
+ follows best practices for atomic exchanges. The contract:
118
161
119
162
- Utilizes OpenZeppelin's security libraries
120
163
- Implements reentrancy protection
0 commit comments