End gateway

End gateways are portals generated in the End: some are spawned around the central island by defeating the ender dragon multiple times; others are randomly generated throughout the outer islands.

On the central island, up to 20 gateways can be spawned. These can send the player far away to the outer islands, each of which has a corresponding gateway that returns the player back to the central island. There are other randomly-generated gateways that always lead the player back to the obsidian platform. They provide quick access to the different parts of the End dimension.

On the central island
A group of 20 End gateways can be spawned around the edge of the central island, one at a time by defeating the dragon. Their configuration resembles a perfect circle, equally distributed, surrounding the island at Y-level 75, at a distance of 96 blocks (regardless of angle) away from the center (0,0) in random order.

These gateways are referred in the game as END_GATEWAY_DELAYED. They function by sending the player far away to the outer islands, in the exact direction that that gateway is located relatively to the island center (0,0).

They do not regenerate after the ender dragon has been defeated 20 times.

The position of these gateways are always fixed, as is shown below:

On the outer islands
Each of the 20 gateways on the central island spawns an additional gateway that is connected to itself, after having been activated once. These gateways are located much further away, reaching out in all directions to the outer islands in the End dimension. They still arrange in a circular way, but the distances of them to the central island varies, depending on how far is the first land that they contact.

Their function is to send the player back to the original gateway in the central island that it links itself.

Generally, they generate at any Y-level above 30, and always above a block of End stone. They must also generate in chunks that have any block above Y-level 30, and if the chunk does not provide any End stone, a platform of the same material generates beneath it.
 * Details

More specifically: the game first draws a line with a length of 1024 blocks from the center (0,0) through the activated gateway on the central island. If the conditions above are met in the chunk at the end of that line, the game decreases the length of the line until either a chunk not meeting the conditions has been found or until the line has a length of 768. If the conditions above are not met, the game increases the length of the vector until it first finds a chunk meeting the conditions. The gateway is then generated in the last found chunk matching the criteria. Knowing this, the position of the exit gateway can be manipulated. However, once an End gateway on the central island has been activated, it is indefinitely linked to its corresponding gateway on the outer island. Changing the position of the outer gateway is then no longer possible.

By natural generation
Another group of gateways are generated naturally in the End, they are randomly found throughout the area of the outer islands. However, they can only be found in the End Highlands biome.

They are referred in the game as END_GATEWAY_RETURN. Their function is similar to the ones that teleport the player back the central island, but instead they always send them back to the obsidian platform, allowing for an easy and quick travel back to the central area when one is encountered.

Structure
The end gateway is composed of an end gateway block confined within a vaguely octahedral formation made up of twelve bedrock.

Behavior
A magenta beam shoots out vertically from the top and bottom of the gateway when it is generated. The beam disappears after 10 seconds. When an entity enters the gateway, the gateway emits a purple beam instead for 2 seconds. In addition, this purple beam also emits automatically every 2400 game ticks (2 minutes) if there is no entity being teleported.

The bedrock arrangement prevents the player from entering the gateway directly. Throwing an ender pearl or flying with elytra straight into the end gateway block teleports the player to the outer End islands. Players can also access the inside of an end gateway by constructing a water channel leading into it and sprint-swimming through the channel and into the gateway, or by suffocation prevention. Any entity that moves into the end gateway block also is teleported. Another way is to place a trapdoor on the gateway while standing on a solid block to force the player to crawl.

Once the gateway is activated, another end gateway generates in the outer end islands near to where the player is teleported; this gateway teleports the player back to the original gateway, providing a way to return to the main island.

The position where the player or entity lands after teleporting is determined by a systematic algorithm: the gateway searches for a full block that isn't bedrock, starting from the north-west corner at the topmost height (Y=255) within a 5 block radius around the gateway block (shown as the gold block in the image on the right). If there is a block at that position, then the entity is teleported onto that block. If there is no block, then the next position along the Z-axis is searched (shown as the lapis lazuli block in the image on the right). This continues along each column in an 11×11 area at the same Y-level with the exception of blocks above, below, or directly adjacent (including diagonals) to the gateway block. If there are no blocks, it moves one Y-level down and repeats the sequence from the north-west corner again. It continues doing this until every height is checked, and if there are no blocks within any of these points it always teleports the entity exactly two blocks above the gateway block.

Trivia

 * If an end gateway is broken (e.g. in creative), players can still enter the gateway on the other end. This teleports the player to the broken portal, which does not regenerate.
 * Using the exitportal tag and the command it is possible to create a gateway portal in the Overworld and program it to go to a location.