Cryptocurrency wallet for Tezos blockchain as Web Extension for your Browser.
Providing ability to manage NFT, tez tokens and interact with dApps.
You can install Temple Wallet right now: https://templewallet.com/download.
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| 49 & later ✔ | 52 & later ✔ | Latest ✔ | 36 & later ✔ | 79 & later ✔ |
Ensure you have:
Then run the following:
git clone https://github.com/madfish-solutions/templewallet-extension && cd templewallet-extensionyarnMake copy of .env.dist and do changes if needed.
Builds the extension for production to the dist folder.
It correctly bundles in production mode and optimizes the build for the best performance.
# for Chrome by default
yarn buildOptional for different browsers:
# for Chrome directly
yarn build:chrome
# for Firefox directly
yarn build:firefox
# for Opera directly
yarn build:opera
# for all at once
yarn build-allyarn startRuns the extension in the development mode for Chrome target.
It's recommended to use Chrome for developing.
To enable Redux DevTools during development, specify some port in the .env file before running yarn start like so:
REDUX_DEVTOOLS_PORT=8000Install @redux-devtools/cli globally:
yarn global add @redux-devtools/cliThen open an explorer at previously specified port:
redux-devtools --open --port=8000Other UI options like
--open=browserare available.
Go to settings to specify port one more time.
- Do not compress the atlas with them, which is located at
public/misc/country-flags/atlas_original.png, using tinypng; the compressed image has too low quality. - You can generate such an atlas with a script like below:
const sharp = require('sharp');
const fsPromises = require('fs/promises');
const path = require('path');
(async () => {
const imagesNames = await fsPromises.readdir(path.resolve('input'));
const atlasRowSize = 7;
const atlasRows = Math.ceil(imagesNames.length / atlasRowSize);
// Each image has a size of 40x30
const atlas = sharp({
create: {
width: 40 * atlasRowSize,
height: 30 * atlasRows,
channels: 4,
background: { r: 0, g: 0, b: 0, alpha: 0 }
}
}).composite(
imagesNames.map((imageName, index) => ({
input: path.resolve(`input/${imageName}`),
left: 40 * (index % atlasRowSize),
top: 30 * Math.floor(index / atlasRowSize)
}))
);
await atlas.png().toFile(path.resolve('output/atlas.png'));
})();





