当初のICカードはプログラムをROMに格納していたが、1990年代後半にはプログラムを不揮発性メモリにダウンロードできる仕組みを持つプラットフォーム型ICカードと呼ばれるMULTOSカードやJavaカードが提案された。MULTOSカードはMasterCard、大日本印刷、日立製作所が開発し、プラットフォーム型ICカードの先駆けとなった。MULTOSカードは、MELという専用のアセンブラライクな言語でプログラムを記述する。1999年にはクレジットカードとして大規模に発行開始し、世界初のプラットフォーム型ICカードの実用化となった。Javaカードはカード内にJava VMを内蔵し、Javaで記述されたプログラムを実行する事ができる。Javaの実行環境を含めたJavaカードなどでは、暗号化や電子署名の技術を使う事ができるものもある。