---
slug: ""
title: Ornithorhynchus anatinus
regno: animale
rank: Specie
taxon_path:
  - Animalia
  - Chordata
  - Vertebrata
  - Osteichthyes
  - Sarcopterygii
  - Tetrapoda
  - Amniota
  - Synapsida
  - Therapsida
  - Cynodontia
  - Mammalia
  - Monotremata
  - Ornithorhynchidae
  - Ornithorhynchus
  - Ornithorhynchus anatinus
updated: 2026-05-17
rev: 2
sources: []
---

## Sommario

L'**ornitorinco** è un mammifero monotremo endemico dell'Australia orientale, celebre per il suo aspetto chimerico: corpo da castoro, becco da anatra, zampe palmate e coda piatta. Depone uova, ma allatta i piccoli; i maschi possiedono **speroni velenosi** sulle zampe posteriori, caso raro tra i mammiferi. È un nuotatore eccellente che caccia con il becco grazie a un sofisticato senso **elettrorecettivo**.

## Descrizione

Lungo circa 40-60 cm coda compresa, con peso variabile tra 0,7 e 2,4 kg; i maschi sono in media più grandi delle femmine. Il corpo è ricoperto da una **pelliccia bruna fittissima e impermeabile**, tra le più dense del regno animale, che intrappola uno strato d'aria isolante. Il **becco coriaceo** non è osseo come quello degli uccelli, ma costituito da pelle ricca di terminazioni nervose: ospita migliaia di meccanorecettori ed elettrorecettori. Le zampe sono palmate, soprattutto le anteriori, che fungono da pinne durante il nuoto. La coda appiattita serve da timone e da riserva di grasso. I maschi adulti presentano sulle caviglie posteriori uno **sperone cavo** connesso a una ghiandola velenifera: il veleno non è letale per l'uomo, ma provoca dolore intenso e prolungato.

## Distribuzione e habitat

L'areale comprende l'**Australia orientale**, dal Queensland settentrionale al Victoria, fino alla Tasmania, dove le popolazioni sono particolarmente robuste. È stato introdotto sull'isola Kangaroo. Frequenta corsi d'acqua dolce permanenti — fiumi, torrenti, laghi e stagni — con sponde terrose adatte allo scavo delle tane e abbondante vegetazione riparia. Tollera climi diversi, dalle foreste pluviali tropicali ai laghi alpini freddi, purché l'acqua sia sufficientemente pulita e ricca di invertebrati. 

## Comportamento

È un animale prevalentemente **crepuscolare e notturno**, solitario e territoriale. Trascorre molte ore in acqua alternando immersioni brevi (in genere 30-60 secondi) a pause in superficie. Quando immerso chiude occhi, orecchie e narici, affidandosi esclusivamente al becco per orientarsi e individuare le prede. Scava due tipi di tane lungo gli argini: una di riposo, semplice e poco profonda, e una più elaborata di nidificazione, usata dalle femmine. La temperatura corporea, intorno ai 32 °C, è più bassa di quella della maggior parte dei mammiferi placentati.

## Alimentazione

L'ornitorinco è un **carnivoro bentonico** che si nutre di invertebrati d'acqua dolce: larve di insetti (efemerotteri, tricotteri, libellule), gamberetti, crostacei come gli yabby, vermi anellidi e occasionalmente piccoli pesci o uova. Sonda il fondale smuovendo sedimenti e ciottoli con il becco; rileva le prede grazie all'**elettrorecezione**, captando i deboli campi elettrici generati dalla muscolatura degli invertebrati. Trattiene il cibo in tasche guanciali e lo tritura in superficie tra placche cornee, poiché gli adulti sono privi di denti veri. Il fabbisogno calorico è elevato: può ingerire ogni notte una quantità di cibo pari a circa il 20% del proprio peso.

## Riproduzione

L'accoppiamento avviene tra fine inverno e primavera australe (agosto-ottobre, con variazioni geografiche). Dopo una gestazione di circa 21 giorni, la femmina depone in genere **1-3 uova** piccole e coriacee in una camera della tana foderata di foglie umide. Le uova vengono incubate per circa 10 giorni stringendole tra ventre e coda. I piccoli, nudi e larviformi alla schiusa, leccano il latte che trasuda direttamente da **areole cutanee** sull'addome materno, poiché i monotremi non hanno capezzoli. Lo svezzamento dura circa 3-4 mesi. La maturità sessuale è raggiunta intorno ai 2 anni; in natura la longevità è di 10-15 anni.

## Stato di conservazione

L'IUCN classifica la specie come **Near Threatened** (Quasi Minacciata). Le minacce principali includono la siccità aggravata dai cambiamenti climatici, la frammentazione dei corsi d'acqua per dighe e prelievi, l'inquinamento, la mortalità accidentale in reti e nasse per gamberi e la predazione da parte di volpi e cani. Alcune popolazioni locali sono in calo evidente, soprattutto nei bacini del Murray-Darling.

## Curiosità

Quando il primo esemplare imbalsamato giunse in Europa nel 1799, molti naturalisti britannici lo ritennero un falso, sospettando che becco e zampe fossero stati cuciti al corpo di un mammifero. Il genoma dell'ornitorinco è un autentico mosaico evolutivo: contiene geni tipicamente mammiferi accanto ad altri condivisi con rettili e uccelli, e codifica per **dieci cromosomi sessuali** (cinque X e cinque Y nei maschi), un sistema unico tra i vertebrati. Inoltre, la pelliccia emette **biofluorescenza** verde-azzurra sotto luce ultravioletta, fenomeno scoperto soltanto nel 2020.
