Consider a connected graph with nodes (or processes) and edges (or communication links). An edge token associated with an edge is a token maintained by the two nodes connected by the edge; one and only one of the two nodes holds the token. An edge token can be passed from one node to the other if so desired. This paper first presents a randomized self-stabilizing algorithm to implement the edge token, in which each process maintains two three-state variables for an edge; the scheme works under the distributed scheduler with the read/write atomicity. Then, the edge token algorithm is used as a building block in two other self-stabilizing algorithms: one is for ring orientation problem and the other for token circulation problem on trees. All the proposed algorithms are uniform.