# Resolver discussion
## Resolver types
Currently, resolver implementation differentiates between different resolver *types*. When resolving a name, the user should supply a type of resolver to use - for example, ENS, RNS, private DNS etc.
Initially, my thoughts were to determine the type of resolver based on the TLD of the URL, howerver there is no guarantee that a TLD is directly tied to a resolver: for example, a private DNS can shadow an ENS TLD, ENS may reserve different TLDs in the future etc.
Questions:
1. Should a user supply the __type__ of resolver during the resolution step, or should it be inferred from the TLD?
2. Should testnets be registered as a distinct __type__ (eg. Ropsten ENS, Goerli ENS, _<rootstock_testnet_name>_ RNS)?
## URL validation and path processing
Resolver should try resolve a __valid__ URL.
Questions:
1. Should the resolver pass every valid URL, or a subset (ie. just the domain)?
An example:
Input:
`https://www.example.ens/foo/bar/baz`
Output (JSON):
```
{
protocol: "https",
user: "",
host: "",
port: "".
hash: "0xdead...beef"
path: {
segments: ["foo", "bar", "baz"],
slug: "baz"
},
}
```