diff --git a/12345.sh b/12345.sh
index 79caf011..5ff5b0c9 100755
--- a/12345.sh
+++ b/12345.sh
@@ -141,6 +141,11 @@ while true; do
if [[ $URL == "/" ]]; then
echo "/ CONTACT : $HOSTP"
echo "$HTTPCORS
+
+
+ [Astroport] :powered: Station
+
+
DING : ${MOATS} : $(date)" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
end=`date +%s`
echo " (‿/‿) $myHOST:$PORT / Execution time was "`expr $end - $start` seconds.
@@ -201,6 +206,10 @@ while true; do
exec ${MY_PATH}/API/QRCODE.sh "$PORT" "$THAT" "$AND" "$THIS" "$APPNAME" "$WHAT" "$OBJ" "$VAL" "${MOATS}" "$COOKIE" &
;;
+ "uplanet")
+ exec ${MY_PATH}/API/UPLANET.sh "$PORT" "$THAT" "$AND" "$THIS" "$APPNAME" "$WHAT" "$OBJ" "$VAL" "${MOATS}" "$COOKIE" &
+ ;;
+
"")
echo "$HTTPCORS
ERROR UNKNOWN $CMD : ${MOATS} : $(date)" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
diff --git a/API/UPLANET.sh b/API/UPLANET.sh
new file mode 100755
index 00000000..02dd786c
--- /dev/null
+++ b/API/UPLANET.sh
@@ -0,0 +1,99 @@
+################################################################################
+# Author: Fred (support@qo-op.com)
+# Version: 0.1
+# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
+################################################################################
+################################################################################
+## API: UPLANET
+## Dedicated to OSM2IPFS & UPlanet Client App
+# ?uplanet=EMAIL&LAT=LON
+## https://git.p2p.legal/qo-op/OSM2IPFS
+################################################################################
+MY_PATH="`dirname \"$0\"`" # relative
+MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
+. "${MY_PATH}/../tools/my.sh"
+
+start=`date +%s`
+
+echo "PORT=$1
+THAT=$2
+AND=$3
+THIS=$4
+APPNAME=$5
+WHAT=$6
+OBJ=$7
+VAL=$8
+MOATS=$9
+COOKIE=$10"
+PORT="$1" THAT="$2" AND="$3" THIS="$4" APPNAME="$5" WHAT="$6" OBJ="$7" VAL="$8" MOATS="$9" COOKIE="$10"
+### transfer variables according to script
+QRCODE=$(echo "$THAT" | cut -d ':' -f 1) # G1nkgo compatible
+
+HTTPCORS="HTTP/1.1 200 OK
+Access-Control-Allow-Origin: ${myASTROPORT}
+Access-Control-Allow-Credentials: true
+Access-Control-Allow-Methods: GET
+Server: Astroport.ONE
+Content-Type: text/html; charset=UTF-8
+
+"
+function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
+
+## GET TW
+mkdir -p ~/.zen/tmp/${MOATS}/
+
+## DIRECT VISA.print.sh
+PLAYER=${THAT}
+SALT=${AND}
+LAT=${AND}
+PEPPER=${THIS}
+LON=${THIS}
+PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-7)
+
+
+ EMAIL="${PLAYER,,}" # lowercase
+
+ [[ ! ${EMAIL} ]] && (echo "$HTTPCORS ERROR - MISSING ${EMAIL} FOR ${WHAT} CONTACT" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0
+
+ ## CHECK WHAT IS EMAIL
+ if [[ "${EMAIL}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
+ echo "VALID ${EMAIL} EMAIL OK"
+ else
+ echo "BAD EMAIL"
+ (echo "$HTTPCORS KO ${EMAIL} : bad '" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 0
+ fi
+
+
+echo "${MY_PATH}/../tools/VISA.print.sh" "${EMAIL}" "'"$SALT"'" "'"$PEPPER"'" "'"$PASS"'"
+${MY_PATH}/../tools/VISA.print.sh "${EMAIL}" "$SALT" "$PEPPER" "$PASS" ##
+[[ ${EMAIL} != "" && ${EMAIL} != $(cat ~/.zen/game/players/.current/.player 2>/dev/null) ]] && rm -Rf ~/.zen/game/players/${EMAIL}/
+
+# UPLANET #############################################
+## OCCUPY COMMON CRYPTO KEY CYBERSPACE
+## SALT="UPLANET LAT $LAT" PEPPER="UPLANET LON $LON"
+######################################################
+echo "UMAP = $LAT:$LON"
+echo "# CALCULATING MAP G1PUB WALLET"
+${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/secret.key "$LAT" "$LON"
+G1PUB=$(cat ~/.zen/tmp/${MOATS}/secret.key | grep 'pub:' | cut -d ' ' -f 2)
+[[ ! ${G1PUB} ]] && (echo "$HTTPCORS ERROR - (╥☁╥ ) - KEYGEN COMPUTATION DISFUNCTON" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 1
+echo "MAPG1PUB : ${G1PUB}"
+
+echo "# CALCULATING UMAP IPNS ADDRESS"
+ipfs key rm ${G1PUB} > /dev/null 2>&1
+rm -f ~/.zen/tmp/${MOATS}/${G1PUB}.ipns.key
+${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${G1PUB}.ipns.key "$LAT" "$LON"
+UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${G1PUB}.ipns.key )
+[[ ! ${UMAPNS} ]] && (echo "$HTTPCORS ERROR - (╥☁╥ ) - UMAPNS COMPUTATION DISFUNCTON" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 1
+
+echo "# OSM2IPFS using Chromium loading Umap.html"
+
+
+echo "${HTTPCORS}" > ~/.zen/tmp/${MOATS}/http.rep
+cat ~/.zen/tmp/${PLAYER}.moatube.json >> ~/.zen/tmp/${MOATS}/http.rep
+cat ~/.zen/tmp/${MOATS}/http.rep | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
+
+
+end=`date +%s`
+echo "(TW) MOA Operation time was "`expr $end - $start` seconds.
+exit 0
diff --git a/_12345.sh b/_12345.sh
index f4679a6e..35a98bdf 100755
--- a/_12345.sh
+++ b/_12345.sh
@@ -63,7 +63,7 @@ echo "${MOATS}" > ~/.zen/tmp/.MySwarm.moats
ipfs key import "MySwarm_${IPFSNODEID}" -f pem-pkcs8-cleartext ~/.zen/game/myswarm_secret.ipfskey
CHAN=$(ipfs key list -l | grep -w "MySwarm_${IPFSNODEID}" | cut -d ' ' -f 1 )
fi
- ########################################################
+ ######################################################## MAKE IPFS NODE CHAN ID CPU RELATED
## PUBLISH CHANNEL IPNS
echo "/ipns/$CHAN" > ~/.zen/tmp/${IPFSNODEID}/.MySwarm
diff --git a/templates/register (copie).html b/templates/register (copie).html
new file mode 100644
index 00000000..654ee49b
--- /dev/null
+++ b/templates/register (copie).html
@@ -0,0 +1,244 @@
+
+
+
+
+ [Astroport] :: Station _HOSTNAME_ :: _IPFSNODEID_
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Welkom - Mirë se vini - Willkommen - Welkomma - Welcome - Marhaban - Bari galoust - Xos gelmissiniz - Welkum - Ongi etorri- Swagata - Ansuf yiswen - ščyra zaprašajem - Kyo tzo pa eit - ॐ★ॐ - Ani kié - Dobro došli - Dagemer mat - Dobre doshŭl - Benvinguts - Ulihebisdi - ௐ- Huān yíng - Karibu - Eoso eoseyo - Benvenuti - Bel bonjou - Bienvini - Dobrodošli - Velkommen - Bienvenido - Bonvenon - Tere tulemast - Gabitê - Vælkomin - Tervetuloa - Welkom - Wìllkòmme - Binvignut - Fàilte - Benvido - Croeso - Planvenguda - Mikouabô - Kalos irthate - Eguahé porá - Baroukh habaim - ﷽
+
+
+
+
+
+
+
+
+
+
+ Installez Astroport.ONE puis ajoutez ipfs-companion à votre navigateur
+
+
+
+BECOME ASTROŊAUTE
+explore
+Astroport Ŋ1 Swarm#0
+
+Associate your key phrases with an email address
+
+Phrase One ("login")
+Phrase Two ("password")
+
+Accept delegation of your key (Ŋ1 20h12 bitswap)
+
+Need help? Contact support@qo-op.com
+Astroport operates a 100% blockchain digitalization.
+Copy, store, share, broadcast your multimedia and json channels in IPFS, between friends!
+Take possession of your TW. Make freedom of expression uncensurable, unstoppable.
+
+>>> Let's reboot the INTERNET - Install IPFS - Activate Astroport.ONE <<<
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/register.html b/templates/register.html
index 654ee49b..767c7189 100644
--- a/templates/register.html
+++ b/templates/register.html
@@ -2,13 +2,12 @@
- [Astroport] :: Station _HOSTNAME_ :: _IPFSNODEID_
-
+ [Astroport] : G1Visa Application : _HOSTNAME_ :: _IPFSNODEID_
+