├── .gitbook
└── assets
│ ├── 2020-12-21-2.00.31.png
│ ├── 2020-12-21-2.49.02.png
│ ├── 2020-12-21-2.53.31.png
│ ├── 2020-12-21-3.02.00.png
│ ├── 2020-12-21-3.07.10.png
│ ├── 2020-12-21-3.13.51.png
│ ├── 2020-12-21-6.52.45.png
│ ├── 2020-12-21-6.54.00.png
│ ├── 2020-12-21-6.57.30.png
│ ├── Mirror v2 Audit Report (1).pdf
│ ├── Mirror v2 Audit Report.pdf
│ ├── Mirror_Protocol_V2.pdf
│ ├── image (1).png
│ ├── image (10).png
│ ├── image (100).png
│ ├── image (101).png
│ ├── image (102).png
│ ├── image (103).png
│ ├── image (104).png
│ ├── image (105).png
│ ├── image (106).png
│ ├── image (107).png
│ ├── image (108).png
│ ├── image (109).png
│ ├── image (11).png
│ ├── image (110).png
│ ├── image (111).png
│ ├── image (112).png
│ ├── image (113).png
│ ├── image (114).png
│ ├── image (115).png
│ ├── image (116).png
│ ├── image (117).png
│ ├── image (119).png
│ ├── image (12).png
│ ├── image (120).png
│ ├── image (121).png
│ ├── image (122).png
│ ├── image (123).png
│ ├── image (124).png
│ ├── image (125).png
│ ├── image (126).png
│ ├── image (127).png
│ ├── image (128).png
│ ├── image (129).png
│ ├── image (13).png
│ ├── image (130).png
│ ├── image (131).png
│ ├── image (132).png
│ ├── image (133).png
│ ├── image (134).png
│ ├── image (135).png
│ ├── image (136).png
│ ├── image (137).png
│ ├── image (138).png
│ ├── image (139).png
│ ├── image (14).png
│ ├── image (140).png
│ ├── image (141).png
│ ├── image (142).png
│ ├── image (143).png
│ ├── image (144).png
│ ├── image (145).png
│ ├── image (146).png
│ ├── image (147).png
│ ├── image (148).png
│ ├── image (149).png
│ ├── image (15).png
│ ├── image (150).png
│ ├── image (151).png
│ ├── image (152).png
│ ├── image (154).png
│ ├── image (155).png
│ ├── image (156).png
│ ├── image (157).png
│ ├── image (158).png
│ ├── image (159).png
│ ├── image (16).png
│ ├── image (160).png
│ ├── image (161).png
│ ├── image (162).png
│ ├── image (163).png
│ ├── image (164).png
│ ├── image (165).png
│ ├── image (166).png
│ ├── image (167).png
│ ├── image (168).png
│ ├── image (169).png
│ ├── image (17).png
│ ├── image (170).png
│ ├── image (171).png
│ ├── image (172).png
│ ├── image (173).png
│ ├── image (174).png
│ ├── image (175).png
│ ├── image (176).png
│ ├── image (177).png
│ ├── image (178).png
│ ├── image (179).png
│ ├── image (18).png
│ ├── image (180).png
│ ├── image (181).png
│ ├── image (182).png
│ ├── image (183).png
│ ├── image (184).png
│ ├── image (185).png
│ ├── image (186).png
│ ├── image (187).png
│ ├── image (188).png
│ ├── image (189).png
│ ├── image (19).png
│ ├── image (190).png
│ ├── image (191).png
│ ├── image (192).png
│ ├── image (193).png
│ ├── image (194).png
│ ├── image (195).png
│ ├── image (196).png
│ ├── image (197).png
│ ├── image (198).png
│ ├── image (199).png
│ ├── image (2) (2) (2) (1).png
│ ├── image (2) (2) (2) (2).png
│ ├── image (2) (2) (2).png
│ ├── image (2).png
│ ├── image (20).png
│ ├── image (200).png
│ ├── image (201).png
│ ├── image (202).png
│ ├── image (203).png
│ ├── image (204).png
│ ├── image (205).png
│ ├── image (206).png
│ ├── image (207).png
│ ├── image (208).png
│ ├── image (209).png
│ ├── image (21).png
│ ├── image (210).png
│ ├── image (211) (1) (1).png
│ ├── image (211) (1).png
│ ├── image (212).png
│ ├── image (213).png
│ ├── image (214).png
│ ├── image (215).png
│ ├── image (216).png
│ ├── image (217).png
│ ├── image (218).png
│ ├── image (219).png
│ ├── image (22).png
│ ├── image (23).png
│ ├── image (24).png
│ ├── image (25) (1) (1).png
│ ├── image (25) (1).png
│ ├── image (25).png
│ ├── image (26).png
│ ├── image (27).png
│ ├── image (28) (1) (1).png
│ ├── image (28) (1).png
│ ├── image (28).png
│ ├── image (29).png
│ ├── image (3).png
│ ├── image (30).png
│ ├── image (31).png
│ ├── image (32).png
│ ├── image (33).png
│ ├── image (34).png
│ ├── image (35).png
│ ├── image (36).png
│ ├── image (37).png
│ ├── image (38).png
│ ├── image (39).png
│ ├── image (4).png
│ ├── image (40).png
│ ├── image (41).png
│ ├── image (42).png
│ ├── image (43).png
│ ├── image (44).png
│ ├── image (45).png
│ ├── image (46).png
│ ├── image (47).png
│ ├── image (48).png
│ ├── image (49).png
│ ├── image (5).png
│ ├── image (50).png
│ ├── image (52).png
│ ├── image (53).png
│ ├── image (54) (1) (1) (1).png
│ ├── image (54) (1) (1).png
│ ├── image (55).png
│ ├── image (56).png
│ ├── image (57).png
│ ├── image (58).png
│ ├── image (59) (1).png
│ ├── image (59).png
│ ├── image (6).png
│ ├── image (60).png
│ ├── image (61).png
│ ├── image (62).png
│ ├── image (63).png
│ ├── image (64).png
│ ├── image (65).png
│ ├── image (66) (1).png
│ ├── image (66).png
│ ├── image (67).png
│ ├── image (68).png
│ ├── image (69) (1) (1).png
│ ├── image (69) (1).png
│ ├── image (7).png
│ ├── image (71).png
│ ├── image (72).png
│ ├── image (73).png
│ ├── image (74).png
│ ├── image (75).png
│ ├── image (76).png
│ ├── image (77).png
│ ├── image (78).png
│ ├── image (79).png
│ ├── image (8).png
│ ├── image (80).png
│ ├── image (81).png
│ ├── image (82).png
│ ├── image (83).png
│ ├── image (84).png
│ ├── image (85).png
│ ├── image (86).png
│ ├── image (87).png
│ ├── image (88).png
│ ├── image (89).png
│ ├── image (9) (1).png
│ ├── image (9).png
│ ├── image (90).png
│ ├── image (91).png
│ ├── image (92).png
│ ├── image (93).png
│ ├── image (94).png
│ ├── image (95).png
│ ├── image (96).png
│ ├── image (97).png
│ ├── image (98).png
│ ├── image (99).png
│ ├── image.png
│ └── mirror-wp.pdf
├── README.md
├── SUMMARY.md
├── architecture.md
├── contracts
├── admin-manager.md
├── architecture.md
├── collateral-oracle.md
├── collector.md
├── community.md
├── factory.md
├── gov.md
├── limit-order.md
├── lock.md
├── mint.md
├── staking.md
└── tefi-oracle.md
├── developer-tools
├── mirror-api.md
├── mirror-cli.md
└── mirror.js.md
├── faq.md
├── images
└── faq_minting_example.png
├── networks.md
├── protocol
├── governance
│ ├── README.md
│ ├── community-grants.md
│ ├── contract-migration-procedure.md
│ ├── delist-procedure.md
│ ├── modify-gov-parameters.md
│ ├── modify-mint-parameters.md
│ ├── modify-poll-parameters.md
│ ├── oracle-whitelist-procedure.md
│ ├── other-proposals.md
│ ├── pre-ipo-procedure.md
│ ├── proposal-types.md
│ └── whitelist-procedure.md
├── lp-token.md
├── mirror-token-mir.md
├── mirrored-assets-massets.md
├── staking-tokens-lp-and-slp.md
├── synopsis.md
└── terraswap.md
├── readme
└── whats-new-for-mirror-v2.md
├── security.md
└── user-guide
├── getting-started
├── README.md
├── claim-mir-reward.md
├── governance.md
├── mint-and-burn.md
├── pool.md
├── sending-tokens.md
├── stake.md
└── trade.md
├── meth-dual-yield.md
├── meth-dual-yield
├── README.md
├── sending-tokens.md
├── staking_guide.md
└── trade.md
└── terra-bridge.md
/.gitbook/assets/2020-12-21-2.00.31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-2.00.31.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-2.49.02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-2.49.02.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-2.53.31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-2.53.31.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-3.02.00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-3.02.00.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-3.07.10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-3.07.10.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-3.13.51.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-3.13.51.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-6.52.45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-6.52.45.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-6.54.00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-6.54.00.png
--------------------------------------------------------------------------------
/.gitbook/assets/2020-12-21-6.57.30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/2020-12-21-6.57.30.png
--------------------------------------------------------------------------------
/.gitbook/assets/Mirror v2 Audit Report (1).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/Mirror v2 Audit Report (1).pdf
--------------------------------------------------------------------------------
/.gitbook/assets/Mirror v2 Audit Report.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/Mirror v2 Audit Report.pdf
--------------------------------------------------------------------------------
/.gitbook/assets/Mirror_Protocol_V2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/Mirror_Protocol_V2.pdf
--------------------------------------------------------------------------------
/.gitbook/assets/image (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (10).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (10).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (100).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (100).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (101).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (101).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (102).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (102).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (103).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (103).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (104).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (104).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (105).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (105).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (106).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (106).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (107).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (107).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (108).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (108).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (109).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (109).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (11).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (11).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (110).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (110).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (111).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (111).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (112).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (112).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (113).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (113).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (114).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (114).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (115).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (115).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (116).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (116).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (117).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (117).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (119).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (119).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (12).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (12).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (120).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (120).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (121).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (121).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (122).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (122).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (123).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (123).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (124).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (124).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (125).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (125).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (126).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (126).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (127).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (127).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (128).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (128).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (129).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (129).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (13).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (13).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (130).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (130).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (131).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (131).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (132).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (132).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (133).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (133).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (134).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (134).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (135).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (135).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (136).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (136).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (137).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (137).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (138).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (138).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (139).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (139).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (14).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (14).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (140).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (140).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (141).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (141).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (142).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (142).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (143).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (143).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (144).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (144).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (145).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (145).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (146).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (146).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (147).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (147).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (148).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (148).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (149).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (149).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (15).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (15).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (150).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (150).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (151).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (151).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (152).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (152).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (154).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (154).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (155).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (155).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (156).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (156).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (157).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (157).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (158).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (158).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (159).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (159).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (16).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (16).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (160).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (160).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (161).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (161).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (162).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (162).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (163).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (163).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (164).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (164).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (165).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (165).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (166).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (166).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (167).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (167).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (168).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (168).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (169).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (169).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (17).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (17).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (170).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (170).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (171).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (171).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (172).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (172).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (173).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (173).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (174).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (174).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (175).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (175).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (176).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (176).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (177).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (177).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (178).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (178).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (179).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (179).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (18).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (18).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (180).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (180).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (181).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (181).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (182).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (182).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (183).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (183).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (184).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (184).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (185).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (185).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (186).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (186).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (187).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (187).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (188).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (188).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (189).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (189).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (19).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (19).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (190).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (190).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (191).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (191).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (192).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (192).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (193).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (193).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (194).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (194).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (195).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (195).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (196).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (196).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (197).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (197).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (198).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (198).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (199).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (199).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (2) (2) (2) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (2) (2) (2) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (2) (2) (2) (2).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (2) (2) (2) (2).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (2) (2) (2).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (2) (2) (2).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (2).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (2).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (20).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (20).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (200).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (200).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (201).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (201).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (202).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (202).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (203).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (203).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (204).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (204).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (205).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (205).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (206).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (206).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (207).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (207).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (208).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (208).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (209).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (209).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (21).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (21).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (210).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (210).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (211) (1) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (211) (1) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (211) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (211) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (212).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (212).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (213).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (213).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (214).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (214).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (215).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (215).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (216).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (216).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (217).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (217).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (218).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (218).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (219).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (219).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (22).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (22).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (23).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (23).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (24).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (24).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (25) (1) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (25) (1) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (25) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (25) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (25).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (25).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (26).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (26).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (27).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (27).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (28) (1) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (28) (1) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (28) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (28) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (28).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (28).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (29).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (29).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (3).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (3).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (30).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (30).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (31).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (31).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (32).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (32).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (33).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (33).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (34).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (34).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (35).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (35).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (36).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (36).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (37).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (37).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (38).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (38).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (39).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (39).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (4).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (4).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (40).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (40).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (41).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (41).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (42).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (42).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (43).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (43).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (44).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (44).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (45).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (45).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (46).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (46).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (47).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (47).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (48).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (48).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (49).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (49).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (5).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (5).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (50).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (50).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (52).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (52).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (53).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (53).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (54) (1) (1) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (54) (1) (1) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (54) (1) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (54) (1) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (55).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (55).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (56).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (56).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (57).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (57).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (58).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (58).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (59) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (59) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (59).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (59).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (6).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (6).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (60).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (60).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (61).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (61).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (62).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (62).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (63).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (63).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (64).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (64).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (65).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (65).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (66) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (66) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (66).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (66).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (67).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (67).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (68).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (68).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (69) (1) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (69) (1) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (69) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (69) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (7).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (7).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (71).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (71).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (72).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (72).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (73).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (73).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (74).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (74).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (75).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (75).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (76).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (76).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (77).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (77).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (78).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (78).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (79).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (79).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (8).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (8).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (80).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (80).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (81).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (81).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (82).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (82).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (83).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (83).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (84).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (84).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (85).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (85).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (86).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (86).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (87).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (87).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (88).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (88).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (89).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (89).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (9) (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (9) (1).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (9).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (9).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (90).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (90).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (91).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (91).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (92).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (92).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (93).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (93).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (94).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (94).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (95).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (95).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (96).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (96).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (97).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (97).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (98).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (98).png
--------------------------------------------------------------------------------
/.gitbook/assets/image (99).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image (99).png
--------------------------------------------------------------------------------
/.gitbook/assets/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/image.png
--------------------------------------------------------------------------------
/.gitbook/assets/mirror-wp.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/.gitbook/assets/mirror-wp.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Home
2 |
3 | **You can access Mirror through the official**[ **Web App**](user-guide/getting-started/)**.**
4 |
5 | Welcome to the Mirror documentation site.
6 |
7 | ## What is Mirror?
8 |
9 | **Mirror** is a DeFi protocol powered by smart contracts on the Terra network that enables the creation of synthetic assets called [Mirrored Assets](protocol/mirrored-assets-massets.md) (mAssets). mAssets mimic the price behavior of real-world assets and give traders anywhere in the world open access to price exposure without the burdens of owning or transacting real assets.
10 |
11 | The minting of mAssets is decentralized and is undertaken by users throughout the network by opening a position and depositing collateral. Mirror ensures that there is always sufficient collateral within the protocol to cover mAssets, and also manages markets for mAssets by listing them on [Terraswap](protocol/terraswap.md) against UST.
12 |
13 | The [Mirror Token (MIR)](protocol/mirror-token-mir.md) is minted by the protocol and distributed as a reward to reinforce behavior that secures the ecosystem. With it, Mirror ensures liquid mAsset markets by rewarding MIR to users who stake [LP Tokens](protocol/staking-tokens-lp-and-slp.md#lp-tokens) obtained through providing liquidity. Also to incentivize users to ensure mAssets to mimic the price behavior of real-world assets, users who stake sLP Tokens obtained through shorting mAssets are rewarded with MIR. MIR is valuable as it is can be staked to receive voting privileges and to earn a share of the protocol's CDP withdrawal fees.
14 |
15 | Mirror is a project developed and steered by its community: its markets are maintained by its own users through MIR incentives, and the protocol evolves with new ideas through democratic [governance](protocol/governance/).
16 |
17 | ## Learn More
18 |
19 | * Read the whitepaper
20 | * [Version 1](https://docsend.com/view/kcsm42mqiyu5t6ej)
21 | * Version 2
22 |
23 | {% file src=".gitbook/assets/Mirror_Protocol_V2.pdf" %}
24 |
25 |
26 |
27 | * Understand the [protocol](protocol/synopsis.md)
28 | * Read the[ core smart contracts](contracts/architecture.md)
29 |
30 | ### For Developers
31 |
32 | * [Make a liquidation bot with Mirror.js](developer-tools/mirror.js.md)
33 | * [Read the core smart contracts](contracts/architecture.md)
34 |
35 | ## Community
36 |
37 | * [Telegram](https://t.me/mirror\_protocol)
38 | * [Discord](https://discord.gg/KYC22sngFn)
39 | * [Twitter](https://twitter.com/mirror\_protocol)
40 |
--------------------------------------------------------------------------------
/SUMMARY.md:
--------------------------------------------------------------------------------
1 | # Table of contents
2 |
3 | * [Home](README.md)
4 | * [What's new for Mirror v2?](readme/whats-new-for-mirror-v2.md)
5 | * [Interchain Access](networks.md)
6 | * [Security](security.md)
7 | * [FAQ](faq.md)
8 |
9 | ## Protocol
10 |
11 | * [Overview](protocol/synopsis.md)
12 | * [Mirrored Assets (mAssets)](protocol/mirrored-assets-massets.md)
13 | * [Mirror Token (MIR)](protocol/mirror-token-mir.md)
14 | * [Terraswap](protocol/terraswap.md)
15 | * [Staking Tokens (LP & sLP)](protocol/staking-tokens-lp-and-slp.md)
16 | * [Governance](protocol/governance/README.md)
17 | * [Proposal Types](protocol/governance/proposal-types.md)
18 | * [Whitelist Procedure](protocol/governance/whitelist-procedure.md)
19 | * [Delist Procedure](protocol/governance/delist-procedure.md)
20 | * [Pre-IPO Procedure](protocol/governance/pre-ipo-procedure.md)
21 | * [Modify Mint Parameters](protocol/governance/modify-mint-parameters.md)
22 | * [Modify Gov Parameters](protocol/governance/modify-gov-parameters.md)
23 | * [Modify Poll Parameters](protocol/governance/modify-poll-parameters.md)
24 | * [Community Grants](protocol/governance/community-grants.md)
25 | * [Contract Migration Procedure](protocol/governance/contract-migration-procedure.md)
26 | * [Oracle Whitelist Procedure](protocol/governance/oracle-whitelist-procedure.md)
27 | * [Other Proposals](protocol/governance/other-proposals.md)
28 |
29 | ## Developers
30 |
31 | * [mirrorcli](developer-tools/mirror-cli.md)
32 | * [Mirror.js](developer-tools/mirror.js.md)
33 | * [Mirror API](developer-tools/mirror-api.md)
34 |
35 | ## User Guide
36 |
37 | * [Web App](user-guide/getting-started/README.md)
38 | * [Sending Tokens](user-guide/getting-started/sending-tokens.md)
39 | * [Trade](user-guide/getting-started/trade.md)
40 | * [Borrow](user-guide/getting-started/mint-and-burn.md)
41 | * [Farm](user-guide/getting-started/pool.md)
42 | * [Governance](user-guide/getting-started/governance.md)
43 | * [Claim MIR Reward](user-guide/getting-started/claim-mir-reward.md)
44 | * [Mirror on Ethereum](user-guide/meth-dual-yield/README.md)
45 | * [Sending Tokens](user-guide/meth-dual-yield/sending-tokens.md)
46 | * [Trade](user-guide/meth-dual-yield/trade.md)
47 | * [Stake](user-guide/meth-dual-yield/staking\_guide.md)
48 | * [Terra Bridge](user-guide/terra-bridge.md)
49 |
50 | ## Smart Contracts
51 |
52 | * [Architecture](contracts/architecture.md)
53 | * [Collector](contracts/collector.md)
54 | * [Community](contracts/community.md)
55 | * [Factory](contracts/factory.md)
56 | * [Gov](contracts/gov.md)
57 | * [Admin Manager](contracts/admin-manager.md)
58 | * [Mint](contracts/mint.md)
59 | * [Lock](contracts/lock.md)
60 | * [TeFi Oracle](contracts/tefi-oracle.md)
61 | * [Collateral Oracle](contracts/collateral-oracle.md)
62 | * [Staking](contracts/staking.md)
63 | * [Limit Order](contracts/limit-order.md)
64 |
65 | ## External Resources
66 |
67 | * [Mirror Protocol GitHub](https://github.com/Mirror-Protocol)
68 | * [Terraswap App](https://app.terraswap.io)
69 | * [Terra Blockchain](https://terra.money)
70 | * [Mirror Bug Bounty Program](https://immunefi.com/bounty/mirror/)
71 |
--------------------------------------------------------------------------------
/architecture.md:
--------------------------------------------------------------------------------
1 | # Architecture
2 |
3 | This section describes provides a high-level overview regarding the technical implementation of Mirror Protocol.
4 |
5 | {% hint style="warning" %}
6 | Even with a thorough understanding of Mirror Protocol, it is highly recommended to interact with Mirror through client channels such as the Mirror Web App or Mirror.js.
7 | {% endhint %}
8 |
9 | ## Smart Contracts
10 |
11 | The source code for Mirror smart contracts can be found on [GitHub](https://github.com/Mirror-Protocol/mirror-contracts). Mirror Protocol is deployed with one of each of the following contracts, organized through the Factory.
12 |
13 |
14 |
15 |
16 | Contract |
17 | Function |
18 |
19 |
20 |
21 |
22 | Collector
23 | |
24 | Gathers protocol fees incurred from CDP withdrawals and liquidations and
25 | sends to Gov |
26 |
27 |
28 | Community
29 | |
30 | Manages the Community Pool fund |
31 |
32 |
33 | Factory
34 | |
35 | Central directory that organizes the various component contracts of Mirror |
36 |
37 |
38 | Gov
39 | |
40 |
41 | Allows other Mirror contracts to be controlled by decentralized governance
42 | Distributes MIR received from Collector to MIR stakers
43 | |
44 |
45 |
46 | Mint
47 | |
48 | Handles CDP creation, management and liquidation |
49 |
50 |
51 | Oracle
52 | |
53 | Provides interface for oracle feeders to post prices for mAssets |
54 |
55 |
56 | Staking
57 | |
58 | Distributes MIR rewards from block reward to LP stakers |
59 |
60 |
61 |
62 |
63 | The Mirror Token \(MIR\) is a Terraswap CW20 Token instance that is created during the initial bootstrapping of the protocol and is registered with the Mirror Protocol core contracts.
64 |
65 | When new mAssets are whitelisted, Mirror Protocol will create the following contract instances:
66 |
67 | * Terraswap CW20 Token for the new mAsset
68 | * Terraswap Pair for the new mAsset against UST
69 | * Terraswap CW20 Token for the new mAsset's LP Token
70 |
71 |
--------------------------------------------------------------------------------
/contracts/architecture.md:
--------------------------------------------------------------------------------
1 | # Architecture
2 |
3 | This section describes provides a high-level overview regarding the technical implementation of Mirror Protocol.
4 |
5 | {% hint style="info" %}
6 | Even with a thorough understanding of Mirror Protocol, it is highly recommended to interact with Mirror through client channels such as the [Mirror Web App](../user-guide/getting-started/) or [Mirror.js.](../developer-tools/mirror.js.md)
7 | {% endhint %}
8 |
9 | ## Smart Contracts
10 |
11 | The source code for Mirror smart contracts can be found on [GitHub](https://github.com/Mirror-Protocol/mirror-contracts). Mirror Protocol is deployed with one of each of the following contracts, organized through the Factory.
12 |
13 | | Contract | Function |
14 | | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
15 | | [Collector](collector.md) | Gathers protocol fees incurred from CDP withdrawals and liquidations and send to Gov |
16 | | [Community](community.md) | Manages the [Community Pool](../protocol/governance/#community-pool) fund |
17 | | [Factory](factory.md) | Central directory that organizes the various component contracts of Mirror |
18 | | [Gov](gov.md) | Allows other Mirror contracts to be controlled by decentralized governance
Distributes MIR received from Collector to MIR stakers and voters
|
19 | | [Admin Manager](admin-manager.md) | Contract owned by [Gov](gov.md) which enables contract migrations and admin actions through Mirror governance consensus. |
20 | | [Mint](mint.md) | Handles both long and short CDP creation, management, and liquidation |
21 | | [Lock](lock.md) | Responsible for locking up UST from short CDP |
22 | | [Oracle Hub](tefi-oracle.md) | Provides an interface for registering new oracle provider and fetching asset prices with highest priority |
23 | | [Collateral Oracle](collateral-oracle.md) | Feeds price and collateral `multiplier` for each collateral asset type |
24 | | [Staking](staking.md) | Distributes MIR rewards from block reward to LP and sLP stakers |
25 | | [Limit Order](limit-order.md) | Registers and executes swap orders at submitted limit price and amount |
26 |
27 | The Mirror Token (MIR) is a Terraswap CW20 Token instance that is created during the initial bootstrapping of the protocol and is registered with the Mirror Protocol core contracts.
28 |
29 | When new mAssets are whitelisted, Mirror Protocol will create the following contract instances:
30 |
31 | * Terraswap CW20 Token for the new mAsset
32 | * Terraswap Pair for the new mAsset against UST
33 | * Terraswap CW20 Token for the new mAsset's LP Token
34 | * Terraswap CW20 Token for the new mAsset's sLP Token
35 |
--------------------------------------------------------------------------------
/contracts/collector.md:
--------------------------------------------------------------------------------
1 | # Collector
2 |
3 | The Collector accumulates fee rewards generated from CDP withdrawal within the protocol, and converts them into UST in order to purchase MIR from the MIR-UST Terraswap pool. The MIR is then sent to the [Gov Contract](gov.md) to supply trading fee rewards for MIR stakers.
4 |
5 | 
6 |
7 | ## InitMsg
8 |
9 | {% tabs %}
10 | {% tab title="Rust" %}
11 | ```rust
12 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
13 | pub struct InitMsg {
14 | pub distribution_contract: HumanAddr,
15 | pub terraswap_factory: HumanAddr,
16 | pub mirror_token: HumanAddr,
17 | pub base_denom: String,
18 | pub aust_token: HumanAddr,
19 | pub anchor_market: HumanAddr,
20 | pub bluna_token: HumanAddr,
21 | pub bluna_swap_denom: String,
22 | }
23 | ```
24 | {% endtab %}
25 |
26 | {% tab title="JSON" %}
27 | ```javascript
28 | {
29 | "distribution_contract": "terra1...",
30 | "terraswap_factory": "terra1...",
31 | "mirror_token": "terra1...",
32 | "base_denom": "uusd", // native Terra token
33 | "aust_token": "terra1...", //aUST params
34 | "anchor_market": "terra1...",
35 | "bluna_token": "terra1...", //bLuna params
36 | "bluna_swap_denom": "uusd"
37 | }
38 | ```
39 | {% endtab %}
40 | {% endtabs %}
41 |
42 | | Key | Type | Description |
43 | | :--- | :--- | :--- |
44 | | `distribution_contract` | HumanAddr | Contract address of [Mirror Governance](gov.md) |
45 | | `terraswap_factory` | HumanAddr | Contract address of Terraswap Factory |
46 | | `mirror_token` | HumanAddr | Contract address of Mirror Token \(MIR\) |
47 | | `base_denom` | String | Base denomination \(native Terra token denom\) |
48 | | `aust_token` | HumanAddr | Address of aUST token contract |
49 | | `anchor_market` | HumanAddr | Address of Anchor Market contract |
50 | | `bluna_token` | HumanAddr | Address of bLuna token contract |
51 | | `bluna_swap_denom` | String | Base denomination which bLuna to be swapped into \(uusd\) |
52 |
53 | ## HandleMsg
54 |
55 | ### UpdateConfig
56 |
57 | Updates the configuration of Collector contrat. Can only be called by owner.
58 |
59 | {% tabs %}
60 | {% tab title="Rust" %}
61 | ```rust
62 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
63 | #[serde(rename_all = "snake_case")]
64 | pub enum HandleMsg {
65 | UpdateConfig {
66 | owner: Option,
67 | distribution_contract: Option,
68 | terraswap_factory: Option,
69 | mirror_token: Option,
70 | base_denom: Option,
71 | aust_token: Option,
72 | anchor_market: Option,
73 | bluna_token: Option,
74 | bluna_swap_denom: Option,
75 | },
76 | ```
77 | {% endtab %}
78 |
79 | {% tab title="JSON" %}
80 | ```javascript
81 | {
82 | "update_config": {
83 | "owner": "terra1...",
84 | "distribution_contract": "terra1...",
85 | "terraswap_factory": "terra1...",
86 | "mirror_token": "terra1...",
87 | "base_denom": "uusd", // native Terra token
88 | "aust_token": "terra1...", //aUST params
89 | "anchor_market": "terra1...",
90 | "bluna_token": "terra1...", //bLuna params
91 | "bluna_swap_denom": "uusd"
92 | }
93 | }
94 | ```
95 | {% endtab %}
96 | {% endtabs %}
97 |
98 | | Key | Type | Description |
99 | | :--- | :--- | :--- |
100 | | `owner`\* | HumanAddr | Address of the contract owner\* |
101 | | `distribution_contract`\* | HumanAddr | Contract address of [Mirror Governance](gov.md) |
102 | | `terraswap_factory`\* | HumanAddr | Contract address of Terraswap Factory |
103 | | `mirror_token`\* | HumanAddr | Contract address of Mirror Token \(MIR\) |
104 | | `base_denom`\* | String | Base denomination \(native Terra token denom\) |
105 | | `aust_token`\* | HumanAddr | Address of aUST token contract |
106 | | `anchor_market`\* | HumanAddr | Address of Anchor Market contract |
107 | | `bluna_token`\* | HumanAddr | Address of bLuna token contract |
108 | | `bluna_swap_denom`\* | String | Base denomination which bLuna to be swapped into \(uusd\) |
109 |
110 | \*= optional
111 |
112 | ### `Convert`
113 |
114 | Depending on `asset_token`, performs one of the following:
115 |
116 | * if `asset_token` is an mAsset Luna or Anchor sells the contract's balance of that mAsset for UST on Terraswap
117 | * if `asset_token` is the UST token, buys MIR off the MIR/UST Terraswap pool with the contract's UST balance
118 | * if `asset_token` is aUST, or bLuna sells the token based on registered `anchor_market` or `bluna_swap_denom`
119 |
120 | {% tabs %}
121 | {% tab title="Rust" %}
122 | ```rust
123 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
124 | #[serde(rename_all = "snake_case")]
125 | pub enum HandleMsg {
126 | Convert {
127 | asset_token: HumanAddr,
128 | }
129 | }
130 | ```
131 | {% endtab %}
132 |
133 | {% tab title="JSON" %}
134 | ```javascript
135 | {
136 | "convert": {
137 | "asset_token": "terra1..."
138 | }
139 | }
140 | ```
141 | {% endtab %}
142 | {% endtabs %}
143 |
144 | | Key | Type | Description |
145 | | :--- | :--- | :--- |
146 | | `asset_token` | HumanAddr | Contract address of asset to convert |
147 |
148 | ### `LunaSwapHook`
149 |
150 | Hook to swap Luna token to MIR.
151 |
152 | {% tabs %}
153 | {% tab title="Rust" %}
154 | ```rust
155 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
156 | #[serde(rename_all = "snake_case")]
157 | pub enum HandleMsg {
158 | LunaSwapHook {}
159 | }
160 | ```
161 | {% endtab %}
162 |
163 | {% tab title="JSON" %}
164 | ```javascript
165 | {
166 | "send": {}
167 | }
168 | ```
169 | {% endtab %}
170 | {% endtabs %}
171 |
172 | ## QueryMsg
173 |
174 | ### `Config`
175 |
176 | Get the Mirror Collector contract configuration.
177 |
178 | {% tabs %}
179 | {% tab title="Rust" %}
180 | ```rust
181 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
182 | #[serde(rename_all = "snake_case")]
183 | pub enum QueryMsg {
184 | Config {}
185 | }
186 | ```
187 |
188 | #### Response
189 |
190 | ```rust
191 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
192 | pub struct ConfigResponse {
193 | pub owner: HumanAddr,
194 | pub distribution_contract: HumanAddr, // collected rewards receiver
195 | pub terraswap_factory: HumanAddr,
196 | pub mirror_token: HumanAddr,
197 | pub base_denom: String,
198 | pub aust_token: HumanAddr,
199 | pub anchor_market: HumanAddr,
200 | pub bluna_token: HumanAddr,
201 | pub bluna_swap_denom: String,
202 | }
203 | ```
204 |
205 | | Key | Type | Description |
206 | | :--- | :--- | :--- |
207 | | `owner` | HumanAddr | Address of the contract owner\* |
208 | | `distribution_contract` | HumanAddr | Contract address of [Mirror Governance](gov.md) |
209 | | `terraswap_factory` | HumanAddr | Contract address of Terraswap Factory |
210 | | `mirror_token` | HumanAddr | Contract address of Mirror Token \(MIR\) |
211 | | `base_denom` | String | Base denomination \(native Terra token denom\) |
212 | | `aust_token` | HumanAddr | Address of aUST token contract |
213 | | `anchor_market` | HumanAddr | Address of Anchor Market contract |
214 | | `bluna_token` | HumanAddr | Address of bLuna token contract |
215 | | `bluna_swap_denom` | String | Base denomination which bLuna to be swapped into \(uusd\) |
216 | {% endtab %}
217 |
218 | {% tab title="JSON" %}
219 | ```javascript
220 | {
221 | "config": {}
222 | }
223 | ```
224 |
225 | #### Response
226 |
227 | ```rust
228 | {
229 | "config_response": {
230 | "owner": "terra1...",
231 | "distribution_contract": "terra1...",
232 | "terraswap_factory": "terra1...",
233 | "mirror_token": "terra1...",
234 | "base_denom": "uusd", // native Terra token
235 | "aust_token": "terra1...", //aUST params
236 | "anchor_market": "terra1...",
237 | "bluna_token": "terra1...", //bLuna params
238 | "bluna_swap_denom": "uusd"
239 | }
240 | }
241 | ```
242 |
243 | | Key | Type | Description |
244 | | :--- | :--- | :--- |
245 | | `owner` | HumanAddr | Address of the contract owner\* |
246 | | `distribution_contract` | HumanAddr | Contract address of [Mirror Governance](gov.md) |
247 | | `terraswap_factory` | HumanAddr | Contract address of Terraswap Factory |
248 | | `mirror_token` | HumanAddr | Contract address of Mirror Token \(MIR\) |
249 | | `base_denom` | String | Base denomination \(native Terra token denom\) |
250 | | `aust_token` | HumanAddr | Address of aUST token contract |
251 | | `anchor_market` | HumanAddr | Address of Anchor Market contract |
252 | | `bluna_token` | HumanAddr | Address of bLuna token contract |
253 | | `bluna_swap_denom` | String | Base denomination which bLuna to be swapped into \(uusd\) |
254 | {% endtab %}
255 | {% endtabs %}
256 |
257 |
--------------------------------------------------------------------------------
/contracts/community.md:
--------------------------------------------------------------------------------
1 | # Community
2 |
3 | The Community Contract holds the funds of the [Community Pool](../protocol/governance/#community-pool), which can be spent through a governance poll.
4 |
5 | ## InitMsg
6 |
7 | {% tabs %}
8 | {% tab title="Rust" %}
9 | ```rust
10 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
11 | pub struct InitMsg {
12 | pub owner: HumanAddr,
13 | pub mirror_token: HumanAddr,
14 | pub spend_limit: Uint128,
15 | }
16 | ```
17 | {% endtab %}
18 |
19 | {% tab title="JSON" %}
20 | ```javascript
21 | {
22 | "owner": "terra1...",
23 | "mirror_token": "terra1...",
24 | "spend_limit": "123456",
25 | }
26 | ```
27 | {% endtab %}
28 | {% endtabs %}
29 |
30 | | Key | Type | Description |
31 | | :--- | :--- | :--- |
32 | | `owner` | HumanAddr | Owner address |
33 | | `mirror_token` | HumanAddr | Contract address of the Mirror Token |
34 | | `spend_limit` | Uint128 | Max amount of disbursement |
35 |
36 | ## HandleMsg
37 |
38 | ### `UpdateConfig`
39 |
40 | Can only be issued by the owner. Updates the Community Contract's configuration.
41 |
42 | {% tabs %}
43 | {% tab title="Rust" %}
44 | ```rust
45 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
46 | #[serde(rename_all = "snake_case")]
47 | pub enum HandleMsg {
48 | UpdateConfig {
49 | owner: Option,
50 | spend_limit: Option,
51 | }
52 | }
53 | ```
54 | {% endtab %}
55 |
56 | {% tab title="JSON" %}
57 | ```javascript
58 | {
59 | "update_config": {
60 | "owner": "terra1...",
61 | "spend_limit": "10000000"
62 | }
63 | }
64 | ```
65 | {% endtab %}
66 | {% endtabs %}
67 |
68 | | Key | Type | Description |
69 | | :--- | :--- | :--- |
70 | | `owner`\* | HumanAddr | New contract owner |
71 | | `spend_limit`\* | Uint128 | New spending limit |
72 |
73 | \* = optional
74 |
75 | ### `Spend`
76 |
77 | Can only be issued by the owner. Sends the amount of MIR tokens to the designated recipient.
78 |
79 | {% tabs %}
80 | {% tab title="Rust" %}
81 | ```rust
82 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
83 | #[serde(rename_all = "snake_case")]
84 | pub enum HandleMsg {
85 | Spend {
86 | amount: Uint128,
87 | recipient: HumanAddr,
88 | }
89 | }
90 | ```
91 | {% endtab %}
92 |
93 | {% tab title="JSON" %}
94 | ```javascript
95 | {
96 | "spend": {
97 | "amount": "10000000",
98 | "recipient": "terra1..."
99 | }
100 | }
101 | ```
102 | {% endtab %}
103 | {% endtabs %}
104 |
105 | | Key | Type | Description |
106 | | :--- | :--- | :--- |
107 | | `amount` | Uint128 | Amount of MIR in contract's balance to send |
108 | | `recipient` | HumanAddr | Recipient of the funds |
109 |
110 | ## QueryMsg
111 |
112 | ### `Config`
113 |
114 | Gets the Mirror Community contract's configuration.
115 |
116 | {% tabs %}
117 | {% tab title="Rust" %}
118 | ```rust
119 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
120 | #[serde(rename_all = "snake_case")]
121 | pub enum QueryMsg {
122 | Config {
123 | }
124 | }
125 | ```
126 |
127 | #### Response
128 |
129 | ```rust
130 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
131 | pub struct ConfigResponse {
132 | pub owner: HumanAddr,
133 | pub mirror_token: HumanAddr,
134 | pub spend_limit: Uint128,
135 | }
136 | ```
137 |
138 | | Key | Type | Description |
139 | | :--- | :--- | :--- |
140 | | `owner` | HumanAddr | Owner address |
141 | | `mirror_token` | HumanAddr | Contract address of the Mirror Token |
142 | | `spend_limit` | Uint128 | Max amount of disbursement |
143 | {% endtab %}
144 |
145 | {% tab title="JSON" %}
146 | ```javascript
147 | {
148 | "config": {}
149 | }
150 | ```
151 |
152 | #### Response
153 |
154 | ```rust
155 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
156 | pub struct ConfigResponse {
157 | pub owner: HumanAddr,
158 | pub mirror_token: HumanAddr,
159 | pub spend_limit: Uint128,
160 | }
161 | ```
162 |
163 | | Key | Type | Description |
164 | | :--- | :--- | :--- |
165 | | `owner` | HumanAddr | Owner address |
166 | | `mirror_token` | HumanAddr | Contract address of the Mirror Token |
167 | | `spend_limit` | Uint128 | Max amount of disbursement |
168 | {% endtab %}
169 | {% endtabs %}
170 |
171 |
--------------------------------------------------------------------------------
/developer-tools/mirror-api.md:
--------------------------------------------------------------------------------
1 | # Mirror API
2 |
3 | {% hint style="info" %}
4 | This section provides a brief guide on how to get set up with Mirror API. For more information, be sure to check out source code and documentation on [GitHub](https://github.com/Mirror-Protocol/mirror-graph).
5 | {% endhint %}
6 |
7 | The **Mirror API** \(also known as **Mirror Graph**\) is an GraphQL-based data service that allows anybody to query data regarding the current and aggregate application state of the Mirror Protocol. Potential consumers of data include: dashboards, mAsset arbitrage trading bots, dApp activity trackers, etc.
8 |
9 | ## Endpoints
10 |
11 | Since Mirror API is a GraphQL-based data service, it is not accessed like a traditional REST API with many different endpoints. Instead, there is only one endpoint served over HTTP, to which you can submit a POST request containing a GraphQL query.
12 |
13 | | | Chain ID | URL |
14 | | :--- | :--- | :--- |
15 | | Mainnet | `columbus-5` | [https://graph.mirror.finance/graphql](https://graph.mirror.finance/graphql) |
16 | | Testnet | `bombay-12` | [https://bombay-graph.mirror.finance/graphql](https://bombay-graph.mirror.finance/graphql) |
17 |
18 | ## Usage
19 |
20 | You can access Mirror API through a variety of interfaces that support GraphQL. Below are some examples of how you can use Mirror API:
21 |
22 | ### GraphiQL
23 |
24 | Playground: [https://graph.mirror.finance/graphql](https://tequila-graph.mirror.finance/graphql)
25 |
26 | An easy way to explore the Mirror API is to use your browser to access the GraphiQL interface served directly on the endpoint address. GraphiQL is an interactive interface where you can construct queries alongside easy access to the API's schema and documentation. This allows for quick, iterative experimentation as you can directly run your queries and compare results.
27 |
28 | ### HTTP
29 |
30 | You can access Mirror API through standard HTTP by simply sending a GraphQL query to the endpoint through a POST request. The response will be in JSON.
31 |
32 | If you intend to use Mirror API in a programmatic context \(like within JavaScript or Python\), it is recommended to use a GraphQL client such as [Relay](https://relay.dev/) or [Apollo](https://github.com/apollographql/apollo-client) to handle the ceremony of making HTTP requests and parsing returned responses.
33 |
34 | #### Example using cURL
35 |
36 | ```bash
37 | curl -X POST \
38 | -H "Content-Type: application/json" \
39 | -d '{"query": "{ assets { symbol name } }"}' \
40 | https://tequila-graph.mirror.finance/graphql
41 | ```
42 |
43 | #### Response \(prettified\)
44 |
45 | ```javascript
46 | {
47 | "data":{
48 | "assets":[
49 | {
50 | "symbol":"MIR",
51 | "name":"Mirror",
52 | "prices":{
53 | "price":null
54 | }
55 | },
56 | {
57 | "symbol":"mAAPL",
58 | "name":"Apple",
59 | "prices":{
60 | "price":"120.825733"
61 | }
62 | },
63 | {
64 | "symbol":"mGOOGL",
65 | "name":"Google",
66 | "prices":{
67 | "price":"1766.556244"
68 | }
69 | },
70 | ...
71 | ]
72 | }
73 | ```
74 |
75 |
--------------------------------------------------------------------------------
/developer-tools/mirror-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Command-line interface for Mirror Protocol
3 | ---
4 |
5 | # mirrorcli
6 |
7 | {% hint style="info" %}
8 | This section provides a brief guide on how to use Mirror Protocol via `mirrorcli`. For more information, please check its source code and documentation on [GitHub](https://github.com/Mirror-Protocol/mirrorcli).
9 | {% endhint %}
10 |
11 | `mirrorcli` is a command-line interface for Mirror Protocol on Terra and allows more advanced users to perform operations directly from their shell or terminal without having to interact with a graphical interface. `mirrorcli` is built on top of `terracli` and allows you to use keys saved in its keychain.
12 |
13 | ## Installation
14 |
15 | ### Requirements
16 |
17 | * Make sure your have `terracli` installed. `terracli` is a binary that is shipped with [Terra Core](https://github.com/terra-project/core) and installed in your GOPATH.
18 | * Have Node.js v10+ installed with NPM
19 |
20 | You can install `mirrorcli` through NPM:
21 |
22 | ```bash
23 | $ npm install -g @mirror-protocol/mirrorcli
24 | ```
25 |
26 | ## Configuration
27 |
28 | On first launch, `mirrorcli` will generate a `~/.mirrorclirc.json` in your `$HOME` directory, which will be used in subsequent sessions to specify settings such as LCD provider, gas prices for fee estimation, as well as contract addresses. It will come pre-configured with the official contracts for the mainnet version of Mirror on its `columbus-4` setting.
29 |
30 | The following instructions show you how to modify settings using the `tequila-0004` network by default:
31 |
32 | ### Specifying LCD settings
33 |
34 | Each network config should define how to connect to the Terra blockchain via LCD parameters.
35 |
36 | ```javascript
37 | {
38 | "networks": {
39 | "tequila-0004": {
40 | "lcd": {
41 | "chainId": "tequila-0004",
42 | "url": "https://tequila-lcd.terra.dev",
43 | "gasPrices": {
44 | "uluna": 0.15,
45 | "usdr": 0.1018,
46 | "uusd": 0.15,
47 | "ukrw": 178.05,
48 | "umnt": 431.6259
49 | },
50 | "gasAdjustment": 1.2
51 | },
52 | ...
53 | }
54 | }
55 | }
56 | ```
57 |
58 | ### Specifying Contracts
59 |
60 | Each network configuration should point to the correct Mirror core contract addresses.
61 |
62 | ```javascript
63 | {
64 | "networks": {
65 | "tequila-0004": {
66 | ...
67 | "contracts": {
68 | "collector": "terra1v046ktavwzlyct5gh8ls767fh7hc4gxc95grxy",
69 | "community": "terra10qm80sfht0zhh3gaeej7sd4f92tswc44fn000q",
70 | "factory": "terra10l9xc9eyrpxd5tqjgy6uxrw7dd9cv897cw8wdr",
71 | "gov": "terra12r5ghc6ppewcdcs3hkewrz24ey6xl7mmpk478s",
72 | "mint": "terra1s9ehcjv0dqj2gsl72xrpp0ga5fql7fj7y3kq3w",
73 | "oracle": "terra1uvxhec74deupp47enh7z5pk55f3cvcz8nj4ww9",
74 | "staking": "terra1a06dgl27rhujjphsn4drl242ufws267qxypptx",
75 | "terraswap": "terra18qpjm4zkvqnpjpw0zn0tdr8gdzvt8au35v45xf"
76 | },
77 | ...
78 | }
79 | }
80 | ```
81 |
82 | ### Specifying the Network
83 |
84 | By default, `mirrorcli` will use the network setting for `columbus-4` configured in `~/.mirrorclirc.json`. You can direct `mirrorcli` to use a different network configuration by changing the value of the `MIRRORCLI_NETWORK` environment variable.
85 |
86 | #### Example
87 |
88 | ```text
89 | MIRRORCLI_NETWORK=tequila-0004 mirrorcli x mint [deposit ...]
90 | ```
91 |
92 | OR
93 |
94 | ```bash
95 | export MIRRORCLI_NETWORK=tequila-0004
96 | mirrorcli x mint [deposit ...]
97 | ```
98 |
99 | ## Usage
100 |
101 | Usage information can be found on [GitHub](https://github.com/mirror-protocol/mirrorcli).
102 |
103 |
--------------------------------------------------------------------------------
/developer-tools/mirror.js.md:
--------------------------------------------------------------------------------
1 | # Mirror.js
2 |
3 | {% hint style="info" %}
4 | This section provides a brief guide on how to get set up with Mirror.js. For more information, be sure to check out source code and documentation on [GitHub](https://github.com/Mirror-Protocol/mirror.js).
5 | {% endhint %}
6 |
7 | Mirror.js is a client SDK for building applications that can interact with Mirror Protocol from within JavaScript runtimes, such as web browsers, server backends, and on mobile through React Native.
8 |
9 | You can find a reference of the Mirror.js API [here](https://mirror-protocol.github.io/mirror.js/).
10 |
11 | ## Getting Mirror.js
12 |
13 | Mirror.js is available as a package on NPM and is intended to be used alongside Terra.js.
14 |
15 | Add both:
16 |
17 | * `@terra-money/terra.js`
18 | * `@mirror-protocol/mirror.js`
19 |
20 | To your JavaScript project's `package.json` as dependencies using your preferred package manager:
21 |
22 | ```bash
23 | $ npm install -S @terra-money/terra.js @mirror-protocol/mirror.js
24 | ```
25 |
26 | ## Usage
27 |
28 | ### `Mirror` object
29 |
30 | Mirror.js provides facilities for 2 main use cases:
31 |
32 | * query: runs smart contract queries through LCD
33 | * execute: creates proper `MsgExecuteContract` objects to be used in transactions
34 |
35 | Both of these functions are accessible through the [`Mirror`](https://mirror-protocol.github.io/mirror.js/classes/mirror.html) object.
36 |
37 | To create the Mirror object:
38 |
39 | ```typescript
40 | import { LCDClient } from '@terra-money/terra.js';
41 | import { Mirror } from '@mirror-protocol/mirror.js';
42 |
43 | // default -- uses Columbus-4 core contract addresses
44 | const mirror = new Mirror();
45 |
46 | // optional -- specify contract addresses and assets
47 | const mirror = new Mirror({
48 | lcd: new LCDClient(...),
49 | key: new MnemonicKey(), // or other Terra.js-compliant key
50 | collector: 'terra1...',
51 | community: 'terra1...',
52 | factory: 'terra1...',
53 | gov: 'terra1...',
54 | mint: 'terra1...',
55 | oracle: 'terra1...',
56 | staking: 'terra1...',
57 | mirrorToken: 'terra1...',
58 | terraswapFactory: 'terra1...',
59 | assets: {
60 | MIR: {
61 | name: 'Mirror';
62 | symbol: 'MIR';
63 | token: 'terra1...'; // Terraswap token contract
64 | lpToken: 'terra1...'; // Terraswap LP token contract
65 | pair: 'terra1...'; // Terraswap pair contract against UST
66 | },
67 | mAAPL: {
68 | name: 'Mirrored Apple, Inc. stock';
69 | symbol: 'mAAPL';
70 | token: 'terra1...'; // Terraswap token contract
71 | lpToken: 'terra1...'; // Terraswap LP token contract
72 | pair: 'terra1...'; // Terraswap pair contract against UST
73 | },
74 | ...
75 | }
76 | });
77 | ```
78 |
79 | ### Query
80 |
81 | The `Mirror` object contains contract queries for all of the Mirror core contracts, which it will run against the provided `LCDClient.`
82 |
83 | ```typescript
84 | async function main() {
85 | const result = await mirror.factory.getConfig();
86 | }
87 |
88 | main().catch(console.error);
89 | ```
90 |
91 | Each contract has various query operations, which you can discover in the reference [API documentation](https://mirror-protocol.github.io/mirror.js/).
92 |
93 | ### Executing
94 |
95 | The `Mirror` object contains functions for generating proper `MsgExecuteContract` messages to be included in a transaction and broadcasted.
96 |
97 | ```typescript
98 | const wallet = mirror.lcd.wallet(mirror.key);
99 |
100 | async function sendMIR() {
101 | const tx = await wallet.createAndSignTx({
102 | msgs: [mirror.mirrorToken.transfer('terra1...', 1_000_000)],
103 | fee: new StdFee(200_000, { uluna: 20_000_000 })
104 | });
105 | return await mirror.lcd.tx.broadcast(tx);
106 | }
107 |
108 | async function stakeLPTokens() {
109 | const { mAAPL } = mirror.assets;
110 | const tx = await wallet.createAndSignTx({
111 | msgs: [
112 | mirror.staking.bond(
113 | mAAPL.pair.contractAddress,
114 | 500_000_000,
115 | mAAPL.lpToken
116 | )
117 | ],
118 | fee: new StdFee(200_000, { uluna: 20_000_000 })
119 | });
120 | return await mirror.lcd.tx.broadcast(tx);
121 | }
122 |
123 | async function main() {
124 | await sendMIR();
125 | await stakeLPTokens();
126 | }
127 |
128 | main().catch(console.error);
129 | ```
130 |
131 |
--------------------------------------------------------------------------------
/faq.md:
--------------------------------------------------------------------------------
1 | # FAQ
2 |
3 | #### 1. What are Mirror synthetic assets?
4 |
5 | The aim of mAssets is to mimic the price trends of real-world exchange-traded underlying assets and give investors access to not only home markets but also foreign markets as well. While mAAPL tries to closely represent the movements of AAPL stock, users are not afforded any rights of the underlying asset and tracking errors may arise due to the imbalances in trading volume in the underlying markets and the Terraswap markets.
6 |
7 | #### 2. How are mAssets actually traded?
8 |
9 | mAssets are traded through interacting with liquidity pools on Terraswap. For more information about the mechanism of the Terraswap, please see [here](https://terraswap.io).
10 |
11 | #### 3. Do I have to go through the KYC process?
12 |
13 | Mirror aims to be decentralized in all aspects including whitelisting, governance, minting, and trading. As a result, as long as you have UST balance, you are able to perform all functions available on both the Mirror protocol as well as Mirror protocol-owned Terraswap pools without any need to go through a KYC process.
14 |
15 | #### 4. How are corporate actions and dividends handled?
16 |
17 | Corporate actions are handled through an asset migration process discussed [here](protocol/mirrored-assets-massets.md#deprecation-and-migration). Given that Mirrored assets do not confer any rights of the underlying asset, Mirrored assets do not give dividends.
18 |
19 | #### 5. What are the trading commissions composed of?
20 |
21 | There is a fixed fee called the LP commission is 0.30% which serves as a reward for liquidity providers for Mirror-related pools on Terraswap. More detailed information can be found [here](protocol/terraswap.md).
22 |
23 | #### 6. What does it mean to mint an mAsset?
24 |
25 | All mAssets that are purchased or sold on Mirror were, at one point, minted. Minting is the process of providing collateral to issue a “synthetic” mAsset.
26 |
27 | Price oracles play an important role in the minting process and are used for two key functions: First, they help determine the amount of collateral required for minting an mAsset. Second, they help determine whether sufficient collateral is backing existing mAssets.
28 |
29 | In the below example (Figure 1), assume that a minter provided $150 worth of stablecoin to issue an mAsset worth $90 and that the minimum collateral ratio (MCR) is 150%. If at time T=2, the asset’s value increases to $101, then the collateral ratio would be 149% ($101/$150) and would fall below the MCR.
30 |
31 | When this happens, the Mirror protocol will seize a portion of the collateral and initiate an auction for anyone willing to sell the mAsset in exchange. To incentivize this liquidation, the Mirror protocol allows anyone to purchase this seized collateral at a discount until the collateral ratio reaches the MCR again. In the example, using the collateral supplied at T=0, users will be able to send mAsset tokens in exchange for discounted collateral until the collateral ratio reaches 150% again at T=2.01. If, for instance, the asset price increases again at T=3, then the process repeats itself until the collateral ratio reaches 150%.
32 |
33 | 
34 |
35 | _Figure 1: When the minted asset’s price rises and the collateral ratio falls below the minimum collateral ratio, the protocol will sell collateral to buy back shares of the minted asset to burn. (_[_Link to calculations_](https://docs.google.com/spreadsheets/d/1RUlBliHX-AnigSieF4jC15xhG\_gGSnfTNz7g4mkHV7w/edit#gid=0)_)_
36 |
37 | #### 7. What hours can I trade and mint mAssets?
38 |
39 | mAsset liquidity is provided directly through the Terraswap liquidity pools, and as such, they can be traded irrespective of market hours.
40 |
41 | Unlike trading, the oracle feeder is used to price the value of mAsset for minting. The oracle feeder stops operating when real-world market hours are closed, so minting transactions on Mirror Protocol will fail.
42 |
43 | #### 8. How do mAssets keep their peg to real assets?
44 |
45 | mAssets are soft pegged to the oracle price, which means that the Mirror protocol does not directly rely on price oracles to determine the trading prices of mAssets. Instead, Mirror relies on a combination of the minting liquidation process, arbitrageurs, and governance changes to keep mAsset prices close to oracle prices.
46 |
47 | **Minting Liquidation**
48 |
49 | As the price of an asset XXX rises on the NASDAQ, minted mXXX may fall below the minimum collateral ratio (MCR) and trigger a liquidation event. When that happens, the Mirror protocol will automatically sell collateral to buy mXXX until the collateral ratio reaches the MCR again. This buying pressure created for mXXX will drive prices higher and will help the price of mXXX converge with the price on the NASDAQ.
50 |
51 | **Arbitrageurs**
52 |
53 | If the price of XXX on the NASDAQ were $1000, but the price of mXXX on Mirror were $900, an arbitrageur would buy the asset with the assumption that in the near future, with enough buying pressure, the mXXX price would eventually converge to the NASDAQ price of $1000. At that point, the arbitrageur would then sell mXXX at $1000, taking a profit of $100 per share. Similarly, if the price of XXX on the NASDAQ were $1000, but the price of mXXX on Mirror were $1100, an arbitrageur would provide collateral, mint the mXXX asset, and sell it at $1100 with the assumption that in the near future, with enough selling pressure, the mXXX price would eventually converge to the NASDAQ price of $1000. At that point, the arbitrageur would then repurchase mXXX at $1000 and then burn it to regain their collateral, taking a profit of $100 per share.
54 |
55 | **Governance**
56 |
57 | Without the trust that mAssets should be pegged to oracle prices, mAsset prices could theoretically diverge from oracle prices. Unlike minting liquidation which can create buying pressure to drive prices upwards, the Mirror protocol can only drive downward pressure to the minimum collateral price of an mAsset. For instance, if the MCR of an asset is 150% and the oracle price of XXX is $100, then the price of an mXXX could, in theory, reach $150. However, once the price of mXXX is greater than $150, then arbitrageurs can simply mint mXXX with $150 worth of collateral, sell the mXXX for $160, and forego the collateral. Therefore, the theoretical maximum price of mXXX would be $150. If, in practice, mAsset prices did drift significantly higher than oracle prices, governance could be used to solve this by creating incentives to mint and sell assets. For instance, the MCR could be lowered in order to reign in mAsset prices or negative selling fees could be used to incentivize users to mint assets and sell them in the market. Changing governance, however, would require a proposal and the collective agreement of MIR stakers.
58 |
59 | #### 9. What are the benefits of providing liquidity?
60 |
61 | Providing liquidity for the Mirror Protocol is equivalent to locking up your liquidity in Terraswap. By doing so, you ensure that there is a sufficient supply of assets to be traded at any point in time. As compensation for providing liquidity, you will receive LP tokens which accrue trading commission charged by the protocol. In addition, staking these LP tokens provides inflationary rewards in the form of MIR tokens. To learn more about the specifics, see [here](broken-reference).
62 |
63 | #### 10. Is there any risk to providing liquidity to the Terraswap pools?
64 |
65 | You are able to remove your liquidity provided at any point in time. While there is no risk of losing any of your liquidity in most circumstances, in the case of large changes in price of the tokens provided, the return on providing liquidity may be less than the absolute price variation (known as _impermanent loss_). This is the [same risk](https://uniswap.org/docs/v2/advanced-topics/understanding-returns/) faced by liquidity providers on Uniswap.
66 |
67 | #### 11. What can we do with Mirror tokens?
68 |
69 | MIR tokens have a variety of functions on the Mirror Protocol. The first and foremost functionality of the token allows holders to participate in [governance](protocol/governance/) on the protocol. In addition, by providing liquidity to the MIR token pool, MIR LP tokens issued can be further staked in order to receive CDP withdrawal fees in the form of MIR tokens. Learn more [here](protocol/mirror-token-mir.md).
70 |
71 | #### 12. What is the MIR Token (MIR) distribution and vesting schedule?
72 |
73 | See [here](protocol/mirror-token-mir.md#cumulative-distribution-schedule-in-millions).
74 |
75 | #### 13. Have the Mirror Protocol smart contracts been audited?
76 |
77 | Yes, you can find the audits reports [here](security.md#audits).
78 |
79 |
80 |
81 | _Special thanks to _[_wengzilla_](https://github.com/wengzilla)_ for edits and improvements to the FAQ._
82 |
--------------------------------------------------------------------------------
/images/faq_minting_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mirror-Protocol/docs/c721029cbb38b574b50acbfc492d568b3dd34810/images/faq_minting_example.png
--------------------------------------------------------------------------------
/protocol/governance/README.md:
--------------------------------------------------------------------------------
1 | # Governance
2 |
3 | {% hint style="info" %}
4 | All community discussion can be done at the [Mirror Protocol Forum](https://forum.mirror.finance/)
5 | {% endhint %}
6 |
7 | Governance is the democratized process through which proposals for change in Mirror Protocol are introduced and accepted by the community through voting.
8 |
9 | There are no admin keys with privileged access. After the initial bootstrapping of contracts, the [Gov contract](../../contracts/gov.md) is set to be the owner of the [Mirror Protocol contracts](../../contracts/architecture.md) and all changes must be made through the governance with the [procedure](./#procedure) defined in this section.
10 |
11 | ## Mirror Token
12 |
13 | The [Mirror Token](../mirror-token-mir.md) \(MIR\) serves as Mirror Protocol's governance token. Only users with a staked MIR position can vote on polls, and each user receives voting power weighted by their amount of staked MIR. For every poll, a user can choose to allocate up to their total staked MIR. Users with higher MIR stake will therefore have more influence when deciding in governance polls.
14 |
15 | {% hint style="info" %}
16 | Although a user receives 1 vote per staked MIR for every poll, voting in polls does not have any effect on the user's current staking balance.
17 | {% endhint %}
18 |
19 | ## Polls
20 |
21 | New governance proposals in Mirror are called **polls.** Any user can create a poll by paying an initial deposit of MIR tokens. If the poll fails to pass the minimum voting quorum, the MIR deposit is given to MIR stakers and distributed proportionately according to their relative stake.
22 |
23 | Polls consist of a text description of the proposition \(with perhaps an external link to further resources / discussions\), and include an executable message encoding the instructions to be run if it passes. The message will be executed with the privileges of the [Mirror Gov contract](../../contracts/gov.md), which has the power to invoke any function defined by the other Mirror smart contracts.
24 |
25 | Once submitted, a poll can be voted on by the community until its voting period has concluded. If the poll passes quorum and threshold conditions \(defined below\), it is ratified and its contents can automatically be applied after a set period of time. These changes take effect without requiring updates to the core Mirror Protocol contracts.
26 |
27 | {% hint style="danger" %}
28 | Staked MIR tokens utilized in on-going polls cannot be withdrawn until the poll completes. In addition, the number of MIR used in a proposal **cannot** be modified after the vote as been submitted.
29 | {% endhint %}
30 |
31 | ## Procedure
32 |
33 | The following steps outline the governance procedure:
34 |
35 | 1. A new poll is created with an initial deposit that meets `proposal_deposit`
36 | 2. The poll enters the voting phase, where it can voted for by anybody with a staked MIR position. Users can vote `yes`, `no` or `abstain` and can assign how many of their staked MIR to use for voting.
37 | 3. The voting period ends after `voting_period` blocks have passed.
38 | 4. The poll's votes are tallied and **passes** if both quorum \(minimum participation of all staked MIR\) and threshold \(minimum ratio of `yes` to `no` votes\) are met.
39 | 5. If the poll passes, its contents will be executed after `effective_delay` blocks have ended. The poll must be executed prior to `expiration_period`, otherwise it will automatically expire and no longer be considered valid.
40 |
41 |
--------------------------------------------------------------------------------
/protocol/governance/community-grants.md:
--------------------------------------------------------------------------------
1 | # Community Grants
2 |
3 | The **community pool** is a reserve of MIR tokens that is held by governance, meant for funding future projects and contributors to the Mirror protocol. The community pool will total to [128.1M MIR](../mirror-token-mir.md#cumulative-distribution-schedule-in-millions) tokens over the span of four years. The community pool's initial funds are minted at the start when Mirror contracts are first created. A governance poll must be created in order to spend tokens from the fund.
4 |
5 | The purpose of the grant is to empower ecosystem teams to build necessary tools and infrastructure that are not provided at the launch of the protocol. Projects that are value additive to the protocol and/or make user experience better such as the creation of new smart contract applications that enable greater access across more markets or dashboards and other tools for managing their assets on the Mirror Protocol are eligible for community grant funding. Any proposal for funding that is deemed acceptable by the community and passes a vote can receive funding from the community pool.
6 |
7 | The maximum allowable grant is the current size of the community pool at the submission time of the poll. For more information, please see the [**Spend Community Pool**](proposal-types.md#6-spend-community-pool) proposal example.
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/protocol/governance/contract-migration-procedure.md:
--------------------------------------------------------------------------------
1 | # Contract Migration Procedure
2 |
3 | ### Migrations and Updates
4 |
5 | The Mirror Protocol allows developers to propose a smart contract migration through Mirror governance consensus. Any developer who can build Mirror’s smart contracts can submit these polls to allow feature upgrades on Mirror Protocol’s core mechanism.
6 |
7 | The Mirror Admin Manager contract holds the admin keys which can only be used when this specific governance poll passes, and initiates admin actions detailed by the poll.
8 |
9 | {% hint style="warning" %}
10 | There is no user interface on the web application to create migration polls since these are are highly sensitive polls that can cause unwanted results for Mirror Protocol.
11 |
12 | Mirror users can still view and vote on polls created by developers that are able to interact with Mirror governance contract without a user interface.
13 | {% endhint %}
14 |
15 | #### Migration Poll
16 |
17 | This poll allows existing Mirror contracts to be migrated to newly built versions. The developer wanting to create this poll must include the following message within the `admin_action` parameter of the `CreatePoll` transaction:
18 |
19 | ```rust
20 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
21 | #[serde(rename_all = "snake_case")]
22 | pub enum ExecuteMsg {
23 | ExecuteMigrations {
24 | migrations: Vec<(String, u64, Binary)>,
25 | }
26 | ```
27 |
28 | where `string` is the contract address to be migrated, `u64` is the code ID, and `Binary` is the migration execution message.
29 |
30 | #### Admin Key Transfer
31 |
32 | This poll is used for special occasions where the admin key for migration is required by an entity that is preparing an update to prepare for Terra blockchain or CosmWasm contract updates.
33 |
34 | To create this poll, the following message must be included within the `admin_action` parameter of `CreatePoll` transaction:
35 |
36 | ```rust
37 | #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
38 | #[serde(rename_all = "snake_case")]
39 | pub enum ExecuteMsg {
40 | AuthorizeClaim { authorized_addr: String },
41 | ```
42 |
43 | where `authorized_addr` is the address to transfer the admin keys for `admin_claim_period`.
44 |
--------------------------------------------------------------------------------
/protocol/governance/delist-procedure.md:
--------------------------------------------------------------------------------
1 | # Delist Procedure
2 |
3 | As whitelisting of a new mAsset is fully governed in a decentralized way by MIR stakers, they can also choose to [**delist**](../mirrored-assets-massets.md#delisting-and-migration) a specific mAsset that is already registered on Mirror Protocol by submitting a new poll which should define which mAsset should be delisted.
4 |
5 | When the submitted poll is approved by governance, the corresponding mAsset will be labeled as delisted and users will be able to unstake LP & sLP, withdraw collateral, close CDP and burn their delisted asset holdings against any CDP to claim the respective value of the collateral from any position.
6 |
7 | To read more about asset delisting process, refer to this [document](../mirrored-assets-massets.md#delisting-and-migration).
8 |
9 |
--------------------------------------------------------------------------------
/protocol/governance/modify-gov-parameters.md:
--------------------------------------------------------------------------------
1 | # Modify Gov Parameters
2 |
3 | Currently on Mirror Protocol, the`Effective Delay`and `Voter Weight`have been set as follows:
4 |
5 | | Effective Delay | 86400 seconds (1 day) |
6 | | --------------- | --------------------- |
7 | | Voter Weight | 50% |
8 |
9 | For more specific information about each parameter, please refer to [**Modify Gov Parameters**](proposal-types.md#5-modify-governance-parameters).
10 |
11 | When submitting a poll to change a governance parameter, at least one field must be entered. Note that only one optional parameter may be requested to be changed per poll.
12 |
--------------------------------------------------------------------------------
/protocol/governance/modify-mint-parameters.md:
--------------------------------------------------------------------------------
1 | # Modify Mint Parameters
2 |
3 | The mechanics of a mint position on the Mirror Protocol is determined by two parameters, `Auction Discount` and `Minimum Collateral Ratio`. At the genesis of the Mirror Protocol, these two parameters have been uniformly set to 20% and 150% respectively for all listed mAssets.
4 |
5 | However, the structure of financial markets of the underlying assets are not static, so it is not unreasonable to expect that the Mirror Protocol should also be able to adapt to these changes. To further account for the fact that mirrored assets come in a variety of classes, the two mint parameters can be voted separately for each individual asset.
6 |
7 | The community is able to change the two parameters of an existing mAsset through a [**Modify Mint Parameters**](proposal-types.md#4-modify-mint-parameters) **** poll.
8 |
--------------------------------------------------------------------------------
/protocol/governance/modify-poll-parameters.md:
--------------------------------------------------------------------------------
1 | # Modify Poll Parameters
2 |
3 | On Mirror Protocol, there are three different types of governance polls:
4 |
5 | * **Default Poll**: Polls including text poll, community grants, parameter registration and modification polls and asset whitelisting polls.
6 | * **Migration Poll**: Polls to execute migrations through Mirror governance.
7 | * **Authorization Poll:** Polls to transfer admin key rights to an address specified through Mirror Governance, or to modify governance configurations.
8 |
9 | Poll parameter modifications are considered as **Authorization Poll,** and has the same `quorum`, `threshold`, `voting_period` and `proposal deposit`.
10 |
11 | {% hint style="warning" %}
12 | Due to sensitivity of **migration** and **authorization** polls, Mirror web application does not provide user interface to submit these polls to modify the configuration of the two polls.
13 | {% endhint %}
14 |
15 | ### 1. Default Poll Parameter
16 |
17 | Default poll parameters can be modified by submitting a poll on Mirror web application. Currently, the default poll parameters are as below:
18 |
19 | | Parameter | Current Value |
20 | | ---------------- | ----------------------- |
21 | | Proposal Deposit | 1,000 MIR |
22 | | Voting Period | 604800 seconds (7 days) |
23 | | Quorum | 18% |
24 | | Threshold | 50% |
25 |
26 | ### 2. Migration Poll Parameter
27 |
28 | The developer wanting to create polls to modify migration poll parameters must include the following message within the `admin_action` parameter of the `CreatePoll` transaction:
29 |
30 | ```rust
31 | pub enum PollAdminAction {
32 | UpdateConfig {
33 | migration_poll_config: Option,
34 | },
35 | ```
36 |
37 | Currently, the migration poll parameters are as below:
38 |
39 | | Parameter | Current Value |
40 | | ---------------- | ----------------------------------------------------------------------------------------------------------------- |
41 | | Proposal Deposit | 2,000 MIR |
42 | | Voting Period | 7 days (but if poll reaches quorum and threshold within the voting period, then poll can be executed immediately) |
43 | | Quorum | 40% |
44 | | Threshold | 66.7% |
45 |
46 | ### 3. Authorization Poll
47 |
48 | The following message has to be included in `admin_action` parameter of `CreatePoll` transaction in order to create Authorization poll:
49 |
50 | ```rust
51 | pub enum PollAdminAction {
52 | UpdateConfig {
53 | auth_admin_poll_config: Option,
54 | },
55 | ```
56 |
57 | Currently, the authorization poll parameters are as below:
58 |
59 | | Parameter | Current Value |
60 | | ------------------ | ----------------------------------------------------------------------------------------------------------------- |
61 | | Proposal Deposit | 3,000 MIR |
62 | | Voting Period | 7 days (but if poll reaches quorum and threshold within the voting period, then poll can be executed immediately) |
63 | | Quorum | 40% |
64 | | Threshold | 66.7% |
65 | | Admin claim period | 7 days |
66 |
67 |
--------------------------------------------------------------------------------
/protocol/governance/oracle-whitelist-procedure.md:
--------------------------------------------------------------------------------
1 | # Oracle Whitelist Procedure
2 |
3 | {% hint style="warning" %}
4 | No web application user interface is provided to enable to creation of these polls as adding a new oracle source which can be malicious can result in unwanted attacks on borrow and short positions.
5 | {% endhint %}
6 |
7 | New oracle service providers such as Chainlink can be added to Mirror Protocol through voting on Mirror Governance.
8 |
9 | Before creating a poll to whitelist a new oracle provider, a proxy contract owned and managed by the oracle provider party must be created and deployed onto Terra blockchain, using the smart contract template provided [here](https://github.com/terra-money/tefi-oracle-contracts/tree/main/contracts/oracle-proxy-template). The proxy contract must provide mapping between underlying assets symbol and price denominated in UST.
10 |
11 | In order to suggest a new oracle provider to Mirror Protocol, the following `execute_msg` must be included in `CreatePoll` transaction to be directed to Factory contract using `PassCommand` and then to the Oracle Hub contract when the poll is being executed.
12 |
13 | ```rust
14 | #[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
15 | #[serde(rename_all = "snake_case")]
16 | pub enum HubExecuteMsg {
17 | WhitelistProxy {
18 | proxy_addr: String,
19 | provider_name: String,
20 | },
21 | ```
22 |
23 | Once this poll passes through Mirror governance, users can choose this oracle provider when registering new assets onto the protocol.
24 |
--------------------------------------------------------------------------------
/protocol/governance/other-proposals.md:
--------------------------------------------------------------------------------
1 | # Other Proposals
2 |
3 | Any proposal that does not fit the pre-listed proposals can be submitted as a [**Text Poll**](proposal-types.md#1-submit-text-poll). A text poll consists of a simple title that should describe the intention of the proposal, a short description of the proposal, and an optional field to include an external link.
4 |
5 | Given that the text poll smart contract only supports very short descriptions \(currently 64-bits\), it is advisable to include a more detailed description on an external link and then attach the link in the `Information Link` field.
6 |
7 |
--------------------------------------------------------------------------------
/protocol/governance/pre-ipo-procedure.md:
--------------------------------------------------------------------------------
1 | # Pre-IPO Procedure
2 |
3 | {% hint style="info" %}
4 | Pre-IPO asset whitelisting discussion can be started at the [Mirror Protocol Forum](https://forum.mirror.finance).
5 | {% endhint %}
6 |
7 | To enable minting of Pre-IPO asset, two separate governance polls must be passed. Pre-IPO asset whitelisting process consists of the steps below:
8 |
9 | 1. The user should create **Suggest Pre-IPO Asset** poll. The poll should provide required details and supporting information for the voters to be able to make an informed decision. An example would be to utilize the external link to provide further information about the proposal in the [Mirror Protocol Forum](https://forum.mirror.finance). Information included could potentially include an [official registration statement](https://www.sec.gov/Archives/edgar/data/1679788/000162828021003168/coinbaseglobalincs-1.htm) of the IPO asset.
10 | 2. Once the poll above is completed and passed, a subsequent **Register Pre-IPO Parameters** should be created with oracle provider (from set of whitelisted oracle providers), pre-IPO asset parameters and post-IPO asset parameters which will be effective immediately after the IPO event.
11 | 3. If the second poll passes, Pre-IPO asset will be listed after `effective_delay`, and the asset will enter `mint_period`. During `mint_period`, Pre-IPO asset will be mintable at the submitted price, using `mint_collateral_ratio`, tradable and providable to liquidity pools.
12 | 4. When the underlying asset is publicly listed, Mirror Oracle will start updating the price of mAsset to mimic the real-world asset's price. This mAsset will now be treated like any other mAsset, allowing trading, minting and liquidity provision.
13 |
--------------------------------------------------------------------------------
/protocol/governance/whitelist-procedure.md:
--------------------------------------------------------------------------------
1 | # Whitelist Procedure
2 |
3 | {% hint style="info" %}
4 | Whitelisting discussion can be started at the [Mirror Protocol Forum](https://forum.mirror.finance)
5 | {% endhint %}
6 |
7 | For an mAsset to be fully functional on the Mirror Protocol, _two_ governance polls will need to be passed. The whitelisting consists of four major steps.
8 |
9 | 1. A user should make a [**Whitelist a New mAsset**](proposal-types.md#2-whitelist-a-new-masset) **** poll following the instructions listed. The proposal should be as detailed as possible, providing all the necessary information that a voter would need to be able to make an informed decision.
10 | 2. Once the above poll is nearing completion and seems like it will pass, a user should request oracle support for said asset from either Band Protocol (**contact information to be announced shortly**) or Chainlink (**integrations@chain.link**). The user should refer to the specific proposal that has passed and include a link. The user can only choose from set of oracle providers that are [whitelisted in Oracle Hub contract through Mirror governance](oracle-whitelist-procedure.md).
11 | 3. Once the oracle has tested for stability and is fully operational, any user may submit a [**Register Whitelist Parameters**](proposal-types.md#3-register-whitelist-parameters) **** by choosing the provided `Oracle Provider` which appears upon entering the `Symbol` of the asset to whitelist.
12 | 4. If the poll again passes, the new Mirrored Asset is immediately added to the active set of assets with prices being fed. However, there is an approximate one day delay before the new asset can be added to ensure that the feed is running smoothly on the Mirror Protocol.
13 |
14 |
--------------------------------------------------------------------------------
/protocol/lp-token.md:
--------------------------------------------------------------------------------
1 | # LP Tokens
2 |
3 | **LP Tokens** are given to **L**iquidity **P**roviders when they add liquidity to mAsset-UST or MIR-UST Terraswap pools. Each pool has a unique LP token associated with it and cannot be combined with LP tokens from other pools. They serve primarily as a unit of account, representing the liquidity provider's share in the pool in order to reclaim assets when they remove liquidity.
4 |
5 | Although LP tokens exist independently as a yield-generation feature of Terraswap, they are central to Mirror's market infrastructure. As such, the protocol provides MIR rewards to users who stake LP tokens as an incentive to help maintain liquid markets on Terraswap for mAssets and MIR.
6 |
7 | ## LP Token Supply
8 |
9 | {% hint style="info" %}
10 | There exists a different LP token for each mAsset-UST's Terraswap pool, as well as the MIR-UST pool. The descriptions below refer to each individual pool's supply of LP tokens.
11 | {% endhint %}
12 |
13 | ### Minting
14 |
15 | A user can provide liquidity by depositing tokens to both sides of a Mirror-related Terraswap pool. This results in the creation of LP tokens for that pool, which they can use to retrieve assets from the pool.
16 |
17 | #### Creating a new pool
18 |
19 | For a new pool with starting quantities of UST and mAsset / MIR $$x_0,y_0$$, the number of LP tokens is:
20 |
21 | $$
22 | \text{LP} = \sqrt{x_0 y_0}
23 | $$
24 |
25 | #### Adding to an existing pool
26 |
27 | Given quantities of UST and mAsset/MIR being deposited$$A_{\text{in}},B_{\text{in}}$$, and currently in the pool prior to deposit$$X,Y$$, and the current supply of LP tokens $$\text{LP}_{\text{total}}$$, the amount of newly minted LP tokens is:
28 |
29 | $$
30 | \text{LP}_{\text{new}} = \min\bigg(\frac{A_{\text{in}}}{X}\text{LP}_{\text{total}}, \frac{B_{\text{in}}}{Y}\text{LP}_{\text{total}}\bigg)
31 | $$
32 |
33 | Although liquidity providers can deposit any amount for both tokens, they are incentivized to put in quantities where value is equal on both sides, taking into consideration the mAsset or MIR's market price. Doing otherwise would cause them to incur losses as it would create arbitrage opportunities against the pool, and the LP tokens they received would be insufficient for recover their liquidity.
34 |
35 | ### Burning
36 |
37 | {% hint style="warning" %}
38 | It is very probable that the amounts of assets recovered by burning LP tokens will be different than the quantities deposited. This comes from a variety of reasons such as price movement of mAsset / MIR, changes in your relative share of the liquidity pool, etc.
39 | {% endhint %}
40 |
41 | A user can burn their LP tokens to recover their deposited liquidity. The pool will send back amounts of UST and mAssets \(or MIR\), depending on the amount of LP tokens they burn, determined by the formulas shown below.
42 |
43 | $$
44 | A_{\text{out}} = \frac{\text{LP}_{\text{burn}}}{\text{LP}_{\text{total}}}X
45 | $$
46 |
47 | $$
48 | B_{\text{out}} = \frac{\text{LP}_{\text{burn}}}{\text{LP}_{\text{total}}}Y
49 | $$
50 |
51 | ## LP Commission Rewards
52 |
53 | Holders of LP tokens receive a portion of rewards generated by the pool's trading fees, divvied out in proportion to total share of LP token pool. A portion of either mAsset/MIR or UST \(depending on the direction of the trade\) gets added back into the pool as the[ **LP Commission**](terraswap.md#lp-commission)**.**
54 |
55 | This functionality is not implemented in the Mirror Protocol contracts, and comes purely due to Terraswap's incentive structure for liquidity providers. Because the trading fee rewards are returned to the pool, they can only be withdrawn by burning LP tokens and withdrawing liquidity.
56 |
57 | ## Staking Rewards
58 |
59 | {% hint style="info" %}
60 | This section discusses staking rewards for LP tokens, which come from the new MIR tokens minted per block by the protocol as inflation. Staking MIR also generates MIR rewards, which come from trading fees rather than inflation. Learn more about it [here](mirror-token-mir.md#staking-rewards).
61 | {% endhint %}
62 |
63 | Mirror allows users to additionally profit from LP tokens by staking them to receive Mirror Token \(MIR\) rewards. The LP tokens can be unstaked at any time, and then burned to retrieve the corresponding deposited liquidity and LP Commission rewards.
64 |
65 | At each block, the protocol introduces into circulation an amount of MIR tokens \(which had been locked by the protocol\), by distributing them across all stakers of LP tokens in proportion to their total weighted stake.
66 |
67 | Mirror Protocol rewards stakers of LP tokens for each of the mAsset-UST pools as well as the MIR-UST pool. All mAsset-UST staking pools receive a weight of 1, while the MIR-UST pool receives a weight of 3. Therefore, there is a stronger reward incentive to stake MIR-UST LP tokens as they confer 3 times the reward when staked relative to mAssets.
68 |
69 | The block reward, $$R_{m_{k}}$$ for a specific staking pool corresponding to asset $$m_{k}$$with weight $$w_{k}$$and quantity$$I$$of MIR introduced into circulation per block, is given by:
70 |
71 | $$
72 | R_{m_{k}} =\frac{w_{m_{k}}}{\sum_{i} w_{m_{i}}}I
73 | $$
74 |
75 | A user will receive the portion of rewards for their pool equivalent to their proportional share of staked assets for that pool. This is applied for each pool to which the user has staked LP tokens.
76 |
77 |
--------------------------------------------------------------------------------
/protocol/mirror-token-mir.md:
--------------------------------------------------------------------------------
1 | # Mirror Token (MIR)
2 |
3 | The **Mirror Token (MIR)** is Mirror Protocol's governance token. Currently, it must be staked to vote on active polls and is required as a deposit for making new governance polls. In future iterations of Mirror, it will serve further purposes for the protocol that increase its utility and value.
4 |
5 | Users that stake MIR tokens also earn MIR rewards generated from withdrawing collateral from CDP positions within the protocol.
6 |
7 | MIR is also used to incentivize users to farm yields by staking LP tokens which were minted by providing liquidity for MIR and mAssets. Yield is paid to the users from MIRs that are newly minted through annual inflation, which gradually increases the total supply of MIR until the end of 4th year.
8 |
9 | ## **Mirror Token Supply**
10 |
11 | There are planned to be a total of 370,575,000 MIR tokens to be distributed over 4 years. Beyond that, there will be no more new MIR tokens introduced to the supply.
12 |
13 | ### Cumulative Distribution Schedule (in millions)
14 |
15 | | | Genesis | Y1 | Y2 | Y3 | Y4 |
16 | | -------------------- | --------- | ---------- | ---------- | ---------- | ----------- |
17 | | UNI airdrop | 9.15 | 9.15 | 9.15 | 9.15 | 9.15 |
18 | | Luna staking airdrop | 9.15 | 9.15 | 9.15 | 9.15 | 9.15 |
19 | | Luna staking reward | 0 | 18.3 | 18.3 | 18.3 | 18.3 |
20 | | mAsset LP staking | 0 | 89.2125 | 133.81875 | 156.121875 | 167.2734375 |
21 | | MIR LP staking | 0 | 20.5875 | 30.88125 | 36.028125 | 38.6015625 |
22 | | Community pool | 36.6 | 36.6 | 54.9 | 91.5 | 128.1 |
23 | | **Token supply** | **54.90** | **183.00** | **256.20** | **320.25** | **370.575** |
24 | | Annual inflation (%) | - | 233.33% | 40.00% | 25.00% | 15.71% |
25 |
26 | 
27 |
28 | Total of **54.9M** tokens are available at genesis of Mirror Protocol. The distribution of these tokens will be made as below:
29 |
30 | * **UNI Airdrop**: 16.66% (9.15M) tokens will be airdropped to UNI holders
31 | * **LUNA staker airdrop**: 16.66% (9.15M) tokens will be airdropped to LUNA stakers.
32 | * **Community Pool**: 66.66% (36.6M) tokens will be allocated to community pool.
33 |
34 | 
35 |
36 | Total supply of MIR tokens will increase for 4 years due to inflation, until the total token supply becomes **370.575M**.
37 |
38 | The distribution structure at the end of year 4 will look like the below:
39 |
40 | * **Airdrop**: The airdrop amount which was originally distributed to UNI holders and LUNA stakers will now account for 4.9% (18.3M) of the total token supply.
41 | * **LUNA staking reward**: 4.9% (18.3M) will be distributed to LUNA stakers throughout the first year since the launching of Mirror Protocol. **** MIR will be distributed every 100,000 blocks (approximately once every week) to Luna stakers only on the first year, starting from block height 920,000. Snapshot will be taken every 100,000 blocks to determine who is eligible for the staking reward distribution.
42 | * **mAsset LP Staking**: 45.1% (167.27M) tokens are distributed to all mAsset and mAsset (mETH) staking pools by the end of year 4. Tokens are distributed daily to each staking pool (initially 13 pairs for each Mirror and mETH) based on their `weight` compared to other assets.
43 | * **MIR LP Staking**: 10.4% (38.6M) tokens are evenly distributed to MIR-UST and MIR-UST (mETH) staking pools by the end of year 4. MIR-UST pair has an initial `weight` of 300, which is greater than `weight` of mAssets (First batch of mAssets have 100, and whitelisted mAssets have 30 `weight`).
44 | * **Community Pool**: 34.6% (128.1M) of total MIR supply will be distributed to Community Pool by the end of year 4.
45 |
46 | #### **Distribution Rate (Inflation)**
47 |
48 | Inflation rate of MIR tokens are designed to gradually decrease every year until it reaches 370.575M at the end of year 4. After the end of year 4, no more MIR tokens will be minted through inflation.
49 |
50 | ## MIR Staking Rewards
51 |
52 | {% hint style="info" %}
53 | This section discusses staking rewards for MIR tokens, which come from trading fees used to buy back MIR from the market. Staking LP and sLP tokens also generate MIR rewards, which come directly from new MIR tokens created every block. Learn more about it [here](staking-tokens-lp-and-slp.md#staking-rewards).
54 | {% endhint %}
55 |
56 | ### From Protocol Fees
57 |
58 | MIR Token stakers receive MIR token rewards every block which [protocol fees](mirrored-assets-massets.md#protocol-fee) are generated from CDP withdrawals. The protocol fees are collected from CDP collateral and are sold for TerraUSD to buy MIR through Terraswap after being sent to the [Collector ](../contracts/collector.md)contract. The MIR tokens are then distributed as rewards to MIR stakers and voters in proportion to the percentage of total stake. This process balances the generation of new MIR by creating buying pressure.
59 |
60 | ### From Poll Creation Fees
61 |
62 | Whenever a new governance poll is created, an initial deposit of MIR tokens must be paid. If the poll does not reach the voting quorum, this deposit is distributed to all MIR stakers proportionately.
63 |
64 | ### From Voting Rewards
65 |
66 | From protocol fee and poll creation fees from polls that have not reached voting quorum, `voter_weight` is used to determine the amount of MIR tokens that are distributed among users who voted on on-going polls. If total MIR governance reward which includes both staking and voting rewards is $$R_{\text{total}}$$ is,
67 |
68 | $$
69 | R_{\text{passive}}+R_{\text{vote}}
70 | $$
71 |
72 | where $$R_{\text{passive}}$$is the reward for MIR stakers that did not vote, and $$R_{\text{vote}}$$is the reward for users that have voted on on-going polls. If `voter_weight` is $$W_{\text{vote}}$$, and each individual and total number of MIR voted for the $$i$$th poll are $$m_{\text{i}}$$ and $$M_{\text{i}}$$,the voting reward $$R_{\text{vote}}$$ is,
73 |
74 | $$
75 | \sum_{i=1}^n \frac{m_{\text{i}}}{M_{\text{i}}} \frac{W_{\text{vote}}{R_{\text{gov}}}}{n}
76 | $$
77 |
78 | ### APR Calculation
79 |
80 | {% hint style="warning" %}
81 | **Note** Since protocol fees for most mAssets are only generated during trading hours of their underlying real-world asset, the actual reward distributed over the weekends and holidays will be much lower.
82 | {% endhint %}
83 |
84 | Mirror Web App displays the annual percentage rate for MIR staking reward. Due to fluctuating nature of protocol fees, MIR staking APR calculation uses the **average reward per day from the last 15 days**.
85 |
86 | If reward for MIR staker on day $$i$$ is $$r_i$$, with total MIR staked amount is $$M$$, annualized percentage rate for MIR staking (365 days) would be,
87 |
88 | $$
89 | \frac{\sum_{i=1}^{15}m_i}{M}\times365
90 | $$
91 |
92 | where reward distribution information of the last 15 days is applied. This APR is calculated under the assumption that the users have voted on all on-going governance proposals.
93 |
94 |
--------------------------------------------------------------------------------
/protocol/staking-tokens-lp-and-slp.md:
--------------------------------------------------------------------------------
1 | # Staking Tokens \(LP & sLP\)
2 |
3 | ## LP Tokens
4 |
5 | **LP Tokens** are given to **L**iquidity **P**roviders when they add liquidity to mAsset-UST or MIR-UST Terraswap pools. Each pool has a unique LP token associated with it and cannot be combined with LP tokens from other pools. They serve primarily as a unit of account, representing the liquidity provider's share in the pool in order to reclaim assets when they remove liquidity.
6 |
7 | Although LP tokens exist independently as a yield-generation feature of Terraswap, they are central to Mirror's market infrastructure. As such, the protocol provides MIR rewards to users who stake LP tokens as an incentive to help maintain liquid markets on Terraswap for mAssets and MIR.
8 |
9 | {% hint style="info" %}
10 | There exists a different LP token for each mAsset-UST's Terraswap pool, as well as the MIR-UST pool. The descriptions below refer to each individual pool's supply of LP tokens.
11 | {% endhint %}
12 |
13 | ### Minting
14 |
15 | A user can provide liquidity by depositing tokens to both sides of a Mirror-related Terraswap pool. This results in the creation of LP tokens for that pool, which they can use to retrieve assets from the pool.
16 |
17 | #### Creating a new pool
18 |
19 | For a new pool with starting quantities of UST and mAsset / MIR $$x_0,y_0$$, the number of LP tokens is:
20 |
21 | $$
22 | \text{LP} = \sqrt{x_0 y_0}
23 | $$
24 |
25 | #### Adding to an existing pool
26 |
27 | Given quantities of UST and mAsset/MIR being deposited$$A_{\text{in}},B_{\text{in}}$$, and currently in the pool prior to deposit$$X,Y$$, and the current supply of LP tokens $$\text{LP}_{\text{total}}$$, the amount of newly minted LP tokens is:
28 |
29 | $$
30 | \text{LP}_{\text{new}} = \min\bigg(\frac{A_{\text{in}}}{X}\text{LP}_{\text{total}}, \frac{B_{\text{in}}}{Y}\text{LP}_{\text{total}}\bigg)
31 | $$
32 |
33 | Although liquidity providers can deposit any amount for both tokens, they are incentivized to put in quantities where value is equal on both sides, taking into consideration the mAsset or MIR's market price. Doing otherwise would cause them to incur losses as it would create arbitrage opportunities against the pool, and the LP tokens they received would be insufficient for recover their liquidity.
34 |
35 | ### Burning
36 |
37 | {% hint style="warning" %}
38 | It is very probable that the amounts of assets recovered by burning LP tokens will be different from the quantities deposited. This comes from a variety of reasons such as price movement of mAsset / MIR, changes in your relative share of the liquidity pool, etc.
39 | {% endhint %}
40 |
41 | A user can burn their LP tokens to recover their deposited liquidity. The pool will send back amounts of UST and mAssets \(or MIR\), depending on the amount of LP tokens they burn, determined by the formulas shown below.
42 |
43 | $$
44 | A_{\text{out}} = \frac{\text{LP}_{\text{burn}}}{\text{LP}_{\text{total}}}X
45 | $$
46 |
47 | $$
48 | B_{\text{out}} = \frac{\text{LP}_{\text{burn}}}{\text{LP}_{\text{total}}}Y
49 | $$
50 |
51 | ### LP Commission Rewards
52 |
53 | Holders of LP tokens receive a portion of rewards generated by the pool's trading fees, divvied out in proportion to total share of LP token pool. A portion of either mAsset/MIR or UST \(depending on the direction of the trade\) gets added back into the pool as the[ **LP Commission**](terraswap.md#lp-commission)**.**
54 |
55 | This functionality is not implemented in the Mirror Protocol contracts, and comes purely due to Terraswap's incentive structure for liquidity providers. Because the trading fee rewards are returned to the pool, they can only be withdrawn by burning LP tokens and withdrawing liquidity.
56 |
57 | ## sLP Tokens \(Short Tokens\)
58 |
59 | **sLP Tokens** are minted and immediately staked when a short position is created. Each mAsset has a unique sLP token associated with it and cannot be combined with sLP from other mAssets. When closing a short CDP, the same amount of both sLP and mAsset have to be burned in order to fully close the short position and withdraw all collateral. Note that sLP cannot be transferred or traded, and they are immediately staked after being minted and burned immediately after a position is closed.
60 |
61 | ### Minting
62 |
63 | A user can short an mAsset by providing collateral to mint contract. This results in the creation of sLP tokens, which can be burnt with the corresponding mAsset to retrieve the collateral.
64 |
65 | The number of sLP minted is directly proportional to the quantity of mAssets minted and shorted from the position. A user will also receive the quantity of UST corresponding to the Terraswap value of the shorted mAsset after a governance-defined locking period. The locking period parameter in Mirror Lock contract and is changeable through governance poll voting.
66 |
67 | ### Burning
68 |
69 | In order to fully burn sLP tokens to withdraw all collateral, a user must have hold the amount of mAssets that were shorted when the short position was created.
70 |
71 | When the position is closed, sLP token will be automatically unstaked, and be burnt with the mAsset against the short position to redeem all collateral. Note that short position is similar to the typical mint position, so a 1.5% protocol fee will also be charged on the amount of collateral being withdrawn.
72 |
73 | If the whole position is closed, the minter immediately receives back locked UST. If the position is only partially closed, the UST received from the automatic sell-off of the minted mAsset is still subject to the total locking period.
74 |
75 | ### Lock Period
76 |
77 | Since minted mAssets are sold immediately after short position creation, amount of UST corresponding to the value of mAsset shorted against the Terraswap pool is returned to the user.
78 |
79 | A **`lock_period`** is applied to the returned UST after a short position is created \(set to **2 weeks** at the launch of Mirror v2\). User may choose to close their short position at any time by buying the shorted amount from Terraswap, but the UST from shorting might be within the `lock_period`. To use the UST from shorting to close the position, user must wait until the lock period ends, and claim the corresponding amount.
80 |
81 | ## Staking Rewards
82 |
83 | {% hint style="info" %}
84 | This section discusses staking rewards for LP & sLP tokens, which come from the new MIR tokens minted per block by the protocol as inflation. Staking MIR also generates MIR rewards, which come from trading fees rather than inflation. Learn more about it [here](mirror-token-mir.md#staking-rewards).
85 | {% endhint %}
86 |
87 | Mirror allows users to additionally profit from LP tokens by staking them to receive Mirror Token \(MIR\) rewards. The LP tokens can be unstaked at any time, and then burned to retrieve the corresponding deposited liquidity and LP Commission rewards.
88 |
89 | Users can additionally profit from sLP tokens by staking them to receive Mirror Token \(MIR\) rewards. The sLP tokens can be unstaked and burned \(with the minted mAsset\) anytime to retrieve the corresponding amount of collateral.
90 |
91 | Mirror Protocol distributes rewards to each mAsset staking pools in [Staking contract](../contracts/staking.md) based on the `weight` parameter of each mAsset. mAsset pools as well as the MIR pool. All mAsset-UST staking pools receive a weight of 100 \(newly whitelisted mAssets will have weight of 30\), while the MIR pool receives a weight of 300. Therefore, there is a stronger reward incentive to stake to MIR pool as they confer 3 times the reward when staked relative to mAssets.
92 |
93 | Within each mAsset's staking pool, MIR tokens are distributed to LP and sLP stakers, where sLP tokens reward weight can increase up to 40%, based on the current price premium between Terraswap and Oracle [price](mirrored-assets-massets.md#price). When enough short positions are created to lower the price premium, sLP reward weight will decrease, which automatically increases LP reward weight up to 100%. Below is the table of short reward distribution based on price premium:
94 |
95 | | Premium | Short Ratio | Premium | Short Ratio |
96 | | :--- | :--- | :--- | :--- |
97 | | 0 | 0.0091001 | 3.25 | 0.3577401 |
98 | | 0.25 | 0.0160237 | 3.5 | 0.3732771 |
99 | | 0.5 | 0.0267229 | 3.75 | 0.3839763 |
100 | | 0.75 | 0.0422599 | 4 | 0.3909000 |
101 | | 1 | 0.0634621 | 4.25 | 0.3951102 |
102 | | 1.25 | 0.0906509 | 4.5 | 0.3975161 |
103 | | 1.5 | 0.1234150 | 4.75 | 0.3988081 |
104 | | 1.75 | 0.1605175 | 5 | 0.3994600 |
105 | | 2 | 0.2000000 | 5.25 | 0.3997692 |
106 | | 2.25 | 0.2394825 | 5.5 | 0.3999070 |
107 | | 2.5 | 0.2765850 | 5.75 | 0.3999646 |
108 | | 2.75 | 0.3093491 | 6 | 0.3999873 |
109 | | 3 | 0.3365379 | 6.25 | 0.3999957 |
110 |
111 | The MIR reward, $$R_{k}$$for a specific staking pool corresponding to the asset $$k$$ with weight $$w_k$$ and quantity $$m$$ of MIR introduced into circulation, is given by:
112 |
113 | $$
114 | R_{k}=\frac{w_{k}}{\sum_{i=1}^n{w_{i}}}m
115 | $$
116 |
117 | The reward for LP staking pool, based on the current short reward ratio$$r_{s}$$ is:
118 |
119 | $$
120 | (1-r_s)\frac{w_{k}}{\sum_{i=1}^n{w_{i}}}m
121 | $$
122 |
123 | The reward for sLP staking pool, based on the current short reward ratio$$r_{s}$$ is:
124 |
125 | $$
126 | r_s\frac{w_{k}}{\sum_{i=1}^n{w_{i}}}m
127 | $$
128 |
129 | A user will receive the portion of rewards for their pool equivalent to their proportional share of staked LP and sLP for that pool.
130 |
131 |
--------------------------------------------------------------------------------
/protocol/synopsis.md:
--------------------------------------------------------------------------------
1 | # Overview
2 |
3 | ## Protocol Participants
4 |
5 | In Mirror Protocol, users act in one or more of the following roles:
6 |
7 | * Trader
8 | * Minter & Shorter
9 | * Liquidity Provider
10 | * Staker
11 |
12 | In addition, there are special auxiliary agents that are required for Mirror's infrastructure:
13 |
14 | * Oracle Feeder
15 |
16 | ### Trader
17 |
18 | A **trader** engages in buying and selling mAssets against UST through [Terraswap](terraswap.md) and benefits from price exposure via mAssets.
19 |
20 | ### Minter & Shorter
21 |
22 | A **minter** is a user that enters into a [collateralized debt position](mirrored-assets-massets.md#collateralized-debt-position) \(CDP\) in order to obtain newly minted tokens of an mAsset. CDPs can accept collateral in the form of UST, mAssets, or whitelisted collateral and must maintain a collateral ratio above the mAsset's minimum multiplied by a premium rate for each collateral type \(set by governance\).
23 |
24 | A **shorter** is a user that enters into the same CDP but to sell the minted tokens immediately and get newly minted [sLP tokens](staking-tokens-lp-and-slp.md#slp-tokens-short-tokens). sLP token can be staked to earn MIR reward when there is a price premium for Terraswap price compared to the oracle price.
25 |
26 | Therefore, shorters effectively take a short position against the reflected asset's price direction.
27 | Excess collateral can be withdrawn as long as the CDP's collateral ratio remains above the minimum. Minters can adjust the CDP's collateral ratio by burning mAssets or depositing more collateral.
28 |
29 | ### Liquidity Provider
30 |
31 | A **liquidity provider** adds equal amounts of an mAsset and UST to the corresponding Terraswap pool, which increases liquidity for that market. This process rewards the liquidity provider newly minted [LP tokens](staking-tokens-lp-and-slp.md#lp-tokens), which represent the liquidity provider's share in the pool and also provide rewards from the pool's trading fees. LP tokens can be burned to reclaim the share of mAssets and UST from the pool.
32 |
33 | ### Staker
34 |
35 | A **staker** is a user that stakes either LP tokens or sLP tokens \(with the [Staking contract](../contracts/staking.md)\) or MIR tokens \(with the [Gov contract](../contracts/gov.md)\) in order to earn staking rewards as MIR tokens. Whereas LP and sLP token stakers earn rewards from new MIR tokens from inflation, MIR token stakers earn staking rewards from CDP withdrawal fees.
36 |
37 | If the user has staked MIR tokens, they are eligible to participate in governance and receive voting power weighted by the amount of their total staked MIR. [Governance](governance/) is the process through which new mAssets get whitelisted and protocol parameters can be altered.
38 |
39 | LP Tokens can be unstaked at any time, but MIR tokens can only be unstaked when they are not used to represent a vote on a pending governance poll.
40 |
41 | ### Oracle Feeder
42 |
43 | An **oracle feeder** is a designated Terra account responsible for providing an accurate and up-to-date price feed for a specific mAsset or whitelisted collateral and is the sole party that is permitted to update the registered reported price of the reflected asset. Because of its crucial role in the operational stability of mAssets, the oracle feeder is elected through governance and will be swiftly replaced by the community if ever it underperforms in its duties.
44 |
45 | ## Tokens
46 |
47 | There are several tokens involved in Mirror Protocol:
48 |
49 | | Token Name | Function | Type |
50 | | :--- | :--- | :--- |
51 | | TerraUSD \(UST\) | Stablecoin | Native Terra asset |
52 | | [Mirrored Assets](mirrored-assets-massets.md) \(mAssets\) | Synthetic Asset | Terraswap CW20 Token |
53 | | [Mirror Token](mirror-token-mir.md) \(MIR\) | Staking, Governance | Terraswap CW20 Token |
54 | | [LP Tokens](staking-tokens-lp-and-slp.md#lp-tokens) | Staking | Terraswap CW20 Token |
55 | | [sLP Tokens](staking-tokens-lp-and-slp.md#slp-tokens-short-tokens) | Staking | Terraswap CW20 Token |
56 |
57 |
--------------------------------------------------------------------------------
/protocol/terraswap.md:
--------------------------------------------------------------------------------
1 | # Terraswap
2 |
3 | A short primer on [Terraswap](https://terraswap.io) is provided here for convenience. For more details regarding Terraswap, you can refer to its official documentation [here](https://docs.terraswap.io).
4 |
5 | Terraswap is a [Uniswap](https://uniswap.org)-inspired automated market maker \(AMM\) protocol implemented with smart contracts on the Terra blockchain. Mirror relies on Terraswap to establish UST trading pairs for mAssets and for the MIR token. This enables a decentralized on-chain exchange for the various assets involved in Mirror Protocol.
6 |
7 | ## Mechanism
8 |
9 | ### Liquidity Pools
10 |
11 | Terraswap creates automated markets for pairs of tokens \(or native Terra coins like UST\) called **pools** which enable users to exchange one asset for the other directly on-chain. Pools maintain balances of both assets, to which users can provide liquidity in exchange for reward-bearing LP tokens. A more detailed explanation about LP tokens and their relationship with Mirror can be found [here](terraswap.md).
12 |
13 | ### Constant Product
14 |
15 | Terraswap pools make prices based on a **constant product invariant.**
16 |
17 | $$
18 | XY=k \\
19 | $$
20 |
21 | The product of the number of tokens on each side of the pool should remain constant across trading operations \(buying / selling\). For Mirror-related pools, TerraUSD is on one side and mAsset/MIR tokens are on the other.
22 |
23 | ### Pricing
24 |
25 | In order to preserve the constant product invariant, Terraswap will make prices that ensure the product of resultant balances of the pool is as close as possible to product calculated prior to the trade. With $$X$$ being the current balance of the pool's source asset and and $$Y$$ being that of the target asset:
26 |
27 | $$
28 | X Y = k =(X + A_{\text{in}})(Y - B_{\text{out}}) \\
29 | $$
30 |
31 | To determine the proper value of $$B_{\text{out}}$$ given the trader's offered asset $$A_{in}$$:
32 |
33 | $$
34 | B_{\text{out}} = \frac{YA_{\text{in}}}{X+A_{\text{in}}}
35 | $$
36 |
37 | Terraswap is able to execute trades with only the current balances of the pool and the number of incoming tokens. The market price is encoded the number of pool's target tokens divided by the source asset \(also called the pool ratio\). The spread between the executed and the expected trade is:
38 |
39 | $$
40 | \text{spread} = \max\bigg(\frac{YA_{\text{in}}}{X+A_{\text{in}}} - \frac{YA_{\text{in}}}{X}, 0\bigg)
41 | $$
42 |
43 | When a pool has large balances of tokens on both sides from liquidity providers, the spread becomes smaller and helps the pool execute closer to its reported price of $$\frac{Y}{X}$$.
44 |
45 | ## LP Commission
46 |
47 | In order to compensate liquidity providers, Terraswap charges an **LP Commission** on each trade. The fee returns to the pool to serve as a reward for LP token holders and can only be withdrawn by burning LP tokens and reclaiming a portion of the pool.
48 |
49 | In Mirror, each liquidity pool for mAssets/MIR has a fixed **LP commission** fee of 0.3%. This fee is levied on the trader and is received as mAssets/MIR or UST, depending on the direction of the trade.
50 |
51 | {% hint style="info" %}
52 | Additionally, if the traded asset is a native token such as UST, the Terra network will incur a tax on the transfer \(not controlled by Mirror Protocol\).
53 | {% endhint %}
54 |
55 | $$
56 | \text{received} = B_{\text{out}}(1- \text{fee}_{\text{LP}} ) - \text{tax}
57 | $$
58 |
59 |
--------------------------------------------------------------------------------
/readme/whats-new-for-mirror-v2.md:
--------------------------------------------------------------------------------
1 | # What's new for Mirror v2?
2 |
3 | ## What’s new for Mirror v2?
4 |
5 | _The below changes are based on the_ [**Mirror V2 Whitepaper**](https://mirror.finance/Mirror\_Protocol\_v2.pdf)**.**
6 |
7 | Coming into Mirror Protocol v2, there are new feature additions which supplement existing mechanisms from v1 so that all classes of users are sufficiently incentivized for their given contributions within the protocol.
8 |
9 | ### **Governance participation incentives**
10 |
11 | Governance plays a crucial role in the decision-making and success of the Mirror Protocol, but users were not sufficiently incentivized to actively participate. As a result, the quorums were often not reached as users were disincentivized by the fact that their staked MIR tokens were locked until the end of the poll. This was further exacerbated by the fact that MIR deposits were mandatory to create new polls, so poll creators had a relatively high chance to lose their MIR due to lack of poll participation.\
12 | \
13 | In Mirror Protocol v2, active voters will be eligible for additional voting rewards in addition to existing governance staking rewards. An `ABSTAIN` vote option is also added for users who want to participate actively in governance but feel that they do not adequately understand the proposal. In addition, a snapshot of the quorum will be saved once it reaches a `Snapshot Period` to ensure that additional MIR staked in the governance contract does not affect the minimum amount of MIR needed to reach quorum.\
14 | \
15 | These changes will drive governance participation upwards by reducing risks related to poll creators’ deposits and incentivizing active participation.
16 |
17 | ### **New Collaterals**
18 |
19 | A highly requested feature addition by the community was to add MIR to the list of accepted collaterals for mint positions.
20 |
21 | Including MIR, [new collateral types](../protocol/mirrored-assets-massets.md#collateral) from Terra ecosystem have been added in Mirror v2. All collaterals will be given a new governance-decided parameter called the `multiplier` which is multiplied to the `min_collateral_ratio` of minted mAsset. Stable assets such as UST or aUST will have `multiplier`=1, and volatile collaterals including LUNA, MIR and ANC will be initially set to 1.3333334.
22 |
23 | ### **Short Incentives**
24 |
25 | One of the largest issues in Mirror Protocol v1 was the persisting price premium between the Terraswap and Oracle price. To reduce price premiums, a user would have to mint an asset and then sell it against Terraswap pools. However, there was no incentive for a user to short an asset since rewards from providing liquidity with bought assets were higher. In addition, minting an asset was much less capital efficient than simply buying the mAsset from Terraswap, even with the price premiums.
26 |
27 | Mirror v2 presents a new non-tradable token called [sLP tokens](../protocol/staking-tokens-lp-and-slp.md#slp-tokens-short-tokens), which is minted from creating a short position. sLP tokens are also stakable, and generates a reward that is dynamically increasing or decreasing based on the current price premium between Terraswap and Oracle price.
28 |
29 | ### **Pre-IPO Assets**
30 |
31 | Assets scheduled to undergo an IPO can be whitelisted and traded on Mirror v2. Any user can specify the details of the underlying asset via governance poll creation. If the poll passes, these assets will be minted (during a fixed time window) or traded like any other mAssets before the IPO. Once the IPO happens in the underlying market, [Mirror Oracle](broken-reference) will begin reporting prices from the market, and the asset will have the same features as any other mAsset.
32 |
33 | **Security Audit** for the underlying Mirror v2 Contracts is done by **Cryptonics.**
34 |
35 | {% file src="../.gitbook/assets/Mirror v2 Audit Report (1).pdf" %}
36 |
37 | ## Genesis Parameters
38 |
39 | For a better testing environment, any time-related parameters are shortened for Mirror v2 Testnet. Please note that all time parameters are now counted in `seconds` instead of `blocks`.
40 |
41 | ### Borrow (Mint)
42 |
43 | | Parameter | Testnet (v2) | Mainnet (v2) |
44 | | ----------------------------------------- | ------------ | --------------------------- |
45 | | LUNA, LUNA X Collateral Ratio Multiplier | 1.3333334 | 1.3333334 |
46 | | aUST Collateral Ratio Multiplier | 1 | 1 |
47 | | UST Lock-up Period | 600 seconds | 1,209,600 seconds (2 weeks) |
48 | | Protocol Fee Rate | 1.5% | 1.5% |
49 |
50 | ### Governance
51 |
52 | | Parameter | Testnet (v2) | Mainnet (v2) |
53 | | ---------------- | ------------ | ------------------------ |
54 | | Proposal Deposit | 1 MIR | 1000 MIR |
55 | | Quorum | 5% | 18% |
56 | | Voting Period | 318 seconds | 604,800 seconds (1 week) |
57 | | Snapshot Period | 100 seconds | 86,400 seconds (1 day) |
58 | | Effective Delay | 331 seconds | 86,400 secons (1 day) |
59 | | Voter Weight | 50% | 50% |
60 |
61 | ### Farming (Staking)
62 |
63 | | Parameter | Testnet (v2) | Mainnet (v2) |
64 | | ----------------------- | ------------ | --------------------- |
65 | | Premium Update Interval | 600 seconds | 3600 seconds (1 hour) |
66 |
--------------------------------------------------------------------------------
/security.md:
--------------------------------------------------------------------------------
1 | # Security
2 |
3 | ## Introduction
4 |
5 | The security of the Mirror protocol is our highest priority; our development team, alongside third-party auditors and consultants, has invested considerable effort to create a protocol that we believe is safe and dependable. All contract code and balances are publicly verifiable, and security researchers are eligible for a bug bounty for reporting undiscovered vulnerabilities.
6 |
7 | ## Audits
8 |
9 | * [Mirror v1 Smart Contract Audit](https://docsend.com/view/p4es2dgvwadamgqg) by **Cyber Unit**
10 | * **Mirror v2 Smart Contract Audit** by **Cryptonics**
11 |
12 | {% file src=".gitbook/assets/Mirror v2 Audit Report (1).pdf" %}
13 |
14 | ## Bug Bounty Program
15 |
16 | Security is core to our values, and we value the input of hackers acting in good faith to help us maintain the highest standard for the security and safety of the Mirror ecosystem. The Mirror protocol, while it has gone through professional audits and formal verification, depends on new technology that may contain undiscovered vulnerabilities.
17 |
18 | Mirror encourages the community to audit our contracts and security; we also encourage the responsible disclosure of any issues. This program is intended to recognize the value of working with the community of independent security researchers, and sets out our definition of good faith in the context of finding and reporting vulnerabilities, as well as what you can expect from us in return.
19 |
20 | ### **Rewards**
21 |
22 | Mirror offers substantial rewards for discoveries that can prevent the loss of assets, the freezing of assets, or harm to a user, commensurate with the severity and exploitability of the vulnerability. Mirror will pay a reward of $500 to $150,000 for eligible discoveries according to the terms and conditions provided below.
23 |
24 | ### Scope
25 |
26 | The primary scope of the bug bounty program is for vulnerabilities affecting the on-chain Mirror Protocol, deployed to the Terra Mainnet, for contract addresses listed in this developer documentation. This list may change as new contracts are deployed, or as existing contracts are removed from usage.
27 |
28 | Vulnerabilities in contracts built on top of the protocol by third-party developers (such as smart contract wallets) are not in-scope, nor are vulnerabilities that require ownership of an admin key.
29 |
30 | The secondary scope of the bug bounty program is for vulnerabilities affecting the Mirror interface that could conceivably result in the exploitation of user accounts.
31 |
32 | Finally, test contracts (Tequila and other testnets) and staging servers are out of scope, unless the discovered vulnerability also affects the Mirror Protocol or Interface, or could otherwise be exploited in a way that risks user funds.
33 |
34 | **Disclosure**
35 |
36 | Submit all bug bounty disclosures to [security@mirror.finance](mailto:security@Mirror.finance). The disclosure must include clear and concise steps to reproduce the discovered vulnerability in either written or video format. Mirror will follow up promptly with acknowledgment of the disclosure.
37 |
38 | **Terms and Conditions**
39 |
40 | To be eligible for bug bounty reward consideration, you must:
41 |
42 | * Identify an original, previously unreported, non-public vulnerability within the scope of the Mirror bug bounty program as described above.
43 | * Include sufficient detail in your disclosure to enable our engineers to quickly reproduce, understand, and fix the vulnerability
44 | * Be at least 18 years of age
45 | * Be reporting in an individual capacity, or if employed by a company, reporting with the company’s written approval to submit a disclosure to Mirror.
46 |
47 | To encourage vulnerability research and to avoid any confusion between good-faith hacking and malicious attack, we require that you:
48 |
49 | * Play by the rules, including following the terms and conditions of this program and any other relevant agreements. If there is any inconsistency between this program and any other relevant agreements, the terms of this program will prevail
50 | * Report any vulnerability you’ve discovered promptly
51 | * Avoid violating the privacy of others, disrupting our systems, destroying data, or harming user experience.
52 | * Use only [security@mirror.finance](mailto:security@Mirror.finance) to discuss vulnerabilities with us.
53 | * Keep the details of any discovered vulnerabilities confidential until they are fixed.
54 | * Perform testing only on in-scope systems, and respect systems and activities which are out-of-scope.
55 | * Only interact with accounts you own or with explicit permission from the account holder.
56 | * Not engage in blackmail, extortion, or any other unlawful conduct.
57 |
58 | When working with us according to this program, you can expect us to:
59 |
60 | * Pay generous rewards for eligible discoveries based on the severity and exploitability of the discovery, at Mirror’s sole discretion
61 | * Extend Safe Harbor for your vulnerability research that is related to this program, meaning we will not threaten or bring any legal action against anyone who makes a good faith effort to comply with our bug bounty program.
62 | * Work with you to understand and validate your report, including a timely initial response to the submission.
63 | * Work to remediate discovered vulnerabilities in a timely manner.
64 | * Recognize your contribution to improving our security if you are the first to report a unique vulnerability, and your report triggers a code or configuration change.
65 | * All reward determinations, including eligibility and payment amount, are made at Mirror’s sole discretion. Mirror reserves the right to reject submissions and alter the terms and conditions of this program.
66 |
--------------------------------------------------------------------------------
/user-guide/getting-started/README.md:
--------------------------------------------------------------------------------
1 | # Web App
2 |
3 | **The Mirror Web App is the official web frontend for interacting with Mirror on the Terra network. It is located at one of the decentralized domains listed on** [**https://terra.mirror.finance**](https://terra.mirror.finance)**.**
4 |
5 | The Mirror Web App offers a graphical user interface for accessing Mirror's core user flows, such as mAsset trading, minting & burning through CDPs, liquidity provision, staking, and governance.
6 |
7 | {% hint style="warning" %}
8 | The Mirror web app requires [Google Chrome](https://www.google.com/chrome/) and [Station Extension](https://chrome.google.com/webstore/detail/terra-station/aiifbnbfobpmeekipheeijimdpnlpgpp) to be installed. Please follow the instructions below to set up your browser to be able to access the DApp.
9 | {% endhint %}
10 |
11 | ## Terra Station Extension
12 |
13 | {% hint style="warning" %}
14 | Currently, Station Extension is only available for Chromium-based web browsers.
15 | {% endhint %}
16 |
17 | Station Extension is a Chrome extension that lets you interact with smart contract web front-ends with a wallet embedded in your browser. When you initiate an action such as opening a new position or creating a trade on the Mirror Web App, the webpage will generate a transaction for you in the proper format that encodes your desired interaction. Station Extension will detect the transaction and prompt you to sign and broadcast it to actually execute the operation.
18 |
19 | ### Installing Station Extension
20 |
21 | 1. Run [Google Chrome](https://www.google.com/chrome/). Station Extension is only available for Chromium-based web browsers.
22 | 2. Install Station Extension [here](https://chrome.google.com/webstore/detail/terra-station/aiifbnbfobpmeekipheeijimdpnlpgpp).
23 | 3. **Terra Station** is now visible on your Extensions tray.
24 |
25 | ### Creating a new wallet
26 |
27 | 1\. Open **Station Extension**
28 |
29 | 2\. Select **New Wallet**
30 |
31 | .png>)
32 |
33 | 3\. Set wallet name and password. **Make sure to record 24 word seed phrase somewhere safe.** Select `Next` to proceed.
34 |
35 | .png>)
36 |
37 | 4\. Confirm your seed phrase by inputting the correct words.
38 |
39 | .png>)
40 |
41 | 6\. Select **`Create a wallet`** to finish.
42 |
43 | .png>)
44 |
45 | ### Using Hardware Ledger
46 |
47 | To use a hardware Ledger wallet on to sign transactions on Terra Station Extension, user must meet the conditions below:
48 |
49 | * Install Terra application using [Ledger Live](https://www.ledger.com/ledger-live/download/) application. Make sure that you have enabled Developer Mode on Ledger Live application from Settings > Experimental Features to install Terra application.
50 | * Both Ledger Nano S and X are supported, but the device must be connected to the computer via USB cable. **Bluetooth connection is not supported** by Station Extension
51 |
52 | To access hardware ledger wallet from Terra Station Extension, please follow the steps below:
53 |
54 | 1\. Connect and unlock your Ledger device
55 |
56 | 2\. Open Terra application from the Ledger device
57 |
58 | 3\. Select **Access with ledger** on Terra Station Extension menu
59 |
60 | .png>)
61 |
62 | 4\. Once the Ledger device is connected to Terra Station Extension successfully, user can start signing transactions with their device.
63 |
64 | .png>)
65 |
66 | ### Wallet Recovery
67 |
68 | 1\. Select **Recover existing wallet**
69 |
70 | .png>)
71 |
72 | 2\. Set a new wallet name and password.
73 |
74 | .png>)
75 |
76 | 3\. Enter the 24 word seed phrase of the wallet to recover and select **`Next`** to finish.
77 |
78 | .png>)
79 |
80 | ### Sending Tokens
81 |
82 | 1\. Select `Send` button aligned to the tokens to send
83 |
84 | .png>)
85 |
86 | 2\. Input the information below and select `Next`:
87 |
88 | * Address of the recipient
89 | * Amount of token to send
90 | * Memo is optional
91 |
92 | {% hint style="info" %}
93 | Station Extension also support cross-chain transfer to Ethereum addresses through [Shuttle](https://github.com/terra-project/shuttle) bridge.
94 | {% endhint %}
95 |
96 | .png>)
97 |
98 | 3\. Select `Send` after setting the type and amount of tokens pay as transaction fee and entering the password.
99 |
100 | .png>)
101 |
102 | 4\. Station Extension will display the result of the transaction. Select `OK` to return to the main page.
103 |
104 | .png>)
105 |
106 | ## Getting TerraUSD
107 |
108 | Mirror runs on the Terra blockchain, and uses TerraUSD (UST), a USD-pegged stablecoin, as the currency of denomination and as a form of collateral. You must have a UST balance in order to use the Mirror Web App, since it pays transaction fees in UST. In addition, it is necessary to trade mAssets and provide liquidity to mAsset/MIR Terraswap pools.
109 |
110 | There are several ways to obtain UST:
111 |
112 | * Purchasing UST from an exchange
113 | * Swapping LUNA or other Terra stablecoins for UST
114 |
115 | ### Purchasing UST from an exchange
116 |
117 | The most direct way to obtain UST is to purchase it from an exchange. This requires having an exchange account with some funds that you can exchange into UST via a trading pair. For instance, you can purchase UST through [Bittrex](https://bittrex.com) through UST/BTC and UST/USDT markets, or on [Kucoin](https://kucoin.com) against BTC, ETH, USDT and XRP.
118 |
119 | ### Swapping LUNA or other Terra stablecoins tokens to UST
120 |
121 | If you have a Terra account with a balance of Luna or other stablecoins such as KRT, or SDT, you can turn them into UST through the Terra blockchain's native swap functionality. For instance, on [Terra Station](https://station.terra.money), the official Terra desktop wallet, you can access the swap feature through the "Market" page.
122 |
123 | 1. Navigate to the "Market" page by clicking it on the sidebar. You should see a similar page:
124 |
125 | 
126 |
127 | 2\. There is a section near the bottom of the page titled "Swap coins". There, you can select the type of coins you want to swap into UST, based on the current "Terra exchange rate".
128 |
129 | {% hint style="info" %}
130 | The approximate spread and fee for swapping Luna to UST or other stablecoins to UST will be shown to you. The rules for determining the fees are covered in [Terra Docs](https://docs.terra.money/dev/spec-market).
131 | {% endhint %}
132 |
133 | 3\. Click **`Next`** and sign the transaction to complete the swap.
134 |
--------------------------------------------------------------------------------
/user-guide/getting-started/claim-mir-reward.md:
--------------------------------------------------------------------------------
1 | # Claim MIR Reward
2 |
3 | MIR reward is generated in three different ways on Mirror Protocol:
4 |
5 | 1. Long Farm (Stake LP Tokens)
6 | 2. Short Farm (Create Short position)
7 | 3. Voting Reward (From voting on governance polls that are in progress)
8 |
9 | Although reward is distributed in three different channels, they are all claimable by executing one transaction from **My Page.**
10 |
11 | 1 . Navigate to **My Page** and click `Claim All Rewards`
12 |
13 | .png>)
14 |
15 | 2\. Check the simulated value, and click on `Claim` button.
16 |
17 | .png>)
18 |
19 | 3\. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
20 |
21 | To see your rewards in more depth, you may navigate to **Farming** or **Govern** tabs to check how much reward is claimable from each category.
22 |
23 | .png>)
24 |
25 | .png>)
26 |
--------------------------------------------------------------------------------
/user-guide/getting-started/governance.md:
--------------------------------------------------------------------------------
1 | # Governance
2 |
3 | The **Governance** page displays operations related to MIR staking and creating / voting on polls. For more details regarding the Mirror Governance process, [click here](../../protocol/governance/).
4 |
5 | ## Governance Main
6 |
7 | The Governance page displays the following data:
8 |
9 | .png>)
10 |
11 | * **Market information about MIR Staking**: Information about current staked MIR in the market, staking ratio and maximum APR are displayed. To learn how APR for governance is calculated, refer to [this page](../../protocol/mirror-token-mir.md#mir-staking-rewards).
12 | * **MIR Staking Position:** MIR staking pool box displays user's staked and unstaked MIR balances.
13 | * **Poll History**: Each poll has a unique poll ID, poll type (whitelist or parameter change), poll result, voting ratio, and end time.
14 |
15 | ## Stake / Unstake MIR Tokens
16 |
17 | MIR tokens are distributed as a reward for staked LP tokens, which are generated when users provide liquidity. [Click here](../../protocol/staking-tokens-lp-and-slp.md#lp-tokens) to learn more about staking LP tokens.
18 |
19 | In order to vote on governance polls, MIR must be staked to be used as voting power.
20 |
21 | 1\. Navigate to the [**Governance**](https://terra.mirror.finance/gov) page and click **`Stake`**
22 |
23 | .png>)
24 |
25 | 2\. Select either **Stake** / **Unstake**
26 |
27 | .png>)
28 |
29 | 3\. Enter amount to Stake or Unstake
30 |
31 | {% hint style="warning" %}
32 | MIR tokens that are voted to on-going governance polls will be unstakable when the voting period is over.
33 | {% endhint %}
34 |
35 | .png>)
36 |
37 | 4\. Click **`STAKE`** / **`UNSTAKE`**. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
38 |
39 | ## Create Poll
40 |
41 | 1. Navigate to the [**Governance**](https://terra.mirror.finance/gov) page and click `Create Poll`.
42 |
43 | .png>)
44 |
45 | 2\. Select a [poll type](../../protocol/governance/proposal-types.md) to submit.
46 |
47 | .png>)
48 |
49 | 3\. After entering desired inputs, click the activated button to confirm.
50 |
51 | .png>)
52 |
53 | 5\. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
54 |
55 | ## Vote on Poll
56 |
57 | 1. Navigate to the [**Governance**](https://terra.mirror.finance/gov) page and select a poll that is `In Progress`.
58 |
59 | .png>)
60 |
61 | 2\. After checking the details of this poll, click **`Vote`**
62 |
63 | .png>)
64 |
65 | 3\. Select `YES`, `NO` or `ABSTAIN`, and enter the amount to use as voting power.
66 |
67 | .png>)
68 |
69 | 5\. Click **`Submit`** to confirm. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
70 |
71 | ##
72 |
73 | For every poll to be passed, they must meet the conditions below:
74 |
75 | * Voting quorum must be greater than or equal to `quorum` (initially set to 10% on Mainnet) of the total staked MIR. Regardless of `YES` ratio, the poll will not pass if it does not meet the quorum.
76 | * **YES** votes must be greater than **NO** votes
77 | * Voting period (number of blocks corresponding to 1 week) has ended
78 | * After the voting period is over and the poll passes, it takes 1 day (number of blocks corresponding to a day) for the poll to become effective in the protocol.
79 |
--------------------------------------------------------------------------------
/user-guide/getting-started/mint-and-burn.md:
--------------------------------------------------------------------------------
1 | # Borrow
2 |
3 | User can **Borrow** newly minted mAssets by providing any collateral accepted in Mirror Protocol and open a [CDP](../../protocol/mirrored-assets-massets.md#collateralized-debt-position). After creating a position, user can manage it on My Page.
4 |
5 | When the user withdraws collateral either to manage position's collateral ratio or to close the position, a[ Protocol Fee](../../protocol/mirrored-assets-massets.md#protocol-fee) of 1.5% is charged to the collateral being withdrawn.
6 |
7 | Please note that all asset values are calculated based on the reported price from the [oracle feeder ](../../protocol/mirrored-assets-massets.md#oracle-feeder)instead of the Terraswap price.
8 |
9 | ## Borrow (Open Position)
10 |
11 | User may mint new mAsset that is whitelisted on Mirror Protocol, by providing other mAssets , UST or [other tokens](../../protocol/mirrored-assets-massets.md#collateral) as collateral and open a new CDP. The value of user's collateral against the minted asset must be higher than the [minimum collateral ratio](../../protocol/mirrored-assets-massets.md#minimum-collateral-ratio) in order to have the transaction successfully executed.
12 |
13 | 1\. Navigate to **Borrow (Mint)** page and select an asset to borrow.
14 |
15 | 2\. Select an asset to use as [collateral](../../protocol/mirrored-assets-massets.md#collateral).
16 |
17 | .png>)
18 |
19 | 3\. Select an asset to borrow (mint).
20 |
21 | .png>)
22 |
23 | 4\. Enter value in `Collateral` and set the `Collateral ratio`.
24 |
25 | .png>)
26 |
27 | 5\. Click `OPEN`. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
28 |
29 | 6\. All Done!
30 |
31 | .png>)
32 |
33 | Now, the borrow position becomes visible on My Page. User may choose the same asset pairs to mint more, but due to changed oracle price of both the collateral and the minted asset, and a different collateral ratio, a completely new CDP will be created instead of combining the values with the previously minted position. These two positions will be identifiable by a position ID, which is displayed as a number.
34 |
35 | ## Close Position
36 |
37 | Any user with an open borrow or [short position ](pool.md#short)can always choose to close the position, by “burning” the same type and amount of Mirrored Asset corresponding to an open position. When the minted assets are burned, users can reclaim all of the collaterals that were locked in the position.
38 |
39 | Please note that user cannot close the position if the user holds borrowed asset of any amount lower than the amount minted to open a position. User must first obtain the same or a greater amount of minted assets by buying them on the [Market](trade.md) page or have them sent from a different wallet.
40 |
41 | 1\. Navigate to **My Page** by clicking on the wallet icon.
42 |
43 | .png>)
44 |
45 | 2\. In the **Borrowing** section, press the "`Manage`" under actions
46 |
47 | .png>)
48 |
49 | 3\. Select `Close Position` and confirm details
50 |
51 | {% hint style="warning" %}
52 | If you do not hold an amount greater than or equal to `Burn Amount` displayed on this page, you must first navigate to **Market** page to buy the corresponding amount.
53 | {% endhint %}
54 |
55 | .png>)
56 |
57 | 4\. Click `CLOSE`. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
58 |
59 | ## Manage Position
60 |
61 | Users are warned when their CDP is close to liquidation. Borrow / short positions become vulnerable to liquidation when the collateral ratio falls below the `min_collateral_ratio`. Vice versa, borrow / short positions can be over-collateralized when the value of collateral to minted assets increases by a large margin. To avoid liquidation or over-collateralization, the user can borrow more or burn assets, deposit or withdraw collateral or change both amounts of borrowed and collateral.
62 |
63 | 1\. Navigate to [**My** **Page**](https://terra.mirror.finance/my)****
64 |
65 | 2\. In the **Borrowings** section, press the "`Manage`"under actions
66 |
67 | .png>)
68 |
69 | 3\. Select "`Edit` "
70 |
71 | .png>)
72 |
73 | 4\. Users may do the following actions on the page by entering a value greater or less than the default value in:
74 |
75 | * `Collateral` field to **deposit** or **withdraw** collateral from the position
76 | * `Borrowed` field to **borrow more** or **burn** mAssets from the position
77 |
78 | or change both fields to manage the position in a more flexible manner. Changing `Collateral Ratio` will only change the value in `Collateral` field.
79 |
80 | .png>)
81 |
82 | 5\. Click the activated button to confirm. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
83 |
84 | 6\. All done!
85 |
86 | .png>)
87 |
--------------------------------------------------------------------------------
/user-guide/getting-started/pool.md:
--------------------------------------------------------------------------------
1 | # Farm
2 |
3 | The **Farm** page displays operations related to liquidity provision, short position creation and earning [LP and sLP token](../../protocol/staking-tokens-lp-and-slp.md) staking rewards.
4 |
5 | In order to create a short position, you need to lock collateral assets to Mirror Protocol, and mint new mAssets. Unlike Borrow positions, newly minted assets are immediately sold at Terraswap price for UST. UST returned for shorting mAssets will be locked for a defined `lock_period`. To close your short position, you must first hold shorted amount of mAssets. These mAssets will be burned to return your locked collateral.
6 |
7 | ## Farm Main
8 |
9 | .png>)
10 |
11 | The main page of **Farm** provides a list of available staking pools and information corresponding to each pool.
12 |
13 | ### **Ticker**
14 |
15 | Name and symbol of the mAsset associated with the staking pool
16 |
17 | ### **Long**
18 |
19 | Link to LP Staking (Long Farm) page where users can provide liquidity for this asset and start earning MIR reward. The annual percentage rate for Long is calculated by,
20 |
21 | $$\text{Long APR=}\text{(Annual MIR Long Reward} \times \text{MIR Price)}/\text{(Liquidity Value)}$$
22 |
23 | where $$\text{Annual MIR Long Reward}$$ is the amount distributed to the corresponding mAsset's long staking pool per year, $$\text{MIR Price}$$ is the Terraswap price of MIR token denominated in UST and $$\text{Liquidity Value}$$ is the UST value of total liquidity provided in this mAsset-UST liquidity pool.
24 |
25 | ### **Short**
26 |
27 | Link to short position creation (Short Farm) page where users can create a short CDP and start earning MIR reward. The annual percentage rate for Short is calculated by,
28 |
29 | $$\text{Short APR = (Annual MIR Short Reward}\times\text{MIR Price)}/\text{(Shorted Token Amount}\times\text{Price)}$$
30 |
31 | where $$\text{Annual MIR Short Reward}$$ is the amount distributed to the corresponding mAsset's short staking pool per year, $$\text{MIR Price}$$ is the Terraswap Price of MIR token denominated in UST, $$\text{Short Token Amount}$$ is the number of mAssets sold from all short position creation, and $$\text{Price}$$ is the Terraswap price of this mAsset token denominated in UST.
32 |
33 | ### **Terraswap Price**
34 |
35 | Current Terraswap pool ratio of the corresponding asset.
36 |
37 | ### **Premium**
38 |
39 | Difference ratio between Terraswap and Oracle price of the associated mAsset. The premium is positively correlated with Short reward. Read more about Short reward [here](../../protocol/staking-tokens-lp-and-slp.md#staking-rewards).
40 |
41 | ## Long Farm (LP)
42 |
43 | In order to provide liquidity for Mirror assets, you need to supply an equal value of the asset and UST. Minted LP tokens will be immediately staked to start earning MIR rewards. By unstaking LP tokens, your liquidity provided will be reclaimable from the Terraswap pool. For more information about Terraswap pools, [click here](../../protocol/terraswap.md).
44 |
45 | {% hint style="info" %}
46 | The Pool interface is directly connected to [Terraswap](https://terraswap.io).
47 | {% endhint %}
48 |
49 | ### Stake LP
50 |
51 | 1\. Navigate to the **Farm** page and select **Long Farm** for the asset to provide liquidity for.
52 |
53 | .png>)
54 |
55 | 2\. Enter the amount of selected asset. The App will calculate the amount of UST you will need to deposit as well.
56 |
57 | .png>)
58 |
59 | 3\. Press **`LONG`**. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
60 |
61 | 4\. The app will automatically stake the LP tokens minted from liquidity provision.
62 |
63 | .png>)
64 |
65 | ### Unstake LP
66 |
67 | 1\. Navigate to **My Page** and select `Unstake` by the **Farming** position to unstake from.
68 |
69 | .png>)
70 |
71 | 2\. Enter the amount of LP to unstake and click `Unstake` You may click on your available balance to enter the `MAX` amount. The app will automatically calculate the expected returned amount from this transaction.
72 |
73 | .png>)
74 |
75 | 3\. Press **`Unstake`**. Station Extension will prompt you to sign the transaction. Confirm details presented and enter password to sign.
76 |
77 | ## Short Farm
78 |
79 | In order to create a short position, you need to lock collateral assets to Mirror Protocol, and mint new mAssets. Unlike a regular borrow position, newly minted assets are immediately sold at Terraswap price for UST. UST returned for shorting mAssets will be locked for a defined `lock_period`.
80 |
81 | ### Stake sLP
82 |
83 | 1 . Navigate to **Farm** page, and select **Short Farm** for the asset to create a short position for.
84 |
85 | .png>)
86 |
87 | 2\. Select an asset to provide as collateral and enter the amount.
88 |
89 | .png>)
90 |
91 | 3\. Set the collateral ratio. The app will automatically calculate the expected short amount.
92 |
93 | .png>)
94 |
95 | 4\. Press **`Short`**. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
96 |
97 | 5\. All done! The app will automatically stake the sLP minted from this transaction.
98 |
99 | .png>)
100 |
101 | ### Unstake sLP
102 |
103 | {% hint style="warning" %}
104 | To close your short position, you must first hold the shorted amount of mAssets. These mAssets will be burned to return your locked collateral.
105 | {% endhint %}
106 |
107 | 1 . Navigate to **My Page**, and click on `Manage` button on **Borrowing** by the short position to close.
108 |
109 | .png>)
110 |
111 | 2\. Check the simulated values before executing the transaction.
112 |
113 | .png>)
114 |
115 | 3\. Press **`Close`**. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
116 |
117 | ### Claiming Locked UST
118 |
119 | After a short position creation, UST from mAssets sold against the Terraswap pool is locked for a defined period called [Lock Period](../../protocol/staking-tokens-lp-and-slp.md#lock-period). When `lock_period` (initially 15 days) is over, users may claim their unlocked UST throug the steps below:
120 |
121 | 1 . Navigate to **My Page** and go to **Farming** section
122 |
123 | .png>)
124 |
125 | 2\. Below **Short Farming** section, a list of locked UST per each short position is displayed. Click `Claim UST` to retrieve unlocked UST
126 |
127 | .png>)
128 |
129 | 3\. Check the amount to be retreived and press `Claim`
130 |
131 | .png>)
132 |
--------------------------------------------------------------------------------
/user-guide/getting-started/sending-tokens.md:
--------------------------------------------------------------------------------
1 | # Sending Tokens
2 |
3 | Users can send **** MIR, mAsset and UST tokens to a different wallet. Tokens can be transferred between Terra blockchain wallets and also to Ethereum or Binance Smart Chain (BSC) wallets using a custom bridge that enables cross-chain transfers.
4 |
5 | ## Send
6 |
7 | {% hint style="danger" %}
8 | $1 or 0.1% fee (whichever is greater) from the transfer amount is charge on cross-chain transfer using the Shuttle bridge. \
9 | **A transaction with amount smaller than $1 value will be ignored.**
10 | {% endhint %}
11 |
12 | 1\. User can navigate to **Send** page by selecting `Send` from Total Value card on **My Page**
13 |
14 | .png>)
15 |
16 | 2\. Choose a network to send your tokens to. Currently, supported networks are Terra, Ethereum and Binance Smart Chain.
17 |
18 | {% hint style="danger" %}
19 | Token transfers between chains other than Terra does support "Memo" input. \
20 | **DO NOT** send your tokens to central exchanges that require a memo, or your tokens may be lost forever.
21 | {% endhint %}
22 |
23 | .png>)
24 |
25 | 3\. Select the type of token to send by selecting the dropdown list. Then, enter the amount to send.
26 |
27 | .png>)
28 |
29 | 4\. Once all inputs entered correctly, click the button to proceed. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
30 |
--------------------------------------------------------------------------------
/user-guide/getting-started/stake.md:
--------------------------------------------------------------------------------
1 | # Stake
2 |
3 | {% hint style="info" %}
4 | This section covers staking LP tokens. For staking MIR tokens, head to the [Governance](governance.md) page.
5 | {% endhint %}
6 |
7 | Users who staked their LP tokens are rewarded with MIR tokens that are minted every block. For more information about getting LP tokens, [click here](pool.md#provide-liquidity).
8 |
9 | Each staking position is unique to each type of LP tokens specified by the mAsset - UST pair. For example, the LP tokens gained from providing liquidity to mAAPL-UST pool can only be staked to mAAPL-UST staking pools. It cannot be used to stake to MIR-UST or mTSLA-UST positions. Also, different farming positions have different Annual Percentage Rate \(APR\), which is the yearly Mirror rewards which the user can expect by staking LP tokens.
10 |
11 | ## Stake / Unstake LP Tokens
12 |
13 | 1. Navigate to the [**Stake**](https://terra.mirror.finance/stake) page. The Stake page shows the following data:
14 |
15 | * **Market information about MIR tokens:** The top of the page displays information about current MIR supply, trading volume \(24hours\) denominated in UST, total number of MIR tokens staked, and current price of MIR token denominated in UST.
16 | * **Staking Positions**: Each box below the search bar displays staking pools where users can stake their LP tokens. Each pool is identifiable based on its Mirrored Asset and associated LP token. That is why each pool shows a different expected APR \(annual percentage rate\) and total staked LP tokens.
17 |
18 | 
19 |
20 | 2. Select a staking pool.
21 |
22 | 3. Follow the following:
23 |
24 | * IF STAKING, select a pool for which you have LP tokens.
25 | * IF UNSTAKING, select a pool for which you have LP tokens in a staked position.
26 |
27 | 
28 |
29 | 4. Select **Stake** or **Unstake**
30 |
31 | 
32 |
33 | 5. Enter amount to Stake / Unstake.
34 |
35 | 
36 |
37 | 6. Press **`Stake` / `Unstake`**. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
38 |
39 | 
40 |
41 | ## Claim LP Staking Rewards
42 |
43 | 1. Navigate to the [**Stake**](https://terra.mirror.finance/stake) page
44 |
45 | 
46 |
47 | 2. Click **`CLAIM ALL REWARDS`**and confirm the amount
48 |
49 | 
50 |
51 | 3. Click **`CLAIM`**. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
52 |
53 | 
54 |
55 | User may also claim rewards separately from each staking pool by navigating to My page, and selecting the **`CLAIM`** button located by each staking position.
56 |
57 |
--------------------------------------------------------------------------------
/user-guide/getting-started/trade.md:
--------------------------------------------------------------------------------
1 | # Trade
2 |
3 | The **Market** page provides an interface for trading and borrowing of mAsset tokens. **Trades** are made against the asset's Terraswap pool and priced algorithmically by its [automated market-making algorithm](../../protocol/terraswap.md#pricing).
4 |
5 | ## Trade
6 |
7 | {% hint style="info" %}
8 | The Trade interface is directly connected to [Terraswap](../../protocol/terraswap.md).
9 | {% endhint %}
10 |
11 | 1\. Navigate to the **Market** page. Select or search for an asset to trade.
12 |
13 | .png>)
14 |
15 | 2\. At the top of the page, select one of **Buy or Sell.**
16 |
17 | .png>)
18 |
19 | 3\. Enter the amount to buy or sell, and check your slippage tolerance and simulated values. If everything is okay, click **Buy** or **Sell.**
20 |
21 | {% hint style="danger" %}
22 | **Slippage tolerance** is the maximum deviation from the Expected Price. Transaction will be reverted if the effective price is different from the expected price by more than slippage tolerance.
23 | {% endhint %}
24 |
25 | .png>)
26 |
27 | 4\. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
28 |
29 | ## Limit Order
30 |
31 | Limit Order enables users to buy or sell an asset when the price reaches the Bid or Ask price. When user's order is submitted, user's offered mAsset or UST will be locked until the order is executed at Bid/Ask Price or canceled by the user.
32 |
33 | 1\. On **Buy** or **Sell** page and click on Limit Order toggle.
34 |
35 | .png>)
36 |
37 | 2\. Select an asset to buy or sell.
38 |
39 | .png>)
40 |
41 | 3\. When entering the below information, `Order Value` will be automatically calculated:
42 |
43 | * **Bid/Ask Price:** The desired price of an mAsset decided by the user. When the Terraswap price of the asset exceeds the Bid/Ask Price by slippage and transaction fee amount, user's order can be executed.
44 | * **Order Amount:** Quantity of the mAsset to trade at bid/ask price.
45 |
46 | .png>)
47 |
48 | 4\. Station Extension should prompt you to sign the transaction. Confirm the details presented and input your password to sign.
49 |
50 | **To cancel Limit Order:**
51 |
52 | Limit Order is visible on **My Page**. Users can select Cancel from Actions column to remove the submitted Limit Order.
53 |
54 | _Please note that your Limit Order can be executed when Terraswap price of the mAsset **exceeds** the Limit Price due to slippage cause by size of your transaction against the liquidity pool._
55 |
--------------------------------------------------------------------------------
/user-guide/meth-dual-yield.md:
--------------------------------------------------------------------------------
1 | # Staking on Ethereum
2 |
3 | ### Mirror Protocol Asset support on Ethereum
4 |
5 | MIR and mAssets pools also exist on [**Uniswap**](https://app.uniswap.org/#/swap) which runs on Ethereum. Assets from Mirror Protocol can be transferred to Ethereum chain, via **Wormhole**. Wormhole provides cross-chain transfer between Terra and Ethereum, enabling Terra blockchain assets, including MIR, mAsset and UST, to be transferred to and traded on Uniswap.
6 |
7 | Assets transferred from Terra to Ethereum are “wrapped”, hence giving the assets names such as wUST \(wrapped UST\), or wmAsset \(wrapped mAsset\) as a result. **Wrapped** tokens are ERC-20 tokens backed 1:1 in value by its underlying asset, which in the case of mETH are CW-20 tokens, such as MIR and mAssets. Any transfer of wrapped tokens from Ethereum to Terra will “unwrap” these tokens. This allows users to trade and provide liquidity for all types of Mirror Protocol assets on both Mirror and Uniswap.
8 |
9 | ### mETH.mirror.finance
10 |
11 | \*\*\*\*[**mETH.mirror.finance**](https://meth.mirror.finance/) is a web interface which resembles Mirror Web App, to enable users to stake LP tokens that were minted by providing liquidity for wrapped MIR and mAssets on Uniswap. Similar to Mirror Web App, wMIR tokens are distributed to users as staking reward once everyday.
12 |
13 | Below are the key differences between Mirror Web App and mETH:
14 |
15 | | Features | **Mirror Web App** | **mETH** |
16 | | :--- | :--- | :--- |
17 | | Wallet used to sign Tx | Station Extension | Metamask |
18 | | Asset name | MIR, mAsset, UST | wMIR, wmAsset, wUST |
19 | | Asset type | CW-20 | ERC-20 |
20 | | Trade | O | Uniswap |
21 | | Mint | O | X |
22 | | Pool | O | Uniswap |
23 | | Stake | O | O |
24 | | Governance | O | X |
25 | | Staking Reward Token | MIR | wMIR |
26 | | Tx fee token | UST | ETH |
27 |
28 | mETH only provides interface for [**My Page**](https://app-staging.mirror.finance/my), where the user can view their asset holdings and staking positions, and [**Stake**](https://app-staging.mirror.finance/stake) page to earn wMIR reward by staking LP tokens. From My Page of mETH, user can send their wrapped tokens to other Ethereum addresses or to Terra addresses. Once the token is sent to any Terra address, they can be used on Mirror Web App.
29 |
30 | The interface for mETH staking is the same as Mirror Web App. To learn more about staking, please refer to this [user guide](getting-started/stake.md). To learn how to get LP tokens to use on mETH, please refer to [Uniswap docs](https://uniswap.org/docs/v2/).
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/user-guide/meth-dual-yield/README.md:
--------------------------------------------------------------------------------
1 | # Mirror on Ethereum
2 |
3 | ### Mirror Protocol Asset Support on Ethereum
4 |
5 | MIR and mAssets pools also exist on [Uniswap](https://app.uniswap.org/#/swap) which runs on Ethereum. Assets from Mirror Protocol can be transferred to Ethereum chain through a custom bridge named [Shuttle](https://github.com/terra-project/shuttle). Shuttle facilitates cross-chain transfers between Terra and Ethereum, thereby enabling Terra blockchain assets, including MIR, mAsset and UST, to be transferred to and traded on [Uniswap](https://uniswap.org/).
6 |
7 | Assets transferred from Terra to Ethereum will have the same name and ticker, but these tokens will follow the ERC-20 token standard and backed 1:1 in value by its underlying CW-20 assets such as MIR and mAssets on the Terra blockchain. This allows users to trade and provide liquidity for all types of Mirror Protocol assets on both Terraswap \(Terra\) and Uniswap \(Ethereum\).
8 |
9 | ### ETH.mirror.finance
10 |
11 | \*\*\*\*[**ETH.mirror.finance**](https://eth.mirror.finance/) **or mETH** is a web interface that supports the staking of LP tokens generated from the liquidity provision of Mirror Protocol assets on Ethereum-side. It resembles the interface of Mirror Web Application but unlike the Terra counterpart, mETH only supports staking and viewing of assets and positions. All trading and liquidity provision transactions for MIR and mAssets can be executed on Uniswap. Similar to Mirror Web App, MIR tokens are distributed to mETH users as staking rewards once per day.
12 |
13 | {% hint style="warning" %}
14 | [Metamask](https://metamask.io) is required for signing transactions on mETH.
15 | User must hold ETH in order to pay transaction fees for mETH.
16 | {% endhint %}
17 |
18 | Below are the key differences between Mirror Web App and mETH:
19 |
20 | | Features | **Mirror \(Terra\)** | **mETH \(Ethereum\)** |
21 | | :--- | :--- | :--- |
22 | | **Wallet Support** | \*\*\*\*[Station Extension](../getting-started/#terra-station-extension) | [Metamask](https://metamask.io/), [WalletConnect](https://walletconnect.org/), [Coinbase](https://wallet.coinbase.com) |
23 | | **Asset type** | CW-20 | ERC-20 |
24 | | **Average Block Time** | 6 seconds | 15 seconds |
25 | | **Trade** | O \(connected to Terraswap\) | Uniswap |
26 | | **Mint** | O | X |
27 | | **Pool** | O \(connected to Terraswap\) | Uniswap |
28 | | **Stake** | O | O |
29 | | **Governance** | O | X |
30 | | **Staking Reward Token** | MIR | MIR \(ERC-20\) |
31 | | **Tx fee token** | UST | ETH |
32 |
33 | mETH only provides interfaces for the [My Page](https://eth.mirror.finance/my) to view asset holdings and staking positions, and the [Stake](https://eth.mirror.finance) page to earn MIR reward by staking LP tokens.
34 |
35 |
--------------------------------------------------------------------------------
/user-guide/meth-dual-yield/sending-tokens.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Transfer of Mirror Protocol Assets from Ethereum or Binance Smart Chain
3 | ---
4 |
5 | # Sending Tokens
6 |
7 | {% hint style="danger" %}
8 | $1 or 0.1% fee (which ever is greater) from the transfer amount is charge on cross-chain transfer using the Shuttle bridge. \
9 | **A transaction with amount smaller than $1 value will be ignored.**
10 | {% endhint %}
11 |
12 | ### From Ethereum
13 |
14 | From My Page of mETH, user can navigate to Send page and transfer ERC-20 Mirror tokens to other Ethereum or Terra addresses.
15 |
16 | .png>)
17 |
18 | Tokens transferred from mETH to Terra are converted back to CW-20 and can be used on Mirror Web App.
19 |
20 | .png>)
21 |
22 | Once the user enters the recipient's address, the app will automatically determine the network for the given address. Once `SEND` is pressed, Metamask will pop-up, prompting the user to sign the transaction. The signed transaction will be subsequently submitted to the Ethereum network for confirmation. \
23 | \
24 | To learn how to buy or get LP tokens to use on mETH, please refer to [Uniswap docs](https://uniswap.org/docs/v2/).
25 |
26 | ### From Binance Smart Chain (BSC) to Terra
27 |
28 | Mirror Protocol assets are supported on Binance Smart Chain (BSC). A simple user interface is provided to enable cross-chain transfer to Terra blockchain at [https://bsc.mirror.finance/my](https://bsc.mirror.finance/my).
29 |
30 | .png>)
31 |
32 | Choose a wallet to connect from the popup list which appears after selecting `CONNECT`.
33 |
34 | .png>)
35 |
36 | When a wallet of your choice has been connected successfully, the page will display the balance of your Mirror Protocol asset which you own in your BSC wallet.
37 |
38 | By clicking the `Send` button which pops up after clicking on Actions, user is directed to Send page.
39 |
40 | .png>)
41 |
42 | After entering a Terra address to send tokens to, and the amount, `SEND` button is activated. Once, `SEND` is pressed, the connected wallet will prompt you to confirm and sign the transaction.
43 |
--------------------------------------------------------------------------------
/user-guide/meth-dual-yield/staking_guide.md:
--------------------------------------------------------------------------------
1 | # Stake
2 |
3 | {% hint style="info" %}
4 | This section covers staking LP tokens on [mETH](https://eth.mirror.finance). \
5 | Staking guide for Mirror Web App is available [here](broken-reference).
6 | {% endhint %}
7 |
8 | Users can stake mAsset-UST LP or MIR-UST LP tokens to earn MIR reward.
9 |
10 | Each staking position is unique to each type of LP tokens specified by the mAsset-UST pair. Also, due to different `weight` and pool price of each mAsset, each farming position has a different Annual Percentage Rate (APR), which represents the yearly MIR reward from staking LP tokens.
11 |
12 | ## Stake / Unstake LP Tokens
13 |
14 | 1\. From the [Stake (Main)](https://eth.mirror.finance) page, select `Stake LP` from the pool which you hold LP for.
15 |
16 | * A staking pool where the user has LP tokens already staked will show a `Staked` label on top of the box.
17 | * A staking pool where the user has LP to stake will show a `Stakable` label on top of the box.
18 |
19 | .png>)
20 |
21 | 2\. Select **Stake** or **Unstake**
22 |
23 | .png>)
24 |
25 | 3\. Enter amount of LP tokens to Stake / Unstake.
26 |
27 | .png>)
28 |
29 | 5\. Press `Stake` / `Unstake`. Metamask should pop-up and ask you to approve and sign the transaction. Select `Allow` to sign.
30 |
31 | ## **Claim LP Staking Rewards**
32 |
33 | 1\. **** Navigate to [My Page](https://eth.mirror.finance/my)
34 |
35 | 2\. In the Stake section, select "`...`" under Actions and select `Claim`.
36 |
37 | .png>)
38 |
39 | 3\. User will be directed to a new page to confirm the amount being claimed.
40 |
41 | .png>)
42 |
43 | 4\. Select `CLAIM`. Metamask will prompt you to confirm and sign the transaction.
44 |
45 | .png>)
46 |
--------------------------------------------------------------------------------
/user-guide/meth-dual-yield/trade.md:
--------------------------------------------------------------------------------
1 | # Trade
2 |
3 | User can trade mAssets and MIR tokens on Ethereum by navigating to a Uniswap page with specific pairs already selected, through a custom link provided on mETH page.
4 |
5 | ## Buy and Sell
6 |
7 | 1 . Navigate to Main page of mETH
8 |
9 | .png>)
10 |
11 | 2\. From the provided list of mAsset pools, select a token to trade and click `Buy token`
12 |
13 | .png>)
14 |
15 | 3\. `Buy token` will direct you to a Uniswap page, with the selected assets already set as trading pairs.
16 |
17 | {% hint style="info" %}
18 | Be sure to have your Metamask wallet extension wallet connected to Uniswap to confirm and sign the transaction.
19 | {% endhint %}
20 |
21 | .png>)
22 |
23 | {% hint style="info" %}
24 | You may choose to change the direction of the trade by clicking the "**↓**" located between the two input fields.
25 | {% endhint %}
26 |
27 | 4\. Enter amount to buy or sell, and click `Swap` button. Metamask wallet will pop-up and prompt you to confirm and sign the transaction.
28 |
29 | .png>)
30 |
31 |
--------------------------------------------------------------------------------
/user-guide/terra-bridge.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Web application to transfer Terra's tokens to other blockchain networks
3 | ---
4 |
5 | # Terra Bridge
6 |
7 | [Terra Bridge](https://bridge.terra.money) enables cross-chain transfer of all tokens supported by [Shuttle](https://github.com/terra-project/shuttle), including Terra native tokens, most mAssets and also other token types from Terra ecosystem.
8 |
9 | The list of transferable Mirror Protocol assets can be found on [Interchain Access](../networks.md) page.
10 |
11 | {% hint style="warning" %}
12 | The Terra Bridge web app is only available for Chromium-based web browsers.
13 | {% endhint %}
14 |
15 | ### Supported Wallets
16 |
17 | | Blockchain | Supported Wallets |
18 | | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19 | | Terra | [Terra Station Extension](https://terra.money/extension) |
20 | | Ethereum | [MetaMask](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en), [Coinbase](https://wallet.coinbase.com) or [Trustwallet](https://trustwallet.com) for [WalletConnect](https://walletconnect.org) |
21 | | BSC | [Binance Chain Wallet](https://chrome.google.com/webstore/detail/binance-chain-wallet/fhbohimaelbohpjbbldcngcnapndodjp?hl=en) or [MetaMask](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en) |
22 |
23 | ## Using Terra Bridge
24 |
25 | {% hint style="danger" %}
26 | $1 or 0.1% fee (which ever is greater) from the transfer amount is charge on cross-chain transfer using the Shuttle bridge. \
27 | **A transaction with amount smaller than $1 value will be ignored.**
28 | {% endhint %}
29 |
30 | 1\. Go to [Terra Bridge](https://bridge.terra.money) page on a Chromium-based web browser.
31 |
32 | .png>)
33 |
34 | 2\. You may connect your wallet by doing one of the actions below:
35 |
36 | * Click `Connect Wallet` button
37 | * From the **From** section, select the network to transfer your tokens from.
38 |
39 | .png>)
40 |
41 | 3\. If **Ethereum** or **BSC** is selected, a pop-up with a list of supported wallet will appear. Select a wallet which you currently use.
42 |
43 | .png>)
44 |
45 | 3\. Once the right wallet is connected, click on **Assets** section to select the token to transfer.
46 |
47 | .png>)
48 |
49 | 4\. Search and select a token type from the pop-up list.
50 |
51 | .png>)
52 |
53 | 5\. Enter **Amount** of tokens to transfer, and **Destination** address of the recipient.
54 |
55 | .png>)
56 |
57 | 6\. By selecting Next button, a Confirm pop-up is provided to double-check the information entered by the user. If all details on the pop-up is correct, select `Confirm`.
58 |
59 | .png>)
60 |
61 | 7\. Once `Confirm` is pressed, the connected wallet will pop-up, prompting the user to sign the transaction. The signed transaction will be subsequently submitted to the blockchain for confirmation.
62 |
63 | .png>)
64 |
--------------------------------------------------------------------------------