A quick check of the source code (src/backend/utils/adt/numeric.c) shows it's base 10000, each "digit" represented as an int16. It's not strictly speaking BCD, but there's no computational difference.
---- Christophe Pettus xof(at)thebuild(dot)com