How Sudan’s gum arabic trade continues to bankroll warlords, militias

UNEP/Grant Wroe-Street A gum arabic farmer from the Jawama’a tribe in El Darota, Northern Kordofan, Sudan. (Photo: UNEP)

Listen to article

6 min listen
Audio reading is not supported on this browser.
Ready

Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

<img src="https://absafricatv.com/wp-content/uploads/2026/07/Sudan-war-1.jpg” alt=””>

UN says Sudan’s war is driven by control of re

Bashir Mbuthia

 · 

1 day agoRead nextOpens a fresh page.

Across Sudan, gum arabic provides an important. It is harvested from the stems and branches of the acacia tree in areas heavily affected by the conflict

Alongside gold, the little-known Sudanese commodity gum arabic, used in soft drinks, food, cosmetics and pharmaceuticals, continues to fuel the war.
In an alert on Wednesday, the UN human rights office, OHCHR, highlighted how the country’s warring parties have looted gum arabic and redrawn trading routes so that they can use the proceeds to perpetuate the conflict.
“Sudan’s vast wealth of natural resources should benefit its people. Distressingly, what we are seeing today is anything but that,” said OHCHR spokesperson Ravina Shamdasani. “This wealth is only serving to undermine human rights and drive conflict, bringing pain and suffering on an enormous scale.”

