การจัดเส้นทางแบบหัวหอม
การสร้างวงจรเสมือน

เพื่อสร้างวงจรเสมือนหนึ่ง ๆ ระบบผู้ใช้จะขอรายการสถานีส่งต่อจากโหนดสารบบ
รายการที่ได้จะเซ็นชื่อโดยกุญแจระบุตัวระยะกลางของโหนดสารบบ และข้อมูลเกี่ยวกับสถานีจะเซ็นชื่อโดยกุญแจระบุตัวของสถานีที่สัมพันธ์กัน
ระบบผู้ใช้ปกติจะเลือกสถานี 3 สถานีจากรายการเพื่อสร้างวงจร
โดยมีการเลือกโหนดขาเข้าจากรายการสุ่มที่เลือกใช้นานเป็นพิเศษที่เรียกว่า สถานียาม (entry guards)
โหนดที่เลือกจะจับเรียงลำดับเป็น "โซ่" หรือ "วงจร" ที่จะส่งผ่านข้อมูล 
เพื่อรักษาสภาพนิรนามของผู้ส่ง ไม่มีโหนดไหนในวงจรที่รู้ทั้งที่อยู่ของต้นสายและของปลายทางทั้งสอง แม้ในมุมมองของระบบปลายทาง ก็จะดูเหมือนว่าการสื่อสารเริ่มมาจากสถานีขาออกของเครือข่าย 
เช่นกัน ไม่มีโหนดไหนในวงจรที่สามารถบอกว่ามีโหนดจำนวนเท่าไรในวงจรหรือรู้เส้นทางการส่งข้อมูลทั้งหมดภายในวงจร และโหนดสุดท้ายเท่านั้น ซึ่งเรียกว่าโหนดขาออก (exit node) จะสามารถกำหนดตำแหน่งตัวเองภายในลูกโซ่
เมื่อสร้างวงจร ระบบผู้ใช้จะต่อสถานีรีเลย์เข้ากับวงจรทีละสถานี ๆ ต่อ ๆ กัน โดยที่การสื่อสารระหว่างระบบต่าง ๆ จะทำผ่านทีแอลเอสอาศัยกุญแจระบุสถานีระยะยาวที่พบในสารบบ 
การต่อสถานีมีรายละเอียดคือคือ (ดูประกอบรูป)
สำหรับสถานีแรก (OR1) ระบบผู้ใช้ขอให้สถานีสร้างวงจร (Create c1) โดยส่งข้อมูล (g^x1) ที่เข้ารหัสลับด้วยกุญแจหัวหอมของสถานีแรก ซึ่งเป็นส่วนแรกของโพรโทคอลต่อรองเพื่อกุญแจสมมาตรคือกุญแจอายุสั้น (ให้สังเกตว่า สถานีแรกรู้ที่อยู่ไอพีของระบบผู้ใช้ และสถานีแรกจะตอบสนองต่อคำขอได้ก็ต่อเมื่อรู้กุญแจหัวหอมส่วนตัวของตน)
สถานีแรกส่งคำตอบยอมรับการสร้างวงจร (Created c1) พร้อมข้อมูลที่กำหนดกุญแจอายุสั้น (g^y1 เป็นต้น) ที่จะใช้เพื่อเข้ารหัสข้อมูลเซลล์ระหว่างระบบผู้ใช้กับสถานีแรก
สำหรับสถานีสอง (OR2) ระบบผู้ใช้จะส่งคำขอให้ต่อวงจรเชื่อมกับสถานีที่สองไปยังสถานีแรก โดยรวมข้อมูลที่เข้ารหัสลับด้วยกุญแจหัวหอมของสถานีที่สอง (g^x2) ซึ่งเป็นส่วนแรกของโพรโทคอลต่อรองเพื่อกุญแจอายุสั้น พร้อมกับคำขอการต่อวงจร (Extend) ซึ่งระบุสถานีที่สองโดยเฉพาะ เข้าเป็นส่วนข้อมูลของเซลล์ แล้วเข้ารหัสลับส่วนข้อมูลด้วยกุญแจอายุสั้นที่ใช้ร่วมกับสถานีแรก (g^x1y1) ต่อจากนั้นจึงส่งคำขอให้ส่ง (Relay/Relay early) ไปยังสถานีแรก (ให้สังเกตว่า ถ้ามีใครสามารถถอดรหัสลับการสื่อสารโดยใช้ทีแอลเอสได้ แต่ไม่มีกุญแจอายุสั้นของสถานีแรก ก็จะไม่สามารถกำหนดได้ว่า เซลล์มีข้อมูลที่จะส่งต่อ หรือเป็นคำขอ/คำตอบรับ คือไม่สามารถรู้ว่าใครกำลังเดินเนินงานกิจกรรมอะไรจริง ๆ)
สถานีแรกถอดรหัสส่วนข้อมูลของเซลล์ด้วยรหัสอายุสั้นที่ใช้ร่วมกับระบบผู้ใช้ (g^x1y1) แล้วพบคำขอให้ต่อวงจร (Extend) จึงขอให้สถานีสองสร้างวงจร (Create c2) โดยส่งคำขอพร้อมกับข้อมูลเข้ารหัสลับ (g^x2) ที่มาจากระบบผู้ใช้ ให้สังเกตว่า สถานีแรกรู้ที่อยู่ไอพีของสถานีสอง แต่ไม่รู้ส่วนข้อมูลที่เข้ารหัสลับด้วยกุญแจหัวหอมของสถานีสองจากระบบผู้ใช้ ข้อมูลซึ่งเป็นส่วนแรกของโพรโทคอลต่อรองเพื่อกุญแจสมมาตรคือกุญแจอายุสั้น สถานีสองจะตอบสนองต่อคำขอได้ก็ต่อเมื่อรู้กุญแจหัวหอมส่วนตัวของตน และจากมุมมองของสถานีสอง คำขอการสร้างวงจรเหมือนกับมาจากสถานีแรก จึงไม่สามารถบอกได้ว่า เป็นการเพิ่มต่อวงจรจากระบบผู้ใช้
สถานีสองส่งคำตอบยอมรับการสร้างวงจร (Created c2) พร้อมข้อมูลที่กำหนดกุญแจอายุสั้น (g^y2 เป็นต้น) ที่จะใช้เพื่อเข้ารหัสส่วนข้อมูลของเซลล์ระหว่างระบบผู้ใช้และสถานีสอง โดยส่งไปยังสถานีหนึ่ง
สถานีแรกรวมการยอมรับการต่อวงจร (Extended) พร้อมกับข้อมูลที่กำหนดกุญแจอายุสั้น (g^y2 เป็นต้น) เข้าในส่วนข้อมูลของเซลล์ แล้วเข้ารหัสลับด้วยกุญแจอายุสั้นที่ใช้ร่วมกับระบบผู้ใช้ ต่อจากนั้นจึงส่งข้อมูลกลับไปยังระบบผู้ใช้โดยเป็นคำขอให้ส่ง (Relay) (ให้สังเกตว่า ถ้ามีใครสามารถถอดรหัสลับการสื่อสารโดยใช้ทีแอลเอสได้ แต่ไม่มีกุญแจอายุสั้นของสถานีแรก ก็จะไม่สามารถกำหนดได้ว่า เซลล์มีข้อมูลที่จะส่งต่อ หรือเป็นคำขอ/คำตอบรับ คือไม่สามารถรู้ว่าใครกำลังเดินเนินงานกิจกรรมอะไรจริง ๆ)
ตัวอย่างนี้ เป็นการสร้างวงจรที่มีโหนดส่งต่อเพียงแค่สองสถานีเท่านั้น การสร้างวงจรเพิ่มเพื่อให้มีโหนดส่งต่อ 3 สถานีก็ทำได้โดยนัยเดียวกัน คือระบบผู้ใช้สามารถส่งคำขอการต่อวงจร (Extend) เชื่อมกับสถานีสามไปยังสถานีสองโดยส่งผ่านสถานีหนึ่ง คล้ายกับลำดับ 3 ที่กล่าวมาแล้ว แต่เข้ารหัสลับส่วนข้อมูลของเซลล์สองครั้งด้วยกุญแจอายุสั้นที่ใช้ร่วมกับสถานีสอง (g^x2y2) แล้วด้วยกุญแจอายุสั้นที่ใช้ร่วมกับสถานีหนึ่ง (g^x1y1)
เพื่อความกระจ่าง อาจกล่าวโดยอีกวิธีหนึ่งก็คือ
โดยใช้การเข้ารหัสลับแบบกุญแจอสมมาตร ระบบผู้ใช้สามารถรับกุญแจสาธารณะ (identity key) เพื่อเริ่มการเชื่อมต่อแบบทีแอลเอสกับโหนดขาเข้า แล้วส่งข้อความผ่านทีแอลเอสซึ่งเข้ารหัสด้วยกุญแจทีแอลเอส เพื่อต่อรองสร้างกุญแจอายุสั้น (ephemeral key) อาศัยกุญแจหัวหอม (onion key) ของสถานี
โดยใช้การเชื่อมต่อที่เข้ารหัสกับโหนดขาเข้า (ด้วยกุญแจทีแอลเอส และกุญแจอายุสั้นเพื่อเข้ารหัสส่วนข้อมูลของเซลล์อีกทีหนึ่ง) ระบบผู้ใช้ส่งคำขอให้ต่อสถานีสองเข้ากับวงจรไปยังสถานีแรก ซึ่งสถานีแรกทำกับสถานีสองคล้ายในขั้นตอนที่หนึ่ง แต่ใช้ข้อมูลการต่อรองสร้างกุญแจอายุสั้นที่ได้จากระบบผู้ใช้ (เพราะสถานีแรกจะไม่รู้กุญแจอายุสั้นของสถานีที่สอง) โดยมุมมองของสถานีที่สอง นี่เป็นเหมือนการขอสร้างวงจรจากสถานีแรก จึงไม่สามารถบอกได้ว่าเป็นการต่อวงจรที่เริ่มจากระบบผู้ใช้
โดยใช้การเชื่อมต่อที่เข้ารหัสกับโหนดขาเข้า (ด้วยกุญแจทีแอลเอส และกุญแจอายุสั้นเพื่อเข้ารหัสส่วนข้อมูลของเซลล์อีกทีหนึ่ง) และการเชื่อมต่อที่เข้ารหัสกับโหนดกลาง (ด้วยกุญแจทีแอลเอสที่ใช้ร่วมกันระหว่างสถานีแรกและสอง และกุญแจอายุสั้นเพื่อเข้ารหัสส่วนข้อมูลของเซลล์อีกทีหนึ่ง) ระบบผู้ใช้ส่งคำขอให้ต่อสถานีสามเข้ากับวงจรไปยังสถานีสอง ซึ่งสถานีสองทำกับสถานีสามเหมือนในขั้นตอนที่หนึ่ง แต่ใช้ข้อมูลการต่อรองสร้างกุญแจอายุสั้นที่ได้จากระบบผู้ใช้ (เพราะสถานีสองจะไม่รู้กุญแจอายุสั้นของสถานีที่สาม) โดยมุมมองของสถานีที่สาม นี่เป็นเหมือนการขอสร้างวงจรจากสถานีสอง จึงไม่สามารถบอกได้ว่าเป็นการต่อวงจรที่เริ่มจากระบบผู้ใช้
เมื่อสร้างวงจรเสร็จแล้ว ระบบผู้ใช้ก็จะสามารถส่งข้อมูลผ่านอินเทอร์เน็ตไปยังระบบปลายทางอย่างนิรนามได้
สำหรับโปรแกรมผู้ใช้ที่ตั้งให้สื่อสารผ่านเครือข่ายหัวหอม ไม่ว่าจะเป็นโปรแกรมเดียว (เช่นทอร์เบราว์เซอร์) หรือหลายโปรแกรม สายข้อมูลทีซีพีต่าง ๆ ที่โปรแกรมผู้ใช้สร้างก็จะส่งผ่านวงจรเดียวกัน แต่ระบบผู้ใช้จะตั้งวงจรใหม่ทุก ๆ 10 นาที ดังนั้น สายข้อมูลใหม่ที่ตั้งขึ้นก็จะใช้วงจรใหม่ ส่วนสายข้อมูลเก่าที่ยังดำเนินการอยู่ก็จะคงอยู่ในวงจรเดิมจนกว่าจะเสร็จ ดังนั้น ในระบบผู้ใช้ อาจมีการส่งข้อมูลผ่านเครือข่ายหัวหอมเป็นหลายวงจร แต่ละวงจรอาจมีสายข้อมูลหลายสาย โดยอาจเป็นสายข้อมูลจากโปรแกรมชุดเดียวหรือหลายโปรแกรม การเปลี่ยนวงจรการสื่อสารเช่นนี้ โดยมีสถานีขาออกที่ต่าง ๆ กัน จะทำให้ระบบปลายทางสัมพันธ์การกระทำของผู้ใช้ที่เกิดในเวลาต่าง ๆ ได้ยากขึ้น