Kenya to champion Africa’s call for Sh167.57 trillion in climate finance at COP29
Kenya to champion Africa’s call for Sh167.57 trillion in climate finance at COP29
Read this story aloud
Listen to the clean text version of this article
Ready
4 min listen
Audio reading is not supported on this browser.
The focus will be on pushing for substantial climate finance, advancing adaptation strategies, and setting clear rules for the global carbon market
Kenya, as the Chair of the African Group of Negotiators (AGN), will lead Africa’s agenda at the upcoming COP29 summit in Baku, Azerbaijan.
The focus will be on pushing for substantial climate finance, advancing adaptation strategies, and setting clear rules for the global carbon market.
Speaking during the 10th Special Session of the African Ministerial Conference on the Environment (AMCEN), Environment Cabinet Secretary Aden Duale emphasised the urgency of securing a new global climate finance target.
More To Read
- The world has the science to transform food systems: The next frontier is scaling it
- A Super El Niño is coming: Five hard‑won lessons the world can learn from Africa
- Slum residents urged to adopt ‘localised solutions’ to mitigate climate change effects
- How the cocoa price crash is crushing West African farmers
- Nearly 60 people killed in Ivory Coast floods since May
- EU, IOM launch regional programme to tackle climate displacement, response
He pointed out that the current goal of $100 billion (Sh12.89 trillion), set years ago, no longer meets the growing needs of developing nations.
“Africa is calling for $1.3 trillion (Sh167.57 trillion) annually by 2030, primarily through grants and concessional loans, to prevent worsening debt in developing countries,” Duale said
The CS also highlighted the need for international financial systems to be reformed, ensuring they can better support vulnerable nations that bear the brunt of climate impacts.
Latest Stories
- Four suspected armed robbers killed, two others flee after police shootout on Eldoret-Kiplombe Road
- Tana River activates emergency plan ahead of anticipated El Niño rains
- Bill seeks to merge state-backed farm loans under single institution
- Bill tabled in National Assembly to merge three intellectual property agencies into single authority
A major focus for Kenya and the African Group is increasing adaptation funding, especially for critical sectors like agriculture, health, and infrastructure.
These sectors, which are crucial for Africa’s resilience, currently face a massive shortfall. Duale explained that the estimated $400 billion required annually for adaptation is far from being met.
Another key concern is the establishment of sustainable financing for the Loss and Damage Fund.
While an initial $700 million has been pledged, Africa is calling for long-term solutions to ensure the fund’s sustainability.
Kenya, representing Africa’s interests, is also challenging the decision to place the Santiago Network’s secretariat in Geneva. Nairobi is being pushed as a more practical and cost-effective alternative for hosting the secretariat.
Additionally, the country will advocate for developed nations to step up their emissions reduction targets and provide more financial and technical support to developing countries to help them meet their climate goals.
CS Duale also emphasised the need to recognise Africa’s unique challenges in addressing climate change, a concern that has been largely overlooked since the Paris Agreement was signed.
At the upcoming UN General Assembly, the AGN will present Africa’s united position, urging full participation and engagement in the COP29 discussions and negotiations.
With Kenya at the helm, Africa is poised to make its case for urgent and meaningful climate action on the global stage.
Duale was at the 10th Special Session of the African Ministerial Conference on the Environment (AMCEN).
AMCEN is a platform for African ministers to discuss and strategise on pressing environmental issues impacting the continent.
This year’s session which ended on Friday was particularly significant as it aims to address the growing challenges posed by climate change, deforestation and biodiversity loss.
Other Topics To Read
- Climate
- climate change
- Adan Duale
Top Stories Today
- Ruto vows no room for ethnic politics as he fronts development milestones in fresh re-election strategy
- Four suspected armed robbers killed, two others flee after police shootout on Eldoret-Kiplombe Road
- Tana River activates emergency plan ahead of anticipated El Niño rains
- Bill seeks to merge state-backed farm loans under single institution
- Bill tabled in National Assembly to merge three intellectual property agencies into single authority
- Nigeria condemns killing of citizens in South Africa amid rising xenophobic violence
`;
}
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
Tana River activates emergency plan ahead of anticipated El Niño rainsCoast
|Farhiya Hussein
|24 minutes ago
Saba Saba organisers notify police of planned peaceful demonstration to ParliamentNews
|Rachael Mutabasi
|14 hours ago
Taita Taveta County unveils cooperative fund to boost rural access to creditCoast
|Farhiya Hussein
|15 hours ago
Four suspected armed robbers killed, two others flee after police shootout on Eldoret-Kiplombe RoadNews
|Lucy Mumbi
|5 minutes ago
Less sunshine may worsen anxiety and depression symptoms, new research suggestsHealth
|Charity Kilei
|19 hours ago
Kenya Airways flight to New York forced to return to Nairobi after mid-air technical glitchNews
|Lucy Mumbi
|3 hours ago
Cherotich, Odira shine as Kenya dominates Prefontaine Classic despite rare Kipyegon defeatSports
|Erick Kariuki
|1 day ago
A Super El Niño is coming: Five hard‑won lessons the world can learn from AfricaClimate Change
|The Conversation
|17 hours ago
Kenyans urged to join Saba Saba march to honour victims of alleged abductions, killingsNews
|Lucy Mumbi
|1 day ago
Bill tabled in National Assembly to merge three intellectual property agencies into single authorityNews
|Lucy Mumbi
|1 hour ago