More To Read

  • UN says Sudan’s war is driven by control of resources and trade routes
  • Sudan faces worsening hunger as conflict and funding cuts threaten aid response
  • EU imposes sweeping sanctions on Sudan’s gold sector to cut war funding
  • EU Parliament calls for Sudan’s RSF to be designated a terrorist organisation
  • Sudan army sets full RSF withdrawal as condition for proposed US peace plan
  • New cholera outbreak alert for Sudan’s war-weary communities
  • All warring parties profit from gum arabic sales
  • Commodity trade linked to arbitrary detention and other abuses
  • Latest Stories

    • MPs question KRA’s Sh2.98 billion tax waiver, missing documents in raw sugar import
    • Kenya Hockey Union to flag off four teams for World Masters Cup in Europe
    • UN calls for accountability over migrant torture and trafficking at Tunisia-Libya border
    • Cherargei seeks probe on county revenue systems over leakages despite automation
  • Used in food and drinks trade, pharmaceuticals and cosmetics
  • Smuggling routes extend through Chad, South Sudan, Kenya, Libya and Egypt
  • Across Sudan, gum arabic provides an important source of income and benefits for approximately five million people. It is harvested from the stems and branches of the acacia tree in areas heavily affected by the conflict, where serious violations of international humanitarian law and international human rights law have been documented.
    Sitting target
    Before war erupted in April 2023 following the collapse of Sudan’s transition to civilian rule, the country accounted for roughly 70 to 80 per cent of global crude gum arabic exports. Annual exports of gum arabic were worth up to $183 million.
    This has made it a prized target for the paramilitary Rapid Support Forces (RSF) militia, which are believed to have looted stocks from a major trading centre in El-Nuhud, West Kordofan, and redirected them west to Darfur and Chad, in May 2025.
    Today, Sudan continues to account for a “substantial share” of the global gum arabic supply, despite the conflict and the serious human rights risks flagged by OHCHR.
    “This war economy must be disrupted, and the international community must pay much closer attention to the commodities and trade routes that help keep it alive,” Shamdasani insisted.
    Danger zone
    According to a new OHCHR report, many Sudanese people who depend on or are linked to the gum arabic trade have faced “threats, arbitrary detention, looting and extortion” from the warring parties and their allies.
    Traders using corridors that run through Rapid Support Forces-held parts of Darfur and Kordofan in western and central Sudan have faced confiscation, informal taxation and insecurity. Along the more secure northern and eastern routes towards Port Sudan and Northern state, merchants face numerous checkpoints, “formal and informal charges and some cross-border smuggling”, the report notes.
    Prior to the conflict, production was concentrated across the so-called “gum belt”, including the Kordofan and Darfur regions, as well as Blue Nile, White Nile, Sennar and Gedaref states, where smallholders and semi-nomadic farmers relied on harvesting as an important off-season source of income.
    The report notes that “significant quantities” of gum arabic have been redirected by RSF in West Kordofan and parts of Darfur towards Souq al-Na‘am, a demilitarised zone separating Sudan and South Sudan, and then deeper into South Sudan, Juba and onward to Mombasa port in Kenya.
    Alternative routes have also reportedly emerged, including towards Chad and onwards to Douala port in Cameroon and other cross-border locations, where the gum is relabelled before it is exported and processed.
    Security Council-appointed experts have previously documented how looted gum arabic has been transported along routes leading to Chad, the Central African Republic and South Sudan. “Widespread looting of gum arabic by the RSF was used as a form of compensation for fighters in the absence of salaries”, with at least 3,700 tonnes looted between January and June 2024.
    Golden gift
    Important as gum arabic is in sustaining the Sudanese conflict, gold sales are “a major revenue source” for the Sudanese Armed Forces (SAF) and paramilitary RSF, the OHCHR report’s authors maintain.
    In 2024, declared gold production in SAF-controlled areas was about 65 tonnes, of which about 28 tonnes were officially exported via Port Sudan, with a reported value of around $1.6 billion, or roughly 48.5 per cent of Sudan’s total exports.
    However, reports and official statements indicate that nearly 48 per cent of Sudan’s 2024 gold output was smuggled out of the country, the OHCHR report notes.
    There is no gold production data for RSF-controlled areas, although the precious metal is likely still being extracted and traded from mining areas in Darfur and Kordofan, including Jebel Amer in North Darfur, Songo in South Darfur, and Talodi in South Kordofan.

    Other Topics To Read

    Top Stories Today

    • Gachagua hails DCP’s first MP, Kamau Ngotho, after resounding Ol Kalou victory
    • MPs question KRA’s Sh2.98 billion tax waiver, missing documents in raw sugar import
    • Kenya Hockey Union to flag off four teams for World Masters Cup in Europe
    • Cherargei seeks probe on county revenue systems over leakages despite automation
    • MPs urge TVETs to intensify student recruitment amid enrolment decline
    • 20 pupils killed in bus crash while returning from school tour in eastern Uganda

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    How Sudan’s gum arabic trade continues to bankroll warlords, militiasNews
    |UN News
    |2 hours ago
    Gachagua hails DCP’s first MP, Kamau Ngotho, after resounding Ol Kalou victoryNews
    |Rachael Mutabasi
    |3 hours ago
    Kenya Hockey Union to flag off four teams for World Masters Cup in EuropeNews
    |Erick Kariuki
    |13 minutes ago
    DCP’s Kamau Ngotho wins Ol Kalou by-election with 35,440 votesNews
    |Lucy Mumbi
    |4 hours ago
    Court declines to reinstate Coca-Cola workers’ spouses to medical scheme, matter to go to full hearingNews
    |Carolyne Kubwa
    |1 day ago
    UN calls for accountability over migrant torture and trafficking at Tunisia-Libya borderAfrica
    |Bashir Mbuthia
    |34 minutes ago
    Maraga warns of democratic erosion after Ol Kalou by-election bribery, intimidationNews
    |Rachael Mutabasi
    |2 hours ago

    X tightens monetisation rules in crackdown on engagement bait, stolen contentTechnology
    |Margaret Wanjiru
    |2 hours ago

    ICC orders Libyan prison official to stand trial on war crimes chargesAfrica
    |Bashir Mbuthia
    |12 hours ago
    JKIA modernisation enters implementation phase after Dar Al-Handasah contract signingBusiness
    |Rachael Mutabasi
    |1 day ago

    Share.
    Leave A Reply

    Exit mobile version