デビューから10周年を記念したベストアルバム。通常盤（2CD）、初回限定生産盤（2CD+1DVD）、完全生産限定盤（2CD+2DVD）の3種での発売となる。CD1枚目にはヒット曲、CD2枚目には事前に行われたファン投票結果とCHEMISTRY自身が選んだ楽曲、DVD1枚目には過去のビデオクリップ、DVD2枚目には過去のライブ映像の中からCHEMISTRY自身が厳選したものが収録する、と収録内容発表前に告知されていたが収録内容発表時には、DISC-1がヒット曲、DISC-2がファン投票&自選という括りは撤廃されており、そういった記述も商品紹介から削除されていた。2011年2月16日発売のシングル「a better tomorrow」、同日発売のシングル「merry-go-round」も収録される。川畑は「CHEMISTRY 2001-2011」を制作する際、CHEMISTRYのアルバムを全て聴き直した。印象的なCHEMISTRYの曲について堂珍は「My Gift to Youとかやっぱり凄く自分が自分と歌の距離感というのがあんまりずっと変わらず、ずっと一緒に、過ごせたような感じがあるんで好きですよね」と述べ、川畑は「デビューする前のオーディションの時の入ってるんですけど、My Cherie Amour。あれが初めてのレコーディングなんですよ。スタジオの感じとかその時のやり取り凄い覚えてて」と述べ、ファン投票について堂珍は「意外にこの曲が上位に来てたなとか。新しめのアルバムの中から結構入ってたんでそれが嬉しかった」と述べた。デビュー曲の「PIECES OF A DREAM」について川畑は「今この曲を聴くとしっかり向き合えるし、財産ですね自分達のこの曲があったからこそたくさんの人に聴いてもらう事ができたんだ。大切な曲だな」と述べ、特典について堂珍は「喜んでもらいたかったですし、隠さずに出し惜しみせず」と述べた。さらに「CHEMISTRY 2001-2011」について川畑は「僕らの10年の歴史がぎっしりともう詰まった作品となっています」と述べた。
前作では、「人間とレプリロイドは手を取り合い…」「人間とレプリロイドをまとめてヒトビトと呼ぶ」という設定があったが、人間とレプリロイドが共存するために具体的に何をしたのかはあまり大々的には触れられていなかった（取扱説明書や攻略本で触れられていただけ）。本作で人間とレプリロイドの距離を縮めたその手法が完全に明らかとなっている。それは、「人間には機械の体を与え、レプリロイドは人間と同じ価値ある寿命を与えられること」を法制化することで両者の距離を縮めるというものである。今のところこの設定に合致しない（その法律が適用されていない）キャラクターは本作で登場した三賢人と、前作のプレリーがいる。
前作『ロックマンゼクス』から4年8ヶ月後の物語。科学技術が発達した未来。この世界に存在する人間と、人間が作った機械生命体「レプリロイド」は、長きにわたる戦争を終えて共存の道を歩み始めていた。戦後、「三賢人」を頂点として世界を統率すべく設立された連合政府「レギオンズ」は、人間には機械の体を、「レプリロイド」には人間と同じ価値ある寿命を与える法律を定め、平等かつ平和な世界が到来した。それから数百年、世界中に残された遺跡は、野生化した機械生命体「イレギュラー」が出没する危険な場所となっていた。同時に遺跡は、戦争によって失われた数々の貴重な技術「ロストテクノロジー」が埋もれている宝の山でもあった。一攫千金を狙い、遺跡に殺到するハンターたち。しかし彼らは遺跡に埋まっている「宝の山」が、かつて「戦争の道具」であったということを忘れかけていた。
例えば、として、2によって生成されるの乗法群を考える。この群の位数はである。以下にこのアルゴリズムをC++で実装したものを示す：#include <stdio.h>const int n = 1018, N = n + 1;  /* N = 1019 -- 素数      */const int alpha = 2;            /* 生成元                */const int beta = 5;             /* 2^{10} = 1024 = 5 (N) */void new_xab( int& x, int& a, int& b ) {  switch( x%3 ) {  case 0: x = x*x     % N;  a =  a*2  % n;  b =  b*2  % n;  break;  case 1: x = x*alpha % N;  a = (a+1) % n;                  break;  case 2: x = x*beta  % N;                  b = (b+1) % n;  break;  }}int main(void) {  int x=1, a=0, b=0;  int X=x, A=a, B=b;  for(int i = 1; i < n; ++i ) {    new_xab( x, a, b );    new_xab( X, A, B );    printf( "%3d  %4d %3d %3d  %4d %3d %3d\n", i, x, a, b, X, A, B );    if( x == X ) break;  }  return 0;}結果は以下の通りである (一部編集済み)： i     x   a   b     X   A   B------------------------------ 1     2   1   0    10   1   1 2    10   1   1   100   2   2 3    20   2   1  1000   3   3 4   100   2   2   425   8   6 5   200   3   2   436  16  14 6  1000   3   3   284  17  15 7   981   4   3   986  17  17 8   425   8   6   194  17  19..............................48   224 680 376    86 299 41249   101 680 377   860 300 41350   505 680 378   101 300 41551  1010 681 378  1010 301 416つまり、であるから、であり、これを解くとという期待通りの答えが出てくる。は素数ではないので、という別の解もある。この場合となってしまう。