- Deploy DIT to a new ledger on Daml Hub
- Create the following parties:
UserAdminBankCcpIssuerExchangeAliceBob
- Download
parties.json - Open deployed UI → Quick Setup
- Upload
parties.json, refresh the page and click Next - Wait for all auto-approve triggers for all parties to deploy...
- Drag and drop roles to specific parties: (then click Next)
- Assign
BanktheCustody,Distribution, andSettlementroles - Assign
ExchangetheCustody,Trading,Matching, andSettlementroles - Assign
CcptheClearingrole
- Assign
- Drag and drop automation to specific parties: (then click Next)
- Assign
BanktheSettlementInstructionTrigger - Assign
ExchangetheMatchingEngine, andSettlementInstructionTrigger - Assign
CcptheClearingTrigger
- Assign
- Offer services to and from specific parties: (then click Next)
- As
Bankoffer theCustody,Issuanceservices toIssuer - As
Bankoffer theCustodyservice toAlice - As
Bankoffer theCustodyservice toCcp - as
Exchangeoffer theListingservice toExchange - As
Exchangeoffer theCustodyservice toAlice - As
Exchangeoffer theCustodyservice toBob
- As
- Login as
Issuer Issuer: go to Wallet and create a regular account- Provider:
Bank - Account Name :
MainIssuer-Bank - Account Type :
Regular
- Provider:
Issuer: go to Wallet and create an allocation account- Provider:
Bank - Account Name :
AllocIssuer-Bank - Account Type :
Allocation - Nominee :
Bank
- Provider:
Issuer: go to Setup and create a base instrument for USDIssuer: go to Setup and create a base instrument for BTCIssuer: go to Setup and create an issuance of USD- Issuance ID:
iss1 - Quantity:
1000
- Issuance ID:
Issuer: go to Setup and create an issuance of BTC- Issuance ID:
iss2 - Quantity:
1000
- Issuance ID:
Auctioning off assets
Issuer: on Landing, requestAuctionservice from theBank- Provider:
Bank - Trading Account:
MainIssuer-Bank - Allocation Account:
AllocIssuer-Bank - Receivable Account:
MainIssuer-Bank
- Provider:
Issuer: go to Setup and create a new auction- Auctioned Asset :
BTC - Quoted Asset :
USD - Quantity :
500 - Floor Price :
300 - Auction ID :
auc1
- Auctioned Asset :
- Login as
Alice Alice: Go to Wallet, create a regular account withBank- Provider:
Bank - Account Name :
MainAlice-Bank - Account Type :
Regular
- Provider:
Alice: Click on newly created account rowAlice: Deposit 5000 US Dollars to accountAlice: Go to Wallet, create an allocation account- Provider:
Bank - Account Name :
AllocAlice-Bank - Account Type :
Allocation - Nominee :
Bank
- Provider:
Alice: RequestBiddingservice fromBank- Trading Account:
MainAlice-Bank - Allocation Account:
AllocAlice-Bank
- Trading Account:
- Login as
Bank Bank: Go to Auctions, click on the auction opened by the Issuer, and Request Bid fromAlice- Login as
Alice Alice: Go to Bidding Auctions, click on the auction, and submit a Bid- Quantity:
2 - Price:
500 - Publish Bid: ✅
- Quantity:
- Login as
Bank - Go to auction, click
Close Auction
Setting up tradeable, collateralized markets
- Login as
Exchange Exchange: Go to Setup, Create New Listing- Traded Asset :
BTC - Traded Asset Precision:
6 - Quoted Asset :
USD - Quoted Asset Precision:
2 - Minimum Tradable Quantity:
1 - Maximum Tradable Quantity:
10000 - Symbol:
BTCUSD - Description:
Bitcoin vs USD - Cleared by:
-- Collateralized Market --
- Traded Asset :
- Login as
Alice Alice: Go to Wallet, create a regular account- Provider:
Exchange - Account Name :
MainAlice-Exchange - Account Type :
Regular
- Provider:
Alice: Go to Wallet, create an allocation account- Provider:
Exchange - Account Name :
AllocAlice-Exchange - Account Type :
Allocation - Nominee :
Exchange
- Provider:
Alice: Go to Wallet, click on row forMainAlice-ExchangeAlice: Deposit 1000 USD intoMainAlice-ExchangeAlice: RequestTradingservice fromExchange- Provider:
Exchange - Trading Account:
MainAlice-Exchange - Allocation Account:
AllocAlice-Exchange
- Provider:
Alice: Go to BTCUSD Market, place an order- Buy
- Limit
- Time in Force :
Good Till Cancelled - Price :
500 - Quantity :
2
- Login as
Bob Bob: Go to Wallet, create a regular account- Provider:
Exchange - Account Name :
MainBob-Exchange - Account Type :
Regular
- Provider:
Bob: Go to Wallet, create an allocation account- Provider:
Exchange - Account Name :
AllocBob-Exchange - Account Type :
Allocation - Nominee :
Exchange
- Provider:
Bob: Go to Wallet, click on row forMainBob-Exchange, Deposit 500 BTCBob: RequestTradingservice fromExchange- Provider:
Exchange - Trading Account:
MainBob-Exchange - Allocation Account:
AllocBob-Exchange
- Provider:
Bob: Go to BTCUSD Market, place an order (to partially matchAlice's Buy)- Sell
- Limit
- Time in Force :
Good Till Cancelled - Price :
500 - Quantity :
1.0
- Login as
Ccp Ccp: Go to Wallet, create a regular account- Provider:
Bank - Account Name :
Clearing-Bank - Account Type :
Regular
- Provider:
Ccp: Go to Manage/Clearing and "Accept" Clearing Role- Clearing Account:
Clearing-Bank
- Clearing Account:
- Login as
Alice Alice: Go to Wallet, create a regular account- Provider:
Bank - Account Name :
ClearingAlice-Bank - Account Type :
Regular
- Provider:
Alice: Go to Wallet, create an allocation account- Provider:
Bank - Account Name :
MarginAlice-Bank - Account Type :
Allocation - Nominee :
Ccp
- Provider:
Alice: On Landing, click "Request Clearing Service"- Provider:
CCP - Clearing Account:
ClearingAlice-Bank - Margin Account:
MarginAlice-Bank
- Provider:
Alice: Go to Wallet, click on row forClearingBob-Bank, Deposit 10,000 USD- Login as
Bob Bob: Go to Wallet, create a regular account- Provider:
Bank - Account Name :
ClearingBob-Bank - Account Type :
Regular
- Provider:
Bob: Go to Wallet, create an allocation account- Provider:
Bank - Account Name :
MarginBob-Bank - Account Type :
Allocation - Nominee :
Ccp
- Provider:
Bob: On Landing, click "Request Clearing Service"- Provider:
CCP - Clearing Account:
ClearingBob-Bank - Margin Account:
MarginBob-Bank
- Provider:
Bob: Go to Wallet, click on row forClearingBob-Bank, Deposit 10,000 USD
Perform successful margin call for Alice
- Login as
Ccp Ccp: onMemberspage, click "Perform Margin Call":- Customer:
Alice - Amount: 5000
- Customer:
Fail and retry a margin calculation for Bob
Ccp: onMemberspage, click "Perform Margin Call":- Customer :
Bob - Amount : 12000
- Customer :
- Login as
Bob Bob: Go to Wallet, click on row forClearingBob-Bank, Deposit 5000 USDBob: Go to Clearing page, click "Retry" on failed Margin Call
Transfer funds from Alice to Bob via central countrerparty.
Ccp: onMemberspage, click "Perform Mark to Market":- Customer:
Alice - Amount: 5000
- Customer:
Ccp: onMemberspage, click "Perform Mark to Market":- Customer :
Bob - Amount : -5000
- Customer :
Setting up tradeable, cleared markets
- Login as
Exchange - On landing page, click "Request Market Clearing"
- Provider :
Ccp
- Provider :
Exchange: Go to Setup, Create New Listing- Traded Asset :
BTC - Traded Asset Precision:
6 - Quoted Asset :
USD - Quoted Asset Precision:
2 - Minimum Tradable Quantity:
1 - Maximum Tradable Quantity:
10000 - Symbol:
BTCUSD-CLR - Description:
Cleared Bitcoin vs USD - Cleared by:
CCP
- Traded Asset :
- Login as
Alice Alice: Go to BTCUSD-CLR Market, place an order- Buy
- Limit
- Time in Force :
Good Till Cancelled - Price :
500 - Quantity :
2
- Login as
Bob Bob: Go to BTCUSD-CLR Market, place an order (to partially matchAlice's Buy)- Sell
- Market
- Time in Force :
Good Till Cancelled - Quantity :
1.0
- Login as
Ccp - On Manage/Clearing, click "Request FV" next to Exchange's Market.Clearing role
- Currency : USD