A vertex shader is ran once for every vertex within your geometry. Its whole purpose is to return an altered, or unaltered, vec4() type containing the x, y, z, and w coordinates of the vertex currently being looped over.
In order to "return" this vec4() type, you must assign it to an attribute called gl_Position.
Add a gl_Position attribute to your main function and assign it a vec4() with any number 0-1 for its x, y, z, and w values.