I’ll try to take a deeper look at this later, but know that in Dgraph, uid is a reserved keyword. You could definitely use it like you have above, but it will definitely conflict with the uid mechanism in mutations and when using DQL.
Might I suggest
type User {
id: ID
Name: String
Address: [Address]
}