---
# System prepended metadata

title: Resolver discussion

---

# 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"
    },
}
```
