on master help sign in
Merge branch 'master' of https://github.com/urbit/urbit.org into mp/footer-component
74d6eb9Gordon
content/grants/app-openbsd.md+1
@@ -12,6 +12,7 @@ description = "Get the project to the point where it works on OpenBSD"
12reward = "1 star"
12reward = "1 star"
13mentor = "~silsyn-wathep"
13mentor = "~silsyn-wathep"
14assignee = "~tidsut-radryd"
14assignee = "~tidsut-radryd"
15+grant_id = "A0124"
15completed = false
16completed = false
16work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0124&prefill_Grant+Name=Resurrect%20OpenBSD%20Build"
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0124&prefill_Grant+Name=Resurrect%20OpenBSD%20Build"
17+++
18+++
content/grants/app-uv-native-notificatons.md+2−2
@@ -10,9 +10,9 @@ grant_category = ["App Dev: Other"]
10[extra]
10[extra]
11image = ""
11image = ""
12description = "Build native notifications into Urbit Visor"
12description = "Build native notifications into Urbit Visor"
13−reward = "$8000 in WSTR"
13+reward = "1 star"
14assignee = "~toclec-baldeg"
14assignee = "~toclec-baldeg"
15−mentor = "~mocrux-nomdep"
15+mentor = "~haddef-sigwen"
16grant_id = "A0145"
16grant_id = "A0145"
17completed = false
17completed = false
18canceled = false
18canceled = false
content/grants/apprenticeship-extending-bitcoin.md+1
@@ -12,6 +12,7 @@ description = ""
12reward = "1 star"
12reward = "1 star"
13mentor = "~dasrun-fadben"
13mentor = "~dasrun-fadben"
14assignee = "~sipned-nistug"
14assignee = "~sipned-nistug"
15+grant_id = "A0138"
15completed = false
16completed = false
16work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0138&prefill_Grant+Name=Extending%20the%20Bitcoin%20Provider%20API"
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0138&prefill_Grant+Name=Extending%20the%20Bitcoin%20Provider%20API"
17+++
18+++
content/grants/apprenticeship-studio-collections.md+1
@@ -12,6 +12,7 @@ description = "Extend ~tirrel's studio app content offering to include groups co
12reward = "1 star"
12reward = "1 star"
13mentor = "~novlud-padtyv"
13mentor = "~novlud-padtyv"
14assignee = "~dachus-tiprel"
14assignee = "~dachus-tiprel"
15+grant_id = "A0174"
15completed = false
16completed = false
16canceled = false
17canceled = false
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0174&prefill_Grant+Name=Studio%20Collections"
18work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0174&prefill_Grant+Name=Studio%20Collections"
content/grants/apprenticeship-studio-email.md+1
@@ -12,6 +12,7 @@ description = "Build out email capabilities of ~tirrel's Studio app"
12reward = "1 star"
12reward = "1 star"
13mentor = "~novlud-padtyv"
13mentor = "~novlud-padtyv"
14assignee = "~rivmud-fabwen"
14assignee = "~rivmud-fabwen"
15+grant_id = "A0139"
15completed = false
16completed = false
16work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0139&prefill_Grant+Name=~tirrel%20studio%20email%20capabilities"
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=A0139&prefill_Grant+Name=~tirrel%20studio%20email%20capabilities"
17+++
18+++
content/grants/azimuth-cli.md+2−2
@@ -7,10 +7,10 @@ grant_category = ["App Dev: Other"]
7[extra]
7[extra]
8image = ""
8image = ""
9description = "Bridge for the command line"
9description = "Bridge for the command line"
10−reward = "6 stars"
10+reward = "5 stars"
11assignee = "~lavlyn-litmeg"
11assignee = "~lavlyn-litmeg"
12grant_id = "P0080"
12grant_id = "P0080"
13−completed = false
13+completed = true
14canceled = false
14canceled = false
15link = ""
15link = ""
16+++
16+++
content/grants/books.md+1−1
@@ -11,7 +11,7 @@ image = ""
11description = "Books is an application for managing your crypto wallets, transactions, and counterparties. It allows you to add your wallet and others' wallets, track balances and transactions, and add private annotations to all of the above."
11description = "Books is an application for managing your crypto wallets, transactions, and counterparties. It allows you to add your wallet and others' wallets, track balances and transactions, and add private annotations to all of the above."
12reward = "5-7 stars"
12reward = "5-7 stars"
13assignee = "Quartus"
13assignee = "Quartus"
14−id = ""
14+grant_id = "B0134"
15completed = false
15completed = false
16work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0134&prefill_Grant+Name=Books%3A%20address%20and%20transaction%20manager"
16work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0134&prefill_Grant+Name=Books%3A%20address%20and%20transaction%20manager"
17+++
17+++
content/grants/communal-computing.md+1−1
@@ -10,7 +10,7 @@ description = "User research, domain research/synthesis, white paper creation an
10reward = "4.6 stars"
10reward = "4.6 stars"
11assignee = "~pilwyc-fastec"
11assignee = "~pilwyc-fastec"
12mentor = "~simfur-ritwed"
12mentor = "~simfur-ritwed"
13−id = ""
13+grant_id = "P0113"
14completed = false
14completed = false
15link = ""
15link = ""
16+++
16+++
content/grants/digital-editor-MROB.md+1−1
@@ -12,7 +12,7 @@ description = "Digital Editor for the Mars Review of Books"
12reward = "$4,500 in WSTR"
12reward = "$4,500 in WSTR"
13assignee = "~randem-wishes"
13assignee = "~randem-wishes"
14champion = "~librex-dozryc"
14champion = "~librex-dozryc"
15−id = "B0140"
15+grant_id = "B0140"
16completed = false
16completed = false
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0140&prefill_Grant+Name=Digital%20Editor%2C%20Mars%20Review%20of%20Books"
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0140&prefill_Grant+Name=Digital%20Editor%2C%20Mars%20Review%20of%20Books"
18+++
18+++
content/grants/feed-aggregator.md+1−1
@@ -13,7 +13,7 @@ reward = "5 stars"
13assignee = "~mirtyl-wacdec"
13assignee = "~mirtyl-wacdec"
14grant_id = "P0043"
14grant_id = "P0043"
15completed = false
15completed = false
16−canceled = false
16+canceled = true
17link = ""
17link = ""
18+++
18+++
19
19
content/grants/filesharer.md+1−1
@@ -11,7 +11,7 @@ image = ""
11description = "Simple file sharing on Urbit"
11description = "Simple file sharing on Urbit"
12reward = "2 stars"
12reward = "2 stars"
13assignee = "~tinden-pontev"
13assignee = "~tinden-pontev"
14−id = ""
14+grant_id = "P0123"
15completed = false
15completed = false
16link = ""
16link = ""
17+++
17+++
content/grants/native-planet-2.md+1
@@ -12,6 +12,7 @@ description = "Native Planet - A domestic hosting solution for Urbit"
12reward = "6 stars"
12reward = "6 stars"
13assignee = "~dalhec-banler"
13assignee = "~dalhec-banler"
14champion = "~poldec-tonteg"
14champion = "~poldec-tonteg"
15+grant_id = "P0152"
15completed = false
16completed = false
16canceled = false
17canceled = false
17+++
18+++
content/grants/port-maintenance.md+1−1
@@ -10,7 +10,7 @@ description = "Maintain the Port application"
10reward = "2 stars"
10reward = "2 stars"
11champion = "~nocsyx-lassul"
11champion = "~nocsyx-lassul"
12assignee = "~latter-bolden"
12assignee = "~latter-bolden"
13−id = "B0137"
13+grant_id = "B0137"
14completed = false
14completed = false
15work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0137&prefill_Grant+Name=Port%20Maintenance"
15work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0137&prefill_Grant+Name=Port%20Maintenance"
16+++
16+++
content/grants/regex-library.md+1
@@ -12,6 +12,7 @@ description = "Implement a regular expressions library in Hoon"
12reward = "3 stars"
12reward = "3 stars"
13mentor = "~lagrev-nocfep"
13mentor = "~lagrev-nocfep"
14assignee = "~macrep-racdec"
14assignee = "~macrep-racdec"
15+grant_id = "B0177"
15completed = false
16completed = false
16canceled = false
17canceled = false
17work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0177&prefill_Grant+Name=Regular%20Expressions%20Library"
18work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0177&prefill_Grant+Name=Regular%20Expressions%20Library"
content/grants/slam.md+1−1
@@ -10,7 +10,7 @@ description = "Slam Action Game"
10reward = "3 stars"
10reward = "3 stars"
11assignee = "~hanfel-dovned"
11assignee = "~hanfel-dovned"
12champion = "~rabsef-bicrym"
12champion = "~rabsef-bicrym"
13−id = ""
13+grant_id = "P0122"
14completed = false
14completed = false
15link = ""
15link = ""
16+++
16+++
content/grants/uturn.md+1−1
@@ -9,7 +9,7 @@ image = ""
9description = "TURN server support for WebRTC"
9description = "TURN server support for WebRTC"
10reward = "1 star"
10reward = "1 star"
11assignee = "~martyr-binbex"
11assignee = "~martyr-binbex"
12−id = ""
12+grant_id = "P0108"
13completed = false
13completed = false
14link = ""
14link = ""
15+++
15+++
content/ids/mastyr-bottec.mdnew file+10
@@ -0,0 +1,10 @@
1++++
2+ship = "~mastyr-bottec"
3+nickname = "Matthew LeVan"
4+bgColor = "#000000"
5+image = "https://mastyr-bottec.nyc3.digitaloceanspaces.com/mastyr-bottec/2022.6.29..20.13.08-mastyr-bottec.svg"
6++++
7+
8+Working on core infrastructure at [Wexpert Systems](https://wexpert.systems) for more dependable and scalable bare-metal Urbit hosting.
9+
10+https://wexpert.systems
urbitswap.mdnew file+57
@@ -0,0 +1,57 @@
1++++
2+title = "Self-hosted Uniswap"
3+date = "2022-06-22"
4+
5+[taxonomies]
6+grant_type = [ "Bounty" ]
7+grant_category = [ "App Dev" ]
8+
9+[extra]
10+image = ""
11+description = "Host a Uniswap frontend trading UI on your urbit"
12+reward = "1 star"
13+assignee = ""
14+grant_id = "B0186"
15+completed = false
16+work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0186&prefill_Grant+Name=Uniswap"
17++++
18+
19+# Overview
20+
21+Self-host Uniswap on your Urbit
22+
23+# Rationale
24+
25+Uniswap is a decentralized exchange with no order books, that simply facilitates peer to peer trades between its users through an efficient automated market making algorithm. Uniswap Labs is the main developer of Uniswap, but has no control over how tokens are traded or which tokens are listed. Since the entire Uniswap protocol runs on Ethereum and is open source, any development team can build on top of the protocol.
26+
27+The SEC launched an investigation into Uniswap at the end of 2021, with Gary Gensler the Chairman of the SEC stating that there can be some sort of “protocol control” from DeFi developers, and that DEXs could be violating banking laws (in addition to securities laws) by hosting securities and making them available to trade for their users.
28+
29+The operative word here is hosting, because Uniswap, while it is a decentralized exchange with no order books that simply facilitates P2P trades, still uses centralized servers to host its frontend trading UI. This SEC statement has broad ranging implications for all of crypto, going beyond the specific example of Uniswap.
30+
31+Binance comes to mind as another example, for it is the largest crypto exchange worldwide in terms of volume and the fastest progressing one, shipping new features and products that push forward the limits of what is possible within a financial system. They have been able to innovate so quickly because from the start they did a macro hedge, moving their servers out of China and now use a network of servers distributed across the world in mostly unknown locations in favorable jurisdictions.
32+
33+As more regulatory crackdown occurs within crypto, Urbit emerges as a useful tool for regulatory arbitrage and progressing further decentralization within the DeFi space. With a native, self-hosted, Uniswap app, Urbit can sustain the financial freedom of its crypto users, set a precedent of collaboration and extend its self-sovereign reach for other web3 platforms.
34+
35+Also, Urbit can extend the possibilities of DeFi by adding a cohesive identity and a social layer to the trading experience. Most crypto traders have private group chats where they discuss their positions, then separately they go and trade on DEXs. Other traders use WallStreetBets or similar forums to do research from their peers into what they should invest in. UrbitSwap could provide a unified experience for chatting with fellow traders while taking new financial positions.
36+
37+# Scope / Implementation
38+
39+Develop an Urbit application that serves the [open-source Uniswap UI](https://github.com/Uniswap/interface). The app should only be served if the user is logged in to the Urbit ship running it– it should not be publicly accessible for anyone to access. Distribute the application on Urbit so that anyone on Urbit can install it. See [this guide](https://urbit.org/docs/userspace/dist/guide) for a walk-through example of developing and distributing an app or “desk” on Urbit. A great submission will maximize user choice i.e. using or not using Uniswap’s [unsupported token list](https://github.com/Uniswap/uniswap-interface/blob/main/src/constants/tokenLists/unsupported.tokenlist.json). A stellar submission will creatively integrate Urbit’s native ID and network (i.e. groups and/or the “Pals” app) into the Uniswap experience.
40+
41+# Compensation
42+
43+1 Star upon successful distribution of the app to the network
44+
45+# Future Work
46+
47+- By integrating Urbit ID with Uniswap, traders (who often work with many wallets for different purposes) can operate under a unified identity system.
48+
49+- Once a clear identity is established, new features can be unlocked:
50+
51+- Set yourself to public, to be discoverable (either by anyone or just by your Pals) so they can see your trading performance
52+
53+- Follow top traders and learn from their positions, with potential to follow on
54+
55+- Add a social layer to trading: spin up a chat with the traders you follow to discuss trades as you take on positions, or even create a group for a broader discussion about investing
56+
57+- Create a leaderboard of best traders to promote discovery and foster a competitive spirit
vercel.json+8−13
@@ -62,11 +62,6 @@
62 "destination": "/reset",
62 "destination": "/reset",
63 "permanent": true
63 "permanent": true
64 },
64 },
65− {
66− "source": "/landscape",
67− "destination": "/docs/development/develop",
68− "permanent": true
69− },
70 {
65 {
71 "source": "/install",
66 "source": "/install",
72 "destination": "/getting-started",
67 "destination": "/getting-started",
@@ -97,11 +92,6 @@
97 "destination": "/getting-started/planet",
92 "destination": "/getting-started/planet",
98 "permanent": true
93 "permanent": true
99 },
94 },
100− {
101− "source": "/using/develop",
102− "destination": "/docs/development/develop",
103− "permanent": true
104− },
105 {
95 {
106 "source": "/using/integrating-api",
96 "source": "/using/integrating-api",
107 "destination": "/docs/arvo/eyre/using-eyre",
97 "destination": "/docs/arvo/eyre/using-eyre",
@@ -154,7 +144,7 @@
154 },
144 },
155 {
145 {
156 "source": "/docs/development/:path*",
146 "source": "/docs/development/:path*",
157− "destination": "https://developers.urbit.org/guides/additional/development/:path",
147+ "destination": "https://developers.urbit.org/guides/core/environment",
158 "permanent": true
148 "permanent": true
159 },
149 },
160 {
150 {
@@ -164,7 +154,7 @@
164 },
154 },
165 {
155 {
166 "source": "/docs/hoon/guides/:path*",
156 "source": "/docs/hoon/guides/:path*",
167− "destination": "https://developers.urbit.org/guides/additional/hoon/:path",
157+ "destination": "https://developers.urbit.org/guides/additional/:path",
168 "permanent": true
158 "permanent": true
169 },
159 },
170 {
160 {
@@ -217,6 +207,11 @@
217 "destination": "https://developers.urbit.org/overview/vere",
207 "destination": "https://developers.urbit.org/overview/vere",
218 "permanent": true
208 "permanent": true
219 },
209 },
210+ {
211+ "source": "/docs/userspace/dist/:path*",
212+ "destination": "https://developers.urbit.org/guides/additional/software-distribution",
213+ "permanent": true
214+ },
220 {
215 {
221 "source": "/docs/userspace/full-stack/:path*",
216 "source": "/docs/userspace/full-stack/:path*",
222 "destination": "https://developers.urbit.org/guides/core/app-school-full-stack/:path",
217 "destination": "https://developers.urbit.org/guides/core/app-school-full-stack/:path",
@@ -229,7 +224,7 @@
229 },
224 },
230 {
225 {
231 "source": "/docs/userspace/threads/:path*",
226 "source": "/docs/userspace/threads/:path*",
232− "destination": "https://developers.urbit.org/guides/additional/threads/:path*",
227+ "destination": "https://developers.urbit.org/reference/arvo/threads/:path*",
233 "permanent": true
228 "permanent": true
234 },
229 },
235 {
230 {