CINXE.COM
IETF | Donate to the IETF Endowment
<!doctype html><!--[if lt IE 7]> <html lang="en" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--><!--[if IE 7]> <html lang="en" class="no-js lt-ie9 lt-ie8"> <![endif]--><!--[if IE 8]> <html lang="en" class="no-js lt-ie9"> <![endif]--><!--[if gt IE 8]><!--><html lang="en" class="no-js"><!--<![endif]--><head> <meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>IETF | Donate to the IETF Endowment</title><meta name="description" content="Help sustain the mission of the IETF for the long-term as it fosters and produces technical standards that improve how the global Internet is developed, used, and managed."/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@ietf"/><meta name="twitter:title" content="Donate to the IETF Endowment"/><meta name="twitter:description" content="Help sustain the mission of the IETF for the long-term as it fosters and produces technical standards that improve how the global Internet is developed, used, and managed."><meta name="twitter:image" content="/media/images/ietflogotrans.original.png"><meta property="fb:app_id" content="159756941186350"/><meta property="og:type" content="website"/><meta property="og:url" content="/support-us/donate-ietf-endowment/"/><meta property="og:title" content="Donate to the IETF Endowment"/><meta property="og:image" content="/media/images/ietflogotrans.original.png"/><meta property="og:description" content="Help sustain the mission of the IETF for the long-term as it fosters and produces technical standards that improve how the global Internet is developed, used, and managed."/><meta property="og:site_name" content="IETF"/> <link href="https://static.ietf.org/fonts/inter/import.css" rel="stylesheet"/> <script defer="defer" src="/static/dist/main.7d84808b4dfd.js"></script><link href="/static/dist/main.6c3ce2b62208.css" rel="stylesheet"></head><body class="template-standard-page"> <header class="header"> <a href="#content" class="visually-hidden visually-hidden-focusable">Skip to main content</a> <nav class="navbar navbar-expand-lg" aria-label="Main" > <div class="container position-relative"> <button class="navbar-toggler navbar-toggler-light" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" > <span class="navbar-toggler-icon text-dark"></span> </button> <!-- Mobile search --> <button class="btn btn-link nav-link text-dark ms-3 me-auto d-lg-none" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSearch" aria-controls="navbarSearch" aria-expanded="false" aria-label="Toggle search bar" > <i class="bi bi-search"></i> Search </button> <div class="navbar-brand header__logo-container"> <a class="text-light" href="/"> <img class="header__logo" src="https://static.ietf.org/logos/ietf.svg" alt="IETF logo" /> </a> </div> <div class="collapse navbar-collapse flex-wrap-reverse" id="navbarSupportedContent" > <ul class="navbar-nav col-12 col-xl-auto justify-content-xl-center flex-grow"> <li class="nav-item dropdown position-static"> <button class=" nav-link btn megamenu__toggle text-dark fw-semibold text-uppercase dropdown-toggle pe-1 " id="megamenu-toggle-1" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false" > About </button> <div class="dropdown-menu megamenu__menu w-100 px-2" aria-labelledby="megamenu-toggle-" > <div class="container py-3"> <div class="row gx-5"> <div class="col-lg-4 d-none d-lg-block"> <div class=""> <p></p> <img src="/media/images/ietf-logo.width-600.jpg" class="w-100 object-fit-cover" /> </div> </div> <div class="col-lg-8"> <h5 class="border-bottom mb-1 pb-1"> <a class="dropdown-item" href="/about/"> About <i class="bi bi-chevron-right"></i> </a> </h5> <ul class="megamenu__linklist"> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Introduction to the IETF</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/about/introduction/"> Introduction to the IETF </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/about/introduction/#participants"> Participants </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/about/introduction/#mission"> Mission </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/about/introduction/#principles"> Principles </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/about/introduction/#work"> The work </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Structure of the IETF</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/about/groups/iesg/"> Internet Engineering Steering Group </a> </li> <li> <a class="dropdown-item" href="/about/groups/iab/"> Internet Architecture Board </a> </li> <li> <a class="dropdown-item" href="/about/groups/irtf/"> Internet Research Task Force </a> </li> <li> <a class="dropdown-item" href="/about/liaisons/"> Liaisons </a> </li> <li> <a class="dropdown-item" href="/about/groups/nomcom/"> Nominating Committee </a> </li> <li> <a class="dropdown-item" href="/about/groups/trust/"> IETF Trust </a> </li> <li> <a class="dropdown-item" href="/about/groups/rfc-editor/"> RFC Editor </a> </li> <li> <a class="dropdown-item" href="/about/groups/ise/"> Independent Submissions Editor </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Legal requests</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/administration/legal-request-procedures/"> Legal request procedures </a> </li> <li> <a class="dropdown-item" href="/administration/legal-requests/"> Legal requests </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Administration</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/administration/overview/"> IETF Administration LLC </a> </li> <li> <a class="dropdown-item" href="/administration/announcements/"> Administrative announcements </a> </li> <li> <a class="dropdown-item" href="/administration/reports/"> Administrative reports </a> </li> <li> <a class="dropdown-item" href="/administration/llc-board/"> IETF Administration LLC Board of Directors </a> </li> <li> <a class="dropdown-item" href="/administration/financial-statements/"> Financial statements </a> </li> <li> <a class="dropdown-item" href="/administration/rfps-and-contracts/"> RFPs and contracts </a> </li> <li> <a class="dropdown-item" href="/administration/policies-procedures/"> Administrative policies and procedures </a> </li> <li> <a class="dropdown-item" href="/transparency/"> IETF LLC transparency report </a> </li> </ul> </div> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <button class=" nav-link btn megamenu__toggle text-dark fw-semibold text-uppercase dropdown-toggle pe-1 " id="megamenu-toggle-2" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false" > Technologies </button> <div class="dropdown-menu megamenu__menu w-100 px-2" aria-labelledby="megamenu-toggle-" > <div class="container py-3"> <div class="row gx-5"> <div class="col-lg-4 d-none d-lg-block"> <div class=""> <p>The IETF works on a broad range of networking technologies that provide the foundation for the Internet's growth and evolution.</p> <img src="/media/images/things.width-600.jpg" class="w-100 object-fit-cover" /> </div> </div> <div class="col-lg-8"> <h5 class="border-bottom mb-1 pb-1"> <a class="dropdown-item" href="/technologies/"> Technologies <i class="bi bi-chevron-right"></i> </a> </h5> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/technologies/netmgmt/"> Automated network management </a> </li> <li> <a class="dropdown-item" href="/technologies/iot/"> The Internet of Things </a> </li> <li> <a class="dropdown-item" href="/technologies/transport/"> New transport technology </a> </li> <li> <a class="dropdown-item" href="/technologies/security/"> Security & privacy </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">IETF technologies in action</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/technologies/dns/"> Domain Name System </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">IETF technology groups</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/technologies/areas/"> IETF Areas </a> </li> <li> <a class="dropdown-item" href="/technologies/keywords/"> Working Group keywords </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Recent posts about IETF technologies</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/blog/wimse-working-group/"> WIMSE Working Group: Serious business for cloud computing </a> </li> <li> <a class="dropdown-item" href="/blog/green-wg/"> The new GREEN working group gets ready for an energy efficient Internet </a> </li> <li> <a class="dropdown-item" href="/blog/wit-area/"> New IETF Area focuses on web and transport technologies </a> </li> <li> <a class="dropdown-item" href="/blog/edhoc/"> EDHOC - A new lightweight authenticated key exchange protocol provides improved security with less overhead for Internet-of-Things devices </a> </li> </ul> </div> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <button class=" nav-link btn megamenu__toggle text-dark fw-semibold text-uppercase dropdown-toggle pe-1 " id="megamenu-toggle-5" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false" > Meetings </button> <div class="dropdown-menu megamenu__menu w-100 px-2" aria-labelledby="megamenu-toggle-" > <div class="container py-3"> <div class="row gx-5"> <div class="col-lg-4 d-none d-lg-block"> <div class=""> <p>While most IETF work takes place online, meetings and other events such as Hackathons provide in-person opportunities to advance work within the IETF.</p> <img src="/media/images/_MG_4832.width-600.jpg" class="w-100 object-fit-cover" /> </div> </div> <div class="col-lg-8"> <h5 class="border-bottom mb-1 pb-1"> <a class="dropdown-item" href="/meeting/"> Meetings <i class="bi bi-chevron-right"></i> </a> </h5> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/meeting/121/"> IETF 121 Dublin </a> </li> <li> <a class="dropdown-item" href="/meeting/122/"> IETF 122 Bangkok </a> </li> <li> <a class="dropdown-item" href="/meeting/123/"> IETF 123 Madrid </a> </li> <li> <a class="dropdown-item" href="/meeting/upcoming/"> Upcoming meetings </a> </li> <li> <a class="dropdown-item" href="/meeting/past/"> Past meetings </a> </li> <li> <a class="dropdown-item" href="/meeting/interim/"> Interim meetings </a> </li> <li> <a class="dropdown-item" href="/meeting/hackathons/"> IETF Hackathons </a> </li> <li> <a class="dropdown-item" href="/meeting/code-sprint/"> Code Sprint </a> </li> <li> <a class="dropdown-item" href="/meeting/124/"> IETF 124 Montreal </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Participation information</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/meeting/preparation/"> Preparing for an IETF Meeting </a> </li> <li> <a class="dropdown-item" href="/meeting/guide-ietf-meetings/"> Guide to IETF Meetings </a> </li> <li> <a class="dropdown-item" href="/meeting/technology/"> Meeting network and technology </a> </li> <li> <a class="dropdown-item" href="/meeting/new-participants/"> New Participants </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Organizing meetings</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/meeting/planning/"> Meeting planning </a> </li> <li> <a class="dropdown-item" href="/support-us/sponsorship/"> Meeting sponsorship </a> </li> </ul> </div> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <button class=" nav-link btn megamenu__toggle text-dark fw-semibold text-uppercase dropdown-toggle pe-1 " id="megamenu-toggle-4" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false" > Process </button> <div class="dropdown-menu megamenu__menu w-100 px-2" aria-labelledby="megamenu-toggle-" > <div class="container py-3"> <div class="row gx-5"> <div class="col-lg-4 d-none d-lg-block"> <div class=""> <p>The IETF is the premier Internet standards organization. It follows open and well-documented processes for setting these standards. Once published, those standards are made freely available.</p> </div> </div> <div class="col-lg-8"> <h5 class="border-bottom mb-1 pb-1"> <a class="dropdown-item" href="/process/"> Process <i class="bi bi-chevron-right"></i> </a> </h5> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/process/process/"> Internet standards process </a> </li> <li> <a class="dropdown-item" href="/process/wgs/"> Guide to IETF Working Groups </a> </li> <li> <a class="dropdown-item" href="/process/bofs/"> Birds of a Feather </a> </li> <li> <a class="dropdown-item" href="/process/iana/"> Protocol registries (IANA) </a> </li> <li> <a class="dropdown-item" href="/process/ipr/"> Intellectual property rights </a> </li> <li> <a class="dropdown-item" href="/process/directorates/"> Directorates and teams </a> </li> <li> <a class="dropdown-item" href="/process/informal/"> The IETF process: an informal guide </a> </li> <li> <a class="dropdown-item" href="/process/new-work/"> Bringing new work to the IETF </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">RFCs</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/process/rfcs/"> About RFCs </a> </li> <li> <a class="dropdown-item" href="/about/groups/rfc-editor/"> RFC Editor </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/process/rfcs/#availability-and-use"> Availability and Use </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/process/rfcs/#formats"> Publication formats </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/process/rfcs/#statuses"> Statuses </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/process/rfcs/#streams"> Publication streams </a> </li> <li> <a class="dropdown-item" href="https://www.ietf.org/process/rfcs/#errata"> Corrections and errata </a> </li> <li> <a class="dropdown-item" href="/process/rfcs/vulnerabilities/"> Reporting protocol vulnerabilities to the IETF </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Standards process details</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/process/process/informational-vs-experimental/"> Choosing between Informational and Experimental Status </a> </li> <li> <a class="dropdown-item" href="/process/process/role-iesg-standards-process/"> The role of the IESG in the Standards process </a> </li> <li> <a class="dropdown-item" href="https://datatracker.ietf.org/group/iesg/appeals/"> Appeals to the IESG </a> </li> <li> <a class="dropdown-item" href="/process/process/iesg-ballots/"> IESG ballot procedures </a> </li> <li> <a class="dropdown-item" href="/process/informal/"> The IETF process: an informal guide </a> </li> </ul> </div> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <button class=" nav-link btn megamenu__toggle text-dark fw-semibold text-uppercase dropdown-toggle pe-1 " id="megamenu-toggle-3" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false" > Participate </button> <div class="dropdown-menu megamenu__menu w-100 px-2" aria-labelledby="megamenu-toggle-" > <div class="container py-3"> <div class="row gx-5"> <div class="col-lg-4 d-none d-lg-block"> <div class=""> <p>The global IETF community works together in many different ways to produce high quality, relevant technical documents that influence the way people design, use, and manage the Internet.</p> </div> </div> <div class="col-lg-8"> <h5 class="border-bottom mb-1 pb-1"> <a class="dropdown-item" href="/participate/"> Participate <i class="bi bi-chevron-right"></i> </a> </h5> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/participate/get-started/"> Getting started in the IETF </a> </li> <li> <a class="dropdown-item" href="/participate/ids/"> Internet-Drafts </a> </li> <li> <a class="dropdown-item" href="/participate/ietf-systers/"> IETF Systers </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Tools and services</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/participate/lists/"> Mailing lists </a> </li> <li> <a class="dropdown-item" href="/participate/tools/"> Tools and Services </a> </li> <li> <a class="dropdown-item" href="/about/open-records/"> Open records </a> </li> <li> <a class="dropdown-item" href="https://chairs.ietf.org"> Chairs Resources </a> </li> <li> <a class="dropdown-item" href="https://authors.ietf.org"> I-D Authors Resources </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Participation guides</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/meeting/guide-ietf-meetings/"> Guide to IETF Meetings </a> </li> <li> <a class="dropdown-item" href="/process/wgs/"> Guide to IETF Working Groups </a> </li> <li> <a class="dropdown-item" href="/participate/roles/"> Roles in the IETF </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Key policies</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/about/note-well/"> Note Well - A reminder of IETF policies </a> </li> <li> <a class="dropdown-item" href="https://datatracker.ietf.org/doc/statement-iesg-ietf-anti-harassment-policy-20131103/"> Anti-harassment policy </a> </li> <li> <a class="dropdown-item" href="https://www.rfc-editor.org/info/bcp9"> Internet Standards process (BCP 9) </a> </li> <li> <a class="dropdown-item" href="https://www.rfc-editor.org/info/bcp25"> Working Group processes (BCP 25) </a> </li> <li> <a class="dropdown-item" href="https://www.rfc-editor.org/rfc/rfc7154.html"> Guidelines for conduct (BCP 54) </a> </li> <li> <a class="dropdown-item" href="https://www.rfc-editor.org/rfc/rfc5378.html"> Copyright (BCP 78) </a> </li> <li> <a class="dropdown-item" href="https://www.rfc-editor.org/rfc/rfc8179.html"> Patents, Participation (BCP 79) </a> </li> <li> <a class="dropdown-item" href="/privacy-statement/"> IETF/IRTF/IAB Privacy Statement </a> </li> </ul> </div> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <button class=" nav-link btn megamenu__toggle text-dark fw-semibold text-uppercase dropdown-toggle pe-1 " id="megamenu-toggle-6" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false" > Support us </button> <div class="dropdown-menu megamenu__menu w-100 px-2" aria-labelledby="megamenu-toggle-" > <div class="container py-3"> <div class="row gx-5"> <div class="col-lg-4 d-none d-lg-block"> <div class=""> <p>By supporting the IETF today, you are ensuring a free and open Internet exists tomorrow.</p> <img src="/media/images/IMG_15.width-600.jpg" class="w-100 object-fit-cover" /> </div> </div> <div class="col-lg-8"> <h5 class="border-bottom mb-1 pb-1"> <a class="dropdown-item" href="/support-us/"> Support us <i class="bi bi-chevron-right"></i> </a> </h5> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/support-us/why-support/"> Why we need your support </a> </li> <li> <a class="dropdown-item" href="/support-us/donors/"> IETF financial supporters </a> </li> <li> <a class="dropdown-item" href="/support-us/donate-ietf-endowment/"> Donate to the IETF Endowment </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Ways to give</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/support-us/endowment/"> IETF Endowment </a> </li> <li> <a class="dropdown-item" href="/support-us/sponsorship/"> Meeting sponsorship </a> </li> <li> <a class="dropdown-item" href="/support-us/donate/"> Other ways to give </a> </li> <li> <a class="dropdown-item" href="/support-us/technical-foundations/"> Technical foundations for business </a> </li> </ul> <h6 class="mt-3 mb-1 pb-1 border-bottom">Supporting values</h6> <ul class="megamenu__linklist"> <li> <a class="dropdown-item" href="/runningcode/"> Running Code </a> </li> <li> <a class="dropdown-item" href="/sustainability/"> Sustainability </a> </li> <li> <a class="dropdown-item" href="/diversity/"> Diversity and Inclusion </a> </li> <li> <a class="dropdown-item" href="/open-internet/"> Open Internet </a> </li> </ul> </div> </div> </div> </div> </li> </ul> <ul class="navbar-nav col-xl-auto"> <li class=" nav-item " > <a class=" nav-link btn text-dark " href="/blog/" >News & blog</a> </li> <li class="nav-item d-none d-lg-inline-block"> <a href="/search" class="btn text-dark nav-link" role="button" data-bs-toggle="collapse" data-bs-target="#navbarSearch" aria-controls="navbarSearch" aria-expanded="false" aria-label="Toggle search bar" > <i class="bi bi-search"></i> Search </a> </li> </ul> </div> </div> </nav> <div class="collapse" id="navbarSearch"> <div class="container"> <div class="row justify-content-center"> <form class="input-group mt-3 mb-3 col-md-8 col-lg-6" action="/search/" method="get" name="search" > <input id="search" type="search" class="form-control" placeholder="Search" aria-label="Search" name="query" required /> <button type="submit" class="btn btn-primary" aria-label="Submit website search">Go</button> </form> </div> </div> </div> </header> <main id="content"> <div class="bg-white pb-1"> <div class="container"> <nav aria-label="breadcrumbs"> <ol class="breadcrumb bg-transparent pt-3 mb-3 "> <li class="breadcrumb-item"><a class="text-dark" aria-label="Home" href="/"><i class="bi bi-house-door-fill"></i></a></li> <li class="breadcrumb-item "><a class="text-dark" href="/support-us/">Support us</a></li> </ol> </nav> <h1>Donate to the IETF Endowment</h1> <p class="lead u-max-text-width">Help sustain the mission of the IETF for the long-term as it fosters and produces technical standards that improve how the global Internet is developed, used, and managed.</p> <ul class="social"></ul> </div> </div> <div class="bg-white"> <div class="container"> <div class="row g-0 align-items-start justify-content-between"> <div class="col-12 col-lg-8 col-xl-9 pe-lg-3"> <div class="mb-3 pt-3 pt-lg-3 border-top"> <div class=""> <div id="in-depth" class="u-max-text-width"> <div class="block-raw_html"><style> .hidden { display: none !important; } .was-validated input:invalid{ border-color: #900; background-color: #FDD; } .invalid-feedback { display: none; width: 100%; margin-top: 0.25rem; font-size: 80%; color: #dc3545; } .was-validated :invalid ~ .invalid-feedback { display: block; } .input-hidden{ height:0; width:0; visibility: hidden; padding:0; margin:0; float:right; } table, th, td { border: 1px solid #ced4da; } table { color: #49555c; border-radius: 0.25rem; } td { padding: 0.375rem 0.75rem; } table { border-collapse: collapse; border-spacing: 0; table-layout: fixed; } table tr:last-child td:first-child { border-bottom-left-radius: 0.25rem; } table tr:last-child td:last-child { border-bottom-right-radius: 0.25rem; } .radio { display: flex; align-items: center; } .d-form-control { display: block; width: 100%; height: 100%; border: 1px solid #ced4da; padding: 0.375rem 0.75rem; box-sizing: border-box; border-radius: 0.25rem; } .d-form-group { margin-bottom: 1rem; } .d-monthly { display: flex; justify-content: center; width: 100%; margin-top: 15px; } input[type=checkbox] { margin-right: 8px; } .g-radio { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; column-gap: 10px; row-gap: 15px; } .g-custom-radio { border: 1px solid rgba(0, 0, 0, 0.125); border-radius: .25rem; width: 100%; } .item-a { grid-column: span 2; } .d-small { font-size: .875rem; } .donation_amount__radio { position: absolute; width: 0; } .donation_amount__radio:hover { color: #fff; background: #1A7DAE; cursor: pointer; } .donation_amount__radio:checked + label { color: white; background-color: #1A7DAE; } .donation_amount__label { position: relative; z-index: 1; display: block; padding: 6px 10px; text-align: center; cursor: pointer; color: #49555c; margin-bottom: 0; } #id_donation_total, #id_donation_sum { text-align: right; } #id_donation-table { width: 100%; background-color: white; } /* Spinner ========================================================================== */ #ajax-spinner { position:fixed; width:100%; left:0;right:0;top:0;bottom:0; background-color: rgba(255,255,255,0.7); z-index:9999; display:none; } @-webkit-keyframes spin { from {-webkit-transform:rotate(0deg);} to {-webkit-transform:rotate(360deg);} } @keyframes spin { from {transform:rotate(0deg);} to {transform:rotate(360deg);} } #ajax-spinner::after { content:''; display:block; position:absolute; left:48%;top:40%; width:40px;height:40px; border-style:solid; border-color:black; border-top-color:transparent; border-width: 4px; border-radius:50%; -webkit-animation: spin .8s linear infinite; animation: spin .8s linear infinite; } </style> <div id="ajax-spinner"></div> <form action="" id="donation-form" novalidate=""> <div class="row" id="main"> <div class="col"> <h2>Donate to the IETF Endowment</h2> <p></p> <div class="g-radio"> <div class="g-custom-radio"> <input class="donation_amount__radio" id="id_donation_0" name="donation" title="" type="radio" value="10"/> <label class="donation_amount__label" for="id_donation_0">$10</label> </div> <div class="g-custom-radio"> <input class="donation_amount__radio" id="id_donation_1" name="donation" title="" type="radio" value="20"/> <label class="donation_amount__label" for="id_donation_1">$20</label> </div> <div class="g-custom-radio"> <input class="donation_amount__radio" id="id_donation_2" name="donation" title="" type="radio" value="50"/> <label class="donation_amount__label" for="id_donation_2">$50</label> </div> <div class="g-custom-radio"> <input class="donation_amount__radio" id="id_donation_3" name="donation" title="" type="radio" value="100"/> <label class="donation_amount__label" for="id_donation_3">$100</label> </div> <div class="g-custom-radio"> <input class="donation_amount__radio" id="id_donation_4" name="donation" title="" type="radio" value="250"/> <label class="donation_amount__label" for="id_donation_4">$250</label> </div> <div class="g-custom-radio"> <input class="donation_amount__radio" id="id_donation_5" name="donation" title="" type="radio" value="500"/> <label class="donation_amount__label" for="id_donation_5">$500</label> </div> <input class="donation_amount__radio" id="id_donation_6" name="donation" title="" type="radio" value="0"/> <div class="item-a"> <input class="d-form-control" id="id_donation_other" max="10000" min="1" name="donation_other" placeholder="Other amount" type="number"/> </div> </div> <!-- g-radio --> <input class="input-hidden" id="id_donation_amount" name="donation_amount" required="" type="text"/> <div class="invalid-feedback">You must select an amount (or enter a custom amount)</div> <div class="d-monthly"> <div> <input id="id_monthly" name="monthly" type="checkbox"/> <label for="id_monthly">Make it monthly</label> </div> </div> <h2>Your donation</h2> <table id="id_donation-table"> <colgroup> <col span="1" style="width: 70%;"/> <col span="1" style="width: 30%;"/> </colgroup> <tr> <td>IETF Endowment</td> <td id="id_donation_total"></td> </tr> <tr> <td>Total</td> <td id="id_donation_sum"></td> </tr> </table> <h2>Donor details for your receipt</h2> <div class="d-form-group"> <input class="d-form-control" id="id_email" maxlength="255" name="email" placeholder="Email" required="" type="email" value=""/> </div> <div class="d-form-group"> <input class="d-form-control" id="id_first_name" maxlength="255" name="first_name" placeholder="First Name" required="" type="text" value=""/> </div> <div class="d-form-group"> <input class="d-form-control" id="id_last_name" maxlength="255" name="last_name" placeholder="Last Name" required="" type="text" value=""/> </div> <div class="d-form-group"> <input class="d-form-control" id="id_organisation" maxlength="255" name="organisation" placeholder="Organisation (optional)" type="text" value=""/> </div> <div class="d-form-group"> <input id="id_show_name" name="show_name" type="checkbox"/> <label class="d-small" for="id_show_name">Show your details on the <a href="https://www.ietf.org/about/support/individual-supporters">Supporters page</a></label> </div> <h2>Choose a payment method</h2> <div id="paypal-button-container"></div> </div> <!-- col --> </div> <!-- row --> </form> <div class="hidden" id="thankyou"> <h2>Thank you for your donation to the IETF</h2> <p>You will receive a receipt for the donation at the email address you provided.</p> </div> <div class="hidden" id="error"> <h2>There was an error processing your payment</h2> <p id="error_text"></p> <p>Please try again later</p> </div> <script src="https://unpkg.com/@paypal/paypal-js@2.0.2/dist/paypal.browser.min.js"></script> <script> // TEST // const planID = "P-4XR82090LF487574PL7NFH2I"; // const clientId = "AbLgTM5zUXn6xUxaXaa6hdn5dY148gsmYE8-1UEETejE1JL-fIAJ_Numlejnb4lMXLJJ3YPA3WBTRFph"; // PRODUCTION const planID = "P-1CS36001XG5927838L77ZGEI"; const clientId = "AabSibxe7utZkd1czIU0o6J1W8s2MvGe5dSfwd_wKmISvjoaTd3xYws78mcHc-8a9YYa0t4Mhj1DOVyF"; const receiptUrl = 'https://registration.ietf.org/api/donation/'; const components = "buttons,hosted-fields"; const donationType = "endowment"; let buttons; function cleanupBeforeReload() { if (buttons) { buttons.close(); } } function loadAndRender(transactionType) { if (transactionType === "order") { window .paypalLoadScript({ "client-id": clientId, "vault": false, "disable-funding": "credit", components }) .then(paypal => { paypal.Buttons({ onInit: function(data, actions) { // Disable the buttons actions.disable(); setupValidation(actions); }, createOrder: function(data, actions) { let amount = get_donation(); let first_name = document.getElementById('id_first_name').value; let last_name = document.getElementById('id_last_name').value; let email = document.getElementById('id_email').value; console.log("createOrder"); console.log("amount: " + amount); console.log("last_name: " + last_name); console.log("email: " + email); // This function sets up the details of the transaction, including the amount and line item details. return actions.order.create({ purchase_units: [{ amount: { value: amount }, description: "IETF Endowment Donation" }], payer: { name: { given_name: first_name, surname: last_name }, email: email } }); }, onApprove: function(data, actions) { // This function captures the funds from the transaction. return actions.order.capture().then(function(details) { // This function shows a transaction success message to your buyer. // document.getElementById("ajax-spinner").style.display = "block"; console.log(details); sendReceipt(details); // alert('Transaction completed by ' + details.payer.name.given_name); // alert('Order ID ' + details.id); thankYou(details); }); }, onError: (err) => { console.error('error from the onError callback', err); showError(err); }, onCancel: function (data) { // Show a cancel page, or return to cart }, onClick: function (data, actions) { // Show errors if needed // console.log(data); if (document.getElementById('donation-form').checkValidity() === true) { // this prevents paypal popup? // document.getElementById("ajax-spinner").style.display = "block"; return actions.resolve(); } else { document.getElementById("donation-form").classList.add("was-validated"); // return actions.reject(); } } }).render('#paypal-button-container'); }); } else { window .paypalLoadScript({ "client-id": clientId, "vault": true, "disable-funding": "credit", "intent": "subscription", components }) .then(() => { render({ style: { shape: "rect", color: "gold", layout: "vertical", label: "subscribe" }, createSubscription: function (data, actions) { let amount = get_donation(); let first_name = document.getElementById('id_first_name').value; let last_name = document.getElementById('id_last_name').value; let email = document.getElementById('id_email').value; return actions.subscription.create({ plan_id: planID, subscriber: { name: { given_name: first_name, surname: last_name }, email_address: email }, plan: { billing_cycles: [ { sequence: 1, pricing_scheme: { fixed_price: { value: amount, currency_code: "USD", } } } ] } }); }, onApprove: function(data, actions) { // alert('You have successfully created subscription ' + data.subscriptionID); console.log(data); sendReceipt(data); thankYou(data); }, onError: (err) => { console.error('error from the onError callback', err); showError(err); } }); }); } } function checkMyValidity(actions) { // not used // if the whole form is valid enable buttons console.log("required field changed"); let first_name = document.getElementById('id_first_name'); let last_name = document.getElementById('id_last_name'); let email = document.getElementById('id_email'); if (first_name.validity.valid && last_name.validity.valid && email.validity.valid) { actions.enable(); } } function setupValidation(actions) { // let element = document.getElementById("id_name"); document.getElementById("donation-form").querySelectorAll("[required]").forEach(item => { item.addEventListener('change', function(event) { console.log("required field changed"); let first_name = document.getElementById('id_first_name'); let last_name = document.getElementById('id_last_name'); let email = document.getElementById('id_email'); if (first_name.validity.valid && last_name.validity.valid && email.validity.valid) { actions.enable(); } }); }); } function thankYou(details) { // document.getElementById("ajax-spinner").style.display = "none"; document.getElementById("main").classList.add("hidden"); document.getElementById("thankyou").classList.remove("hidden"); // document.querySelector(".breadcrumb").scrollIntoView(); // document.getElementById("menu-open").scrollIntoView(); } function showError(details) { document.getElementById("error_text").textContent = details; document.getElementById("main").classList.add("hidden"); document.getElementById("error").classList.remove("hidden"); } function get_transaction_id(details) { // if this is a subscription order use subscriptionID as transactionID if (details.hasOwnProperty('subscriptionID')) { console.log("Using subscriptionID"); var transaction_id = details.subscriptionID; } else { var transaction_id = details.purchase_units[0].payments.captures[0].id; } return transaction_id; } function get_order_id(details) { if (details.hasOwnProperty('subscriptionID')) { var order_id = details.orderID; } else { var order_id = details.id; } return order_id; } function sendReceipt(details) { // gather form data for Receipt API console.log(details); let date = new Date().toUTCString(); let amount = get_donation(); let transaction_id = get_transaction_id(details); console.log("transactionID: " + transaction_id); let params = { date: date, amount: amount, type: donationType, transaction_id: transaction_id, order_id: get_order_id(details) }; let formData = new FormData(document.querySelector('#donation-form')); for (const k in params) { formData.append(k, params[k]); } // POST form data. Use no-cors mode since we don't have // any recourse on error fetch(receiptUrl, { method: 'POST', mode: 'no-cors', body: formData }) .catch((error) => console.error('Error:', error)); } const debounce = (func, wait) => { let timeout; return function executedFunction(...args) { const later = () => { clearTimeout(timeout); func(...args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; }; const debouncedLoadAndRender = debounce(loadAndRender, 500); function onClickCallback(event) { cleanupBeforeReload(); // debouncedLoadAndRender(event.target.value); if (event.target.checked === true) { debouncedLoadAndRender("subscription"); } else { debouncedLoadAndRender("order"); } } // document.querySelectorAll('input[name="intent"]').forEach((radio) => { // radio.addEventListener("click", onClickCallback); // }); document.querySelector('#id_monthly').addEventListener("click", onClickCallback); function render(options) { buttons = paypal.Buttons(options); buttons.render("#paypal-button-container").catch((err) => { console.warn( "Warning - Caught an error when attempting to render component", err ); }); } loadAndRender("order"); function handleAmount() { // handle operations when the donation amount is set / changes // clear other donation field document.getElementById("id_donation_other").value = ""; // if this item is checked call set_donation_total(val) if (this.checked) { console.log("Checkbox is checked.."); set_donation_total(this.value); } else { console.log("Checkbox is not checked.."); } } function clearOptions() { document.querySelectorAll('.donation_amount__radio').forEach(item => { item.checked = false; }); } function handleOtherAmount() { var other_radio = document.getElementById("id_donation_6"); var amount = document.getElementById("id_donation_other").value; clearOptions(); other_radio.checked = true; other_radio.value = amount; set_donation_total(this.value); } function get_donation() { var radios = document.getElementsByName('donation'); for (var i = 0, length = radios.length; i < length; i++) { if (radios[i].checked) { return radios[i].value; } } } function set_donation_total(val) { //var donation = get_donation(); document.getElementById('id_donation_total').innerHTML = "$" + val; document.getElementById('id_donation_sum').innerHTML = "$" + val; document.getElementById('id_donation_amount').value = val; } document.addEventListener('DOMContentLoaded', function(event) { document.querySelectorAll('.donation_amount__radio').forEach(item => { item.addEventListener('change', handleAmount); }); let donation_other = document.querySelector('#id_donation_other'); // donation_other.addEventListener('focus', clear_options); donation_other.addEventListener('change', handleOtherAmount); document.querySelector("#donation-form").addEventListener("submit", function(event) { event.preventDefault(); }); }); //# sourceURL=donations.js </script></div> </div> </div> </div> </div> <nav aria-label="In this section" class="bg-body border col-12 col-lg-4 col-xl-3 p-3 p-lg-5 mb-4"> <h2 class="h5 mb-3"><a class="text-dark" href="/support-us/">Support us</a></h2> <div class="block-paragraph"> <ul class="list-unstyled"> <li class="mb-1"><a class="text-dark" href="/support-us/why-support/">Why we need your support</a></li> <li class="mb-1"><a class="text-dark" href="/support-us/donors/">IETF financial supporters</a></li> <li class="mb-1"> <a href="/support-us/donate-ietf-endowment/" aria-current="page">Donate to the IETF Endowment</a> </li> </ul> </div> </nav> </div> </div> </div> </main> <footer class="bg-dark text-light py-1"> <div class="container my-5"> <div class="row"> <section class="col-lg"> <div class="border-bottom u-border-lg-bottom-0 border-light border-opacity-50"> <h4 class="my-0 py-4 fs-6" role="button" aria-expanded="false"> About <i class="bi bi-chevron-down"></i> </h4> <ul class="list-unstyled opacity-75 d-grid gap-2"> <li class="nav-item"> <a href="/about/introduction/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Introduction to the IETF </a> </li> <li class="nav-item"> <a href="/about/groups/iesg/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Internet Engineering Steering Group </a> </li> <li class="nav-item"> <a href="/administration/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Administration </a> </li> <li class="nav-item"> <a href="/policies/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Privacy and policies </a> </li> <li class="nav-item"> <a href="/contact/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Contact us </a> </li> </ul> </div> </section> <section class="col-lg"> <div class="border-bottom u-border-lg-bottom-0 border-light border-opacity-50"> <h4 class="my-0 py-4 fs-6" role="button" aria-expanded="false"> Technologies <i class="bi bi-chevron-down"></i> </h4> <ul class="list-unstyled opacity-75 d-grid gap-2"> <li class="nav-item"> <a href="/technologies/netmgmt/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Automated network management </a> </li> <li class="nav-item"> <a href="/technologies/iot/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > The Internet of Things </a> </li> <li class="nav-item"> <a href="/technologies/transport/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > New transport technology </a> </li> <li class="nav-item"> <a href="/technologies/security/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Security & privacy </a> </li> <li class="nav-item"> <a href="/technologies/areas/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > IETF Areas </a> </li> </ul> </div> </section> <section class="col-lg"> <div class="border-bottom u-border-lg-bottom-0 border-light border-opacity-50"> <h4 class="my-0 py-4 fs-6" role="button" aria-expanded="false"> Meetings <i class="bi bi-chevron-down"></i> </h4> <ul class="list-unstyled opacity-75 d-grid gap-2"> <li class="nav-item"> <a href="/meeting/upcoming/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Upcoming meetings </a> </li> <li class="nav-item"> <a href="/meeting/past/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Past meetings </a> </li> <li class="nav-item"> <a href="/meeting/hackathons/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > IETF Hackathons </a> </li> <li class="nav-item"> <a href="/meeting/preparation/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Preparing for an IETF Meeting </a> </li> <li class="nav-item"> <a href="/meeting/guide-ietf-meetings/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Guide to IETF Meetings </a> </li> </ul> </div> </section> <section class="col-lg"> <div class="border-bottom u-border-lg-bottom-0 border-light border-opacity-50"> <h4 class="my-0 py-4 fs-6" role="button" aria-expanded="false"> Participate <i class="bi bi-chevron-down"></i> </h4> <ul class="list-unstyled opacity-75 d-grid gap-2"> <li class="nav-item"> <a href="/participate/get-started/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Getting started in the IETF </a> </li> <li class="nav-item"> <a href="/process/wgs/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Guide to IETF Working Groups </a> </li> <li class="nav-item"> <a href="/participate/lists/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Mailing lists </a> </li> </ul> </div> </section> <section class="col-lg"> <div class="border-bottom u-border-lg-bottom-0 border-light border-opacity-50"> <h4 class="my-0 py-4 fs-6" role="button" aria-expanded="false"> Process <i class="bi bi-chevron-down"></i> </h4> <ul class="list-unstyled opacity-75 d-grid gap-2"> <li class="nav-item"> <a href="/process/process/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Internet standards process </a> </li> <li class="nav-item"> <a href="/process/rfcs/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > About RFCs </a> </li> <li class="nav-item"> <a href="/process/new-work/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Bringing new work to the IETF </a> </li> <li class="nav-item"> <a href="/process/process/role-iesg-standards-process/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > The role of the IESG in the Standards process </a> </li> </ul> </div> </section> <section class="col-lg"> <div class="border-bottom u-border-lg-bottom-0 border-light border-opacity-50"> <h4 class="my-0 py-4 fs-6" role="button" aria-expanded="false"> Support us <i class="bi bi-chevron-down"></i> </h4> <ul class="list-unstyled opacity-75 d-grid gap-2"> <li class="nav-item"> <a href="/support-us/why-support/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Why we need your support </a> </li> <li class="nav-item"> <a href="/support-us/sponsorship/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Meeting sponsorship </a> </li> <li class="nav-item"> <a href="/support-us/donate/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > Other ways to give </a> </li> <li class="nav-item"> <a href="/support-us/donors/" class="link-underline-opacity-0 link-light fw-semibold lh-base" > IETF financial supporters </a> </li> </ul> </div> </section> </div> </div> <div class="container my-5"> <div class="d-lg-flex justify-content-between align-items-start lh-1"> <div class="d-flex fs-4 my-5 my-lg-0 ms-n2 my-5 me-3"> <a class="d-block text-light px-2" href="https://www.linkedin.com/company/internet-engineering-task-force/" rel="me" title="LinkedIn"> <i class="bi bi-linkedin"></i> </a> <a class="d-block text-light px-2" href="https://www.twitter.com/ietf" rel="me" title="Twitter"> <i class="bi bi-twitter"></i> </a> <a class="d-block text-light px-2" href="https://www.youtube.com/ietf" rel="me" title="YouTube"> <i class="bi bi-youtube"></i> </a> <a class="d-block text-light px-2" href="https://mastodon.online/@ietf" rel="me" title="Mastodon"> <i class="bi bi-mastodon"></i> </a> <a class="d-block text-light px-2" href="https://github.com/ietf/" rel="me" title="GitHub"> <i class="bi bi-github"></i> </a> </div> <ul class=" row gx-0 column-gap-5 row-gap-3 justify-content-lg-end my-5 my-lg-0 nav opacity-75 "> <li class="nav-item col-auto py-0"> <a href="/administration/overview/" class="nav-link text-light fs-10 p-0"> IETF LLC </a> </li> <li class="nav-item col-auto py-0"> <a href="https://www.rfc-editor.org" class="nav-link text-light fs-10 p-0"> RFC Editor </a> </li> <li class="nav-item col-auto py-0"> <a href="https://www.iana.org" class="nav-link text-light fs-10 p-0"> IANA </a> </li> <li class="nav-item col-auto py-0"> <a href="https://www.iab.org" class="nav-link text-light fs-10 p-0"> IAB </a> </li> <li class="nav-item col-auto py-0"> <a href="https://www.irtf.org" class="nav-link text-light fs-10 p-0"> IRTF </a> </li> <li class="nav-item col-auto py-0"> <a href="https://trustee.ietf.org" class="nav-link text-light fs-10 p-0"> IETF Trust </a> </li> </ul> </div> </div> </footer> <script> [... document.querySelectorAll("footer section")].forEach((section) => { const heading = section.querySelector("h4"); heading.addEventListener("click", () => { const expanded = section.classList.toggle("expanded"); heading.setAttribute("aria-expanded", expanded); }); }); </script> <script>window.staticRoot = "/static/dist/";</script> <script type="text/javascript"> var _paq = window._paq || []; _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//analytics.ietf.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', 1]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <noscript><p><img src="//analytics.ietf.org/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e7586cdf80291c6',t:'MTczMjQxMDcwMy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>