@@ -0,0 +1,64 @@
3+title = "Go-Urbit Core Interface"
7+grant_type = ["Proposal"]
8+grant_category = ["App Dev: Other"]
12+description = "Create a go-urbit library that contains the required functions for interfacing with Ames"
13+reward = "$30000 in WSTR"
14+assignee = "~litryl-tadmev"
15+champion = "~wicdev-wisryt"
23+# go-urbit Core Interface
25+One of the missing projects in the Urbit ecosystem is the ability to directly communicate with Urbit from another device or system using the Ames protocol.
27+Most particularly embedded devices and low-power systems needing to transmit messages to another ship, on which running a full Urbit ship would either be not possible, or not ideal. This also includes services running in cloud environments only needing to transmit message packets.
29+I am proposing to create a go-urbit library that contains the required functions for interfacing with Ames.
31+My end goal, as discussed with ~wicdev-wisryt for a future proposal, is to rewrite the Urbit King in go using this library for maximum security and memory safety.
35+### Milestone 1 - Go Noun
37+Expected Completion: 15 April 2022
38+Payment: $10000 in WSTR
40+Implement the Noun protocol in Golang.
48+Implement the core Noun structures:
53+### Milestone 2 - Go Ames Utilities
55+Expected Completion: 1 May 2022
56+Payment: $20000 in WSTR
58+Implement a Golang utility library for interfacing with Ames.
60+- Lookup a planet's keys on Ethereum by name
61+- Send encrypted packets using urcrypt
62+- Construct and send poke
63+- Encode and send packet
64+- Write documentation on setup and usage