mirror of
https://codeberg.org/pluja/kycnot.me
synced 2025-01-08 21:57:58 -05:00
use html
This commit is contained in:
parent
7e259b7cb4
commit
1d0c1315d8
@ -1,284 +0,0 @@
|
||||
<style>
|
||||
section {
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
font-family: sans-serif;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
section p {
|
||||
margin-bottom: 1rem;
|
||||
font-family: sans-serif;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
section a {
|
||||
color: rgb(163 230 53);
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 0.2rem;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 0.3rem;
|
||||
font-weight: bold;
|
||||
color: rgb(163 230 53);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.1em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
h3::before {
|
||||
content: '~ ';
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-top: 0.3rem;
|
||||
margin-bottom: 0.5rem;
|
||||
padding-left: 1rem;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
li a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
section blockquote {
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
padding-left: 1rem;
|
||||
border-left: 0.3rem solid rgb(163 230 53);
|
||||
color: rgb(142, 146, 150);
|
||||
}
|
||||
|
||||
code {
|
||||
background: #2b2828;
|
||||
border: 1px solid #494242;
|
||||
border-left: 3px solid #89f333;
|
||||
color: #d3cccc;
|
||||
font-family: monospace;
|
||||
max-width: 100%;
|
||||
overflow: scorll;
|
||||
padding: 1em 1em;
|
||||
display: block;
|
||||
word-wrap: break-word;
|
||||
max-width: 90vw;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
<article class="mt-8 md:p-4 md:max-w-5xl">
|
||||
<div class="flex flex-col items-center justify-center">
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 class="font-bold text-lime-400">why kycnot.me?</h2>
|
||||
<p>Cryptocurrencies were created to revolutionize the way we pay for goods and services, aiming to eliminate
|
||||
reliance on centralized entities such as banks and governments that control our economy.</p>
|
||||
|
||||
<p>Exchanges that enforce KYC (Know Your Customer) and AML (Anti-Money Laundering) rules operate similarly
|
||||
to
|
||||
traditional banks. Users are required to provide identification, such as a photo of their ID, to use
|
||||
these
|
||||
exchanges. Moreover, most of these exchanges are centralized, meaning that users do not own their keys.
|
||||
In
|
||||
short, this implies that the cryptocurrencies belong to the exchange and not the user. These
|
||||
requirements
|
||||
contradict the decentralized nature of cryptocurrencies.</p>
|
||||
|
||||
<p>With KYCNOT.ME, I hope to provide people with trustworthy alternatives for buying, exchanging, trading,
|
||||
and
|
||||
using cryptocurrencies without having to disclose their identity. This preserves the essence of
|
||||
cryptocurrencies, which is decentralized and self-governed.</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 class="font-bold text-lime-400">what's KYC?</h2>
|
||||
<div class="space-y-2">
|
||||
<p><strong>KYC</strong> stands for <strong>"Know Your Customer"</strong>, a process designed to
|
||||
protect financial institutions against fraud, corruption, money laundering and terrorist financing.
|
||||
Or at
|
||||
least this is what they want you to believe.</p>
|
||||
<p>The truth is that KYC is a threat to our freedom. KYC is a direct attack on our privacy and puts us
|
||||
in
|
||||
disadvantage against the governments. True criminals don't care about KYC policies. True criminals
|
||||
know
|
||||
perfectly how to avoid such policies. In fact, they normally use the FIAT system and don't even need
|
||||
to
|
||||
use cryptocurrencies. Banks are the biggest money launders, the <a
|
||||
href="https://www.reuters.com/business/hsbc-fined-85-mln-anti-money-laundering-failings-2021-12-17/">HSBC
|
||||
scandal</a>, <a
|
||||
href="https://www.reuters.com/article/us-nordea-bnk-moneylaundering-idUSKCN1QL11S">Nordea</a> or
|
||||
<a
|
||||
href="https://www.reuters.com/article/us-europe-moneylaundering-swedbank/swedbank-hit-with-record-386-million-fine-over-baltic-money-laundering-breaches-idUSKBN2163LU">Swedbank</a>
|
||||
are just some examples.</p>
|
||||
<p>KYC only affects small individuals like you and me. It is an annoying procedure that obligates us to
|
||||
hand our
|
||||
personal information to a third party in order to buy, use or unlock our funds. We should start
|
||||
boycotting
|
||||
such companies. We should start using decentralized exchanges and decentralized wallets. We should
|
||||
start
|
||||
using cryptocurrencies as they were intended to be used.</p>
|
||||
</div>
|
||||
|
||||
<h3 id="other-acronyms-of-interest">other acronyms of interest</h3>
|
||||
<ul>
|
||||
<li><strong>AML</strong>: Anti-Money Laundering</li>
|
||||
<li><strong>CFT</strong>: Combating the Financing of Terrorism</li>
|
||||
<li><strong>SoF</strong>: Source of Funds</li>
|
||||
<li><strong>ToS</strong>: Terms of Service</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="why-only-bitcoin-and-monero-">why only Bitcoin and Monero?</h2>
|
||||
<p><strong>Bitcoin</strong>: it is the most well-known cryptocurrency. It's widespread and has the biggest
|
||||
market capitalization of all cryptocurrencies.</p>
|
||||
<p><strong>Monero</strong>: if digital cash was to exist, it should be like Monero. Fungible, private by
|
||||
design,
|
||||
fast and pretty low fees. Also, one of the oldest cryptocurrencies around.</p>
|
||||
<p>No other currencies will be added. Most sites listed here also accept other cryptocurrencies, such as
|
||||
Ethereum or Litecoin.</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="listings">listings</h2>
|
||||
<h3 id="request">request</h3>
|
||||
<p>You can request a new listing by visiting the <a href="/request/service">Request</a> page.</p>
|
||||
|
||||
<h3 id="attributes">what is an attribute?</h3>
|
||||
<p>An attribute is a feature that a service has. An attribute can be either good, a warning, bad or
|
||||
informational. Attributes are not limited, the list of attributes will grow if needed, you can see a
|
||||
full list of the attributes available on the Attributes page.</p>
|
||||
<p>You can click on any point to see a detailed description of what it means. The point page also shows all
|
||||
the listings that have that point. This is also a useful way to find listings that have a specific
|
||||
feature.</p>
|
||||
|
||||
<h3 id="search">search</h3>
|
||||
|
||||
<p>Filtering services in kycnot.me is very easy. In the main page, you will see 3 possible filters:</p>
|
||||
|
||||
<ul>
|
||||
<li><b>Type filter</b>: Lets you choose between seeing all the listings (default), only exchanges, or
|
||||
only services.</li>
|
||||
<li><b>Search bar</b>: The search bar is the most powerful filter. You can use it to perform a full-text
|
||||
search on the listings. The search will look for the text you enter in the name, description,
|
||||
keywords and category. The search is not case-sensitive.</li>
|
||||
<li><b>Currency filter</b>: Lets you choose between seeing all the listings (default), only listings
|
||||
that accept a certain currency. If you choose more than one option, it will show all the listings
|
||||
that accept all of the selected currencies.</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="scoring">scoring</h3>
|
||||
|
||||
<p>Each listing has a score that is calculated based on the attributes that it has. The score does not
|
||||
reflect how good an exchange is overall, but it seeks to give a score in relation to its KYC practices.
|
||||
An exchange could have an awful UI/UX, but if it is very NO-KYC friendly, it will still get a high
|
||||
score.</p>
|
||||
|
||||
<h3 id="order">order</h3>
|
||||
|
||||
<p>The listings are sorted in a decreasing order by score. For listings that share the same score (tie), the
|
||||
order is random every time within that score range.</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="tos">terms of service auto-reviews</h2>
|
||||
|
||||
<p>KYCnot.me offers an automated tool that reviews the Terms of Service (ToS) for various services. This
|
||||
tool utilizes AI models to analyze the ToS text, extracting key points and presenting them in simple,
|
||||
plain English. The aim is to make understanding the ToS for any service easier and more straightforward.
|
||||
</p>
|
||||
|
||||
<p>For this, I am using OpenAI's GPT4-turbo model, which proved to be the most reliable and provides the
|
||||
best results.</p>
|
||||
|
||||
<p><b>Important note:</b> This automated tool is not perfect, it may detect false positives, or non-relevant
|
||||
lines. But, overall, it returns reliable and good results.</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="levels">kyc Levels</h2>
|
||||
|
||||
<p>
|
||||
KYCnot.me has a KYC level system. These levels allow you to quickly identify the kind of KYC practices a
|
||||
service may have. There are 4 levels going from 0 to 3. The higher the level, the more invasive the KYC
|
||||
practices are. <b>You can click on the level on the service page to see a detailed description of what
|
||||
it means.</b>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="verification">verification</h2>
|
||||
|
||||
<p>You will see that some services show a double blue tick. This means that the service has been tested
|
||||
personally by me.</p>
|
||||
|
||||
<p>To check the service, I make a trade on the site, or test the service manually. With this, I can verify
|
||||
that the service does not perform KYC practices on regular basis, and that it is not a scam, at least at
|
||||
the time of the verification.</p>
|
||||
|
||||
<p>These checks are done randomly and without prior notice to the service. For this reason, and as the list
|
||||
is in constant growth, not all services have been verified yet and it takes me some time to verify them.
|
||||
</p>
|
||||
|
||||
<p>A verified service does not mean that the service is safe to use blindly, it just means that at the time
|
||||
of the verification, the service was not performing KYC practices on regular basis, and that it was not
|
||||
a scam. It is still recommended to do your own research before using any service.</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="p-2 px-4 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="comments">(nostr) comments</h2>
|
||||
|
||||
<p>Each service has a dedicated comments article. The comments are suppored by <a
|
||||
href="https://usenostr.org">Nostr</a>, a decentralized structured data sharing protocol used to
|
||||
build social networks.</p>
|
||||
|
||||
<p><a href="https://usenostr.org" target="_blank">> Visit this page for a simple and quick introduction to
|
||||
Nostr.</a></p>
|
||||
|
||||
<p>To comment on a service's page, you just need a Nostr private key and a secure <a
|
||||
href="https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions" target="_blank">nostr
|
||||
siging extension (nip-07)</a> for logging in. I recommend using <a href="https://getalby.com/"
|
||||
target="_blank">Alby</a> or <a href="https://github.com/fiatjaf/nos2x" target="_blank">nos2x</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
645
src/frontend/templates/about.html
Normal file
645
src/frontend/templates/about.html
Normal file
@ -0,0 +1,645 @@
|
||||
<style>
|
||||
article {
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
#main {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
article p {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
article a {
|
||||
color: rgb(163 230 53);
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 0.2rem;
|
||||
}
|
||||
|
||||
article p {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 0.3rem;
|
||||
font-weight: bold;
|
||||
color: rgb(163 230 53);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.1em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
h3::before {
|
||||
content: "~ ";
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-top: 0.3rem;
|
||||
margin-bottom: 0.5rem;
|
||||
padding-left: 1rem;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
li a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
article blockquote {
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
padding-left: 1rem;
|
||||
border-left: 0.3rem solid rgb(163 230 53);
|
||||
color: rgb(142, 146, 150);
|
||||
}
|
||||
|
||||
code {
|
||||
background: #2b282872;
|
||||
border: 1px solid #494242;
|
||||
border-radius: 0.2rem;
|
||||
font-weight: bold;
|
||||
border-left: 3px solid #89f333;
|
||||
color: #d3cccc;
|
||||
font-family: monospace;
|
||||
max-width: 100%;
|
||||
overflow: scorll;
|
||||
padding: 1em 1em;
|
||||
display: block;
|
||||
word-wrap: break-word;
|
||||
max-width: 90vw;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="main" class="flex flex-col items-center justify-center my-8">
|
||||
<div class="w-full max-w-4xl p-4">
|
||||
<div class="space-x-1 text-xs font-bold text-center lowercase text-lime-500">
|
||||
<a href="#why">Why</a>
|
||||
·
|
||||
<a href="#what">What</a>
|
||||
·
|
||||
<a href="#btcxmr">Only Bitcoin and Monero?</a>
|
||||
·
|
||||
<a href="#listings">About listings</a>
|
||||
·
|
||||
<a href="#tos">ToS reviews</a>
|
||||
·
|
||||
<a href="#support">Support</a>
|
||||
·
|
||||
<a href="#contact">contact</a>
|
||||
·
|
||||
<a href="#comments">comments</a>
|
||||
·
|
||||
<a href="#transparency">transparency</a>
|
||||
·
|
||||
<a href="#privacy">privacy</a>
|
||||
·
|
||||
<a href="#disclaimer">disclaimer</a>
|
||||
</div>
|
||||
</div>
|
||||
<article class="md:p-4 md:max-w-5xl">
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="why" class="font-bold text-lime-400">why kycnot.me?</h2>
|
||||
<p>
|
||||
Cryptocurrencies were created to revolutionize the way we pay for goods
|
||||
and services, aiming to eliminate reliance on centralized entities such
|
||||
as banks and governments that control our economy.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Exchanges that enforce KYC (Know Your Customer) and AML (Anti-Money
|
||||
Laundering) rules operate similarly to traditional banks. Users are
|
||||
required to provide identification, such as a photo of their ID, to use
|
||||
these exchanges. Moreover, most of these exchanges are centralized,
|
||||
meaning that users do not own their keys. In short, this implies that
|
||||
the cryptocurrencies belong to the exchange and not the user. These
|
||||
requirements contradict the decentralized nature of cryptocurrencies.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
With KYCNOT.ME, I hope to provide people with trustworthy alternatives
|
||||
for buying, exchanging, trading, and using cryptocurrencies without
|
||||
having to disclose their identity. This preserves the essence of
|
||||
cryptocurrencies, which is decentralized and self-governed.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="what" class="font-bold text-lime-400">what's KYC?</h2>
|
||||
<div class="space-y-2">
|
||||
<p>
|
||||
<strong>KYC</strong> stands for <strong>"Know Your Customer"</strong>,
|
||||
a process designed to protect financial institutions against fraud,
|
||||
corruption, money laundering and terrorist financing. Or at least this
|
||||
is what they want you to believe.
|
||||
</p>
|
||||
<p>
|
||||
The truth is that KYC is a threat to our freedom. KYC is a direct
|
||||
attack on our privacy and puts us in disadvantage against the
|
||||
governments. True criminals don't care about KYC policies. True
|
||||
criminals know perfectly how to avoid such policies. In fact, they
|
||||
normally use the FIAT system and don't even need to use
|
||||
cryptocurrencies. Banks are the biggest money launders, the
|
||||
<a rel="noreferrer"
|
||||
href="https://www.reuters.com/business/hsbc-fined-85-mln-anti-money-laundering-failings-2021-12-17/">HSBC
|
||||
scandal</a>,
|
||||
<a rel="noreferrer"
|
||||
href="https://www.reuters.com/article/us-nordea-bnk-moneylaundering-idUSKCN1QL11S">Nordea</a>
|
||||
or
|
||||
<a rel="noreferrer"
|
||||
href="https://www.reuters.com/article/us-europe-moneylaundering-swedbank/swedbank-hit-with-record-386-million-fine-over-baltic-money-laundering-breaches-idUSKBN2163LU">Swedbank</a>
|
||||
are just some examples.
|
||||
</p>
|
||||
<p>
|
||||
KYC only affects small individuals like you and me. It is an annoying
|
||||
procedure that obligates us to hand our personal information to a
|
||||
third party in order to buy, use or unlock our funds. We should start
|
||||
boycotting such companies. We should start using decentralized
|
||||
exchanges and decentralized wallets. We should start using
|
||||
cryptocurrencies as they were intended to be used.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h3 id="other-acronyms-of-interest">other acronyms of interest</h3>
|
||||
<ul>
|
||||
<li><strong>AML</strong>: Anti-Money Laundering</li>
|
||||
<li><strong>CFT</strong>: Combating the Financing of Terrorism</li>
|
||||
<li><strong>SoF</strong>: Source of Funds</li>
|
||||
<li><strong>ToS</strong>: Terms of Service</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="btcxmr">why only Bitcoin and Monero?</h2>
|
||||
<p>
|
||||
<strong>Bitcoin</strong>: it is the most well-known cryptocurrency. It's
|
||||
widespread and has the biggest market capitalization of all
|
||||
cryptocurrencies.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Monero</strong>: if digital cash was to exist, it should be like
|
||||
Monero. Fungible, private by design, fast and pretty low fees. Also, one
|
||||
of the oldest cryptocurrencies around.
|
||||
</p>
|
||||
<p>
|
||||
No other currencies will be added. Most sites listed here also accept
|
||||
other cryptocurrencies, such as Ethereum or Litecoin.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="listings">listings</h2>
|
||||
<h3 id="request">request</h3>
|
||||
<p>
|
||||
You can request a new listing by visiting the
|
||||
<a href="/request/service">Request</a> page.
|
||||
</p>
|
||||
|
||||
<h3 id="listing-process">listing process</h3>
|
||||
<p>
|
||||
The listing process is usually slow. I first need to review the service, read online reviews, gather
|
||||
evidence and history of good reviews / opinions, test it myself (i don't always do this), read the terms
|
||||
of service, privacy policy, etc...
|
||||
</p>
|
||||
|
||||
<p>I do this on my own free time, so I'm slow at it. If you feel like a <a href="/pending">pending
|
||||
service</a> deserves to be listed, you can <a href="#contact">contact me</a> and I will try to speed
|
||||
up the review process.</p>
|
||||
|
||||
<h3 id="attributes">what is an attribute?</h3>
|
||||
<p>
|
||||
An attribute is a feature that a service has. An attribute can be either
|
||||
good, a warning, bad or informational. Attributes are not limited, the
|
||||
list of attributes will grow if needed, you can see a full list of the
|
||||
attributes available on the Attributes page.
|
||||
</p>
|
||||
<p>
|
||||
You can click on any point to see a detailed description of what it
|
||||
means. The point page also shows all the listings that have that point.
|
||||
This is also a useful way to find listings that have a specific feature.
|
||||
</p>
|
||||
|
||||
<h3 id="search">search</h3>
|
||||
|
||||
<p>
|
||||
Filtering services in kycnot.me is very easy. In the main page, you will
|
||||
see 3 possible filters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Type filter</b>: Lets you choose between seeing all the listings
|
||||
(default), only exchanges, or only services.
|
||||
</li>
|
||||
<li>
|
||||
<b>Search bar</b>: The search bar is the most powerful filter. You can
|
||||
use it to perform a full-text search on the listings. The search will
|
||||
look for the text you enter in the name, description, keywords and
|
||||
category. The search is not case-sensitive.
|
||||
</li>
|
||||
<li>
|
||||
<b>Currency filter</b>: Lets you choose between seeing all the
|
||||
listings (default), only listings that accept a certain currency. If
|
||||
you choose more than one option, it will show all the listings that
|
||||
accept all of the selected currencies.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="levels">kyc Levels</h3>
|
||||
|
||||
<p>
|
||||
KYCnot.me has a KYC level system. These levels allow you to quickly
|
||||
identify the kind of KYC practices a service may have. There are 4
|
||||
levels going from 0 to 3. The higher the level, the more invasive the
|
||||
KYC practices are.
|
||||
<b>You can click on the level on the service page to see a detailed
|
||||
description of what it means.</b>
|
||||
</p>
|
||||
|
||||
<h3 id="scoring">scoring</h3>
|
||||
|
||||
<p>
|
||||
Each listing has a score that is calculated based on the attributes that
|
||||
it has. The score does not reflect how good an exchange is overall, but
|
||||
it seeks to give a score in relation to its KYC practices. An exchange
|
||||
could have an awful UI/UX, but if it is very NO-KYC friendly, it will
|
||||
still get a high score.
|
||||
</p>
|
||||
|
||||
<h3 id="order">order</h3>
|
||||
|
||||
<p>
|
||||
The listings are sorted in a decreasing order by score. For listings
|
||||
that share the same score (tie), the order is random every time within
|
||||
that score range.
|
||||
</p>
|
||||
|
||||
<h3 id="pending">pending</h3>
|
||||
|
||||
<p>
|
||||
You can find the list of services that have been requested and are pending for approval here: <a
|
||||
href="/pending">/pending</a>
|
||||
</p>
|
||||
|
||||
<h3 id="verification">verification</h3>
|
||||
|
||||
<p class="mt-2">
|
||||
You will see that some services show a blue badge with a tick. This
|
||||
means that the service has been tested personally by me.
|
||||
</p>
|
||||
|
||||
<p class="mt-2">
|
||||
To check the service, I make a trade on the site, or test the service
|
||||
manually. With this, I can verify that the service does not perform KYC
|
||||
practices on regular basis, and that it is not a scam, at least at the
|
||||
time of the verification.
|
||||
</p>
|
||||
|
||||
<p class="mt-2">
|
||||
These checks are done randomly and without prior notice to the service.
|
||||
For this reason, and as the list is in constant growth, not all services
|
||||
have been verified yet and it takes me some time to verify them.
|
||||
</p>
|
||||
|
||||
<p class="mt-2">
|
||||
A verified service does not mean that the service is safe to use
|
||||
blindly, it just means that at the time of the verification, the service
|
||||
was not performing KYC practices on regular basis, and that it was not a
|
||||
scam. It is still recommended to do your own research before using any
|
||||
service.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="tos">terms of service auto-reviews</h2>
|
||||
|
||||
<p>
|
||||
KYCnot.me has an automated tool that reviews the Terms of Service (ToS)
|
||||
for various services. This tool utilizes AI to analyze the ToS text,
|
||||
extracting key points and presenting them in simple, plain English. The
|
||||
aim is to make understanding the ToS for any service easier and more
|
||||
straightforward.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For this, I am using OpenAI's GPT4-turbo model, which proved to be the
|
||||
most reliable and provides the best results.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Important note:</b> This automated tool is not perfect, it may detect
|
||||
false positives, or non-relevant lines. But, overall, it returns
|
||||
reliable and good results.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="support">support this project</h2>
|
||||
|
||||
<p>
|
||||
If you like this project, or
|
||||
<a target="_blank" href="https://pluja.dev">any of my other projects</a>, you can make donations using
|
||||
the following methods:
|
||||
</p>
|
||||
|
||||
<ul class="py-3 space-y-6 list-none">
|
||||
<li>
|
||||
<span class="flex items-center space-x-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 monero-filled" width="24" height="24"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M15 11.414v4.586a1 1 0 0 0 1 1l4.66 .001a10 10 0 0 1 -17.32 0l4.66 -.001l.117 -.007a1 1 0 0 0 .883 -.993v-4.585l2.293 2.292l.094 .083a1 1 0 0 0 1.32 -.083l2.293 -2.293zm2 -8.074a10 10 0 0 1 4.54 11.66h-4.54v-6c0 -.89 -1.077 -1.337 -1.707 -.707l-3.293 3.292l-3.293 -3.292l-.084 -.076c-.637 -.514 -1.623 -.07 -1.623 .783v6h-4.54a9.991 9.991 0 0 1 -.46 -3l.005 -.324a10 10 0 0 1 14.995 -8.336z"
|
||||
stroke-width="0" fill="currentColor" />
|
||||
</svg>
|
||||
<span class="font-bold uppercase">Monero</span>
|
||||
</span>
|
||||
<p class="text-xs text-white/50">
|
||||
> If your wallet supports <a rel="noreferrer" target="_blank"
|
||||
href="https://openalias.org/">OpenAlias</a>, you
|
||||
can use
|
||||
<span class="font-bold">kycnot.me</span> in the address field.
|
||||
</p>
|
||||
<code>{{.Xmr}}</code>
|
||||
|
||||
<details class="my-2 rounded-lg cursor-pointer">
|
||||
<summary class="flex items-center space-x-1 text-sm font-bold">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 icon icon-tabler icon-tabler-qrcode"
|
||||
width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
||||
fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M4 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
|
||||
<path d="M7 17l0 .01" />
|
||||
<path
|
||||
d="M14 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
|
||||
<path d="M7 7l0 .01" />
|
||||
<path
|
||||
d="M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
|
||||
<path d="M17 7l0 .01" />
|
||||
<path d="M14 14l3 0" />
|
||||
<path d="M20 14l0 .01" />
|
||||
<path d="M14 14l0 3" />
|
||||
<path d="M14 20l3 0" />
|
||||
<path d="M17 17l3 0" />
|
||||
<path d="M20 17l0 3" />
|
||||
</svg>
|
||||
<span>
|
||||
Click for QR Code
|
||||
</span>
|
||||
</summary>
|
||||
<img class="my-4"
|
||||
src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=monero:{{.Xmr}}"
|
||||
alt="Monero address QR code" />
|
||||
</details>
|
||||
</li>
|
||||
<li>
|
||||
<span class="flex items-center space-x-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 bitcoin-filled" width="24" height="24"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336zm-4 2.66a1 1 0 0 0 -1 1h-1a1 1 0 0 0 -2 0a1 1 0 1 0 0 2v6a1 1 0 0 0 0 2c0 1.333 2 1.333 2 0h1a1 1 0 0 0 2 0v-.15c1.167 -.394 2 -1.527 2 -2.85l-.005 -.175a3.063 3.063 0 0 0 -.734 -1.827c.46 -.532 .739 -1.233 .739 -1.998c0 -1.323 -.833 -2.456 -2 -2.85v-.15a1 1 0 0 0 -1 -1zm.09 7c.492 0 .91 .437 .91 1s-.418 1 -.91 1h-2.09v-2h2.09zm0 -4c.492 0 .91 .437 .91 1c0 .522 -.36 .937 -.806 .993l-.104 .007h-2.09v-2h2.09z"
|
||||
stroke-width="0" fill="currentColor" />
|
||||
</svg>
|
||||
<span class="font-bold uppercase">Bitcoin</span>
|
||||
</span>
|
||||
<code>{{.Btc}}</code>
|
||||
|
||||
<details class="my-2 rounded-lg cursor-pointer">
|
||||
<summary class="flex items-center space-x-1 text-sm font-bold">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 icon icon-tabler icon-tabler-qrcode"
|
||||
width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
||||
fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path
|
||||
d="M4 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
|
||||
<path d="M7 17l0 .01" />
|
||||
<path
|
||||
d="M14 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
|
||||
<path d="M7 7l0 .01" />
|
||||
<path
|
||||
d="M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
|
||||
<path d="M17 7l0 .01" />
|
||||
<path d="M14 14l3 0" />
|
||||
<path d="M20 14l0 .01" />
|
||||
<path d="M14 14l0 3" />
|
||||
<path d="M14 20l3 0" />
|
||||
<path d="M17 17l3 0" />
|
||||
<path d="M20 17l0 3" />
|
||||
</svg>
|
||||
<span>
|
||||
Click for QR Code
|
||||
</span>
|
||||
</summary>
|
||||
<img class="my-4"
|
||||
src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=bitcoin:{{.Btc}}"
|
||||
alt="Bitcoin Address QR Code" />
|
||||
</details>
|
||||
</li>
|
||||
<li>
|
||||
<span class="flex items-center space-x-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 tabler-bolt" width="24" height="24"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11" />
|
||||
</svg>
|
||||
<a target="_blank" rel="noreferrer" href="{{.Lnn}}">Lightning Network</a>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p class="px-4 text-sm text-white/60">
|
||||
Note: I fund this project entirely on my own, as an independent
|
||||
individual without sponsors or alternative revenue streams, I rely
|
||||
solely on <b>donations</b> and <b>referrals</b> (if you choose to use
|
||||
them). I am committed to maintaining the project's independence and
|
||||
integrity, thus I do not accept bribes or sponsorships. Please note that
|
||||
donations should not be made with the expectation of receiving personal
|
||||
benefits for your service/product. If you did, I'll be happy to return
|
||||
the donation to you.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="contact">contact</h2>
|
||||
<p>
|
||||
Due to misuse and the inability to manage them effectively, I have
|
||||
removed all instant messaging / email contact methods, since I was
|
||||
leaving many inquiries unanswered. Please feel free to reach out to me
|
||||
on any of the following social media platforms for any questions or
|
||||
concerns.
|
||||
</p>
|
||||
<p>
|
||||
For more private communications, simply request via these platforms, and
|
||||
I will provide you with an email address or an alternative instant
|
||||
messaging option.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a target="_blank" rel="noreferrer" href="https://fosstodon.org/@kycnotme">🦣 Mastodon</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noreferrer"
|
||||
href="https://njump.me/npub188x98j0r7l2fszeph6j7hj99h8xl07n989pskk5zd69d2fcksetq5mgcqf">🪶
|
||||
Nostr</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noreferrer" href="https://lemmy.world/u/pluja">🐭 Lemmy</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="comments">(nostr) comments</h2>
|
||||
|
||||
<p>
|
||||
Each service has a dedicated comments article. The comments are suppored
|
||||
by <a href="https://usenostr.org">Nostr</a>, a decentralized structured
|
||||
data sharing protocol used to build social networks.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="https://usenostr.org" target="_blank">> Visit this page for a simple and quick introduction to
|
||||
Nostr.</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To comment on a service's page, you just need a Nostr private key and a
|
||||
secure
|
||||
<a rel="noreferrer" href="https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions"
|
||||
target="_blank">nostr
|
||||
siging extension (nip-07)</a>
|
||||
for logging in. I recommend using
|
||||
<a href="https://getalby.com/" target="_blank">Alby</a> or
|
||||
<a href="https://github.com/fiatjaf/nos2x" target="_blank">nos2x</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="transparency">transparency</h2>
|
||||
|
||||
<p>
|
||||
In order to increase trust from visitors, KYCNOT.me strives to be as
|
||||
transparent as possible. Here are some of the ways in which I try to
|
||||
achieve this:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://github.com/pluja/kycnotme">Open Source Code</a> - A
|
||||
commit history, and full disclosure of the scoring algorithm is
|
||||
provided.
|
||||
</li>
|
||||
<li>
|
||||
Public comment section on each page, available on
|
||||
<a target="_blank" href="https://usenostr.org">Nostr</a>.
|
||||
</li>
|
||||
<li>Endpoint to download the full database</li>
|
||||
<li>
|
||||
Open scoring algorithmg. All services go under the same algorithm,
|
||||
meaning that the score is not subjective.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="privacy">privacy</h2>
|
||||
|
||||
<p>
|
||||
KYCNOT.me does not have trackers and never will. It does not make any
|
||||
third party connections from the frontend. No user data of any kind is
|
||||
collected. A "no-referrer" policy is enforced, so no site will know that
|
||||
you came from kycnot.me.
|
||||
</p>
|
||||
|
||||
<h3 id="javascript">javascript</h3>
|
||||
|
||||
<p>
|
||||
KYCNOT.me does not use Javascript. Everything is rendered server-side.
|
||||
This means that you can use KYCNOT.me with Javascript disabled.
|
||||
</p>
|
||||
|
||||
<p>Only things that <b>require</b> JavaScript to be enabled are:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<b>Requests</b>: The Proof-Of-Work captcha, that I coded myself, needs
|
||||
JavaScript for the verfication. The code is public, and you can read
|
||||
it yourself on the repo.
|
||||
</li>
|
||||
<li>
|
||||
<b>Comments</b>: The comment section on each of the services, needs
|
||||
JavaScript since it needs to fetch and post to Nostr. The code that
|
||||
makes this interaction is also fully open source and can be reviewed
|
||||
in the repo as well.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="w-full my-4 border border-t border-white/20"></div>
|
||||
|
||||
<div class="px-4 py-2 m-2 rounded-xl bg-gray-500/10">
|
||||
<h2 id="disclaimer">disclaimer</h2>
|
||||
|
||||
<p>
|
||||
This website does not provide any not financial advice. Always do your
|
||||
own research before using any service. This site is for informational
|
||||
purposes only. I'm not responsible for any loss of funds or any other
|
||||
damage that may occur by using any of the services listed here. Use at
|
||||
your own risk.
|
||||
</p>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
@ -1,47 +0,0 @@
|
||||
<section class="pt-14">
|
||||
<div class="flex flex-col items-center justify-center space-x-4">
|
||||
<!--<h1 class="text-2xl font-bold capitalize-first">{{.Attribute.Title}}</h1>-->
|
||||
<!-- Description -->
|
||||
<div class="p-4 m-4
|
||||
{{if eq "info" .Attribute.Rating}} border rounded-lg border-blue-600/40 bg-blue-600/20 {{end}}
|
||||
{{if eq "good" .Attribute.Rating}} border rounded-lg border-green-600/40 bg-green-600/20 {{end}}
|
||||
{{if eq "warn" .Attribute.Rating}} border rounded-lg border-yellow-600/40 bg-yellow-600/20 {{end}}
|
||||
{{if eq "bad" .Attribute.Rating}} border rounded-lg border-red-600/40 bg-red-600/20 {{end}}
|
||||
">
|
||||
|
||||
<h3 class="mb-3 text-lg font-bold uppercase border-b md:text-xl border-b-white/20">
|
||||
{{if eq "info" .Attribute.Rating}}
|
||||
🔵
|
||||
{{end}}
|
||||
{{if eq "good" .Attribute.Rating}}
|
||||
✅
|
||||
{{end}}
|
||||
{{if eq "warn" .Attribute.Rating}}
|
||||
⚠️
|
||||
{{end}}
|
||||
{{if eq "bad" .Attribute.Rating}}
|
||||
🛑
|
||||
{{end}}
|
||||
{{.Attribute.Title}}
|
||||
</h3>
|
||||
|
||||
<p class="max-w-lg">
|
||||
{{if ne .Attribute.Description ""}}
|
||||
{{.Attribute.Description | safe}}
|
||||
{{else}}
|
||||
{{.Attribute.Name}} does not have a description.
|
||||
{{end}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Services list -->
|
||||
<section class="flex flex-col items-center justify-center px-1 mx-2 mt-6">
|
||||
<h2 class="text-lg font-bold uppercase">{{.Attribute.Title}} services:</h2>
|
||||
<div class="grid max-w-6xl grid-cols-1 gap-3 mt-2 md:grid-cols-2 lg:grid-cols-3">
|
||||
{{range .Services}}
|
||||
{{partial "partials/service_card" .}}
|
||||
{{end}}
|
||||
</div>
|
||||
</section>
|
46
src/frontend/templates/attribute.html
Normal file
46
src/frontend/templates/attribute.html
Normal file
@ -0,0 +1,46 @@
|
||||
<section class="pt-14">
|
||||
<div class="flex flex-col items-center justify-center space-x-4">
|
||||
<!--<h1 class="text-2xl font-bold capitalize-first">{{.Attribute.Title}}</h1>-->
|
||||
<!-- Description -->
|
||||
<div class="p-4 m-4
|
||||
{{if eq " info" .Attribute.Rating}} border rounded-lg border-blue-600/40 bg-blue-600/20 {{end}}
|
||||
{{if eq "good" .Attribute.Rating}} border rounded-lg border-green-600/40 bg-green-600/20 {{end}} {{if
|
||||
eq "warn" .Attribute.Rating}} border rounded-lg border-yellow-600/40 bg-yellow-600/20 {{end}} {{if eq "bad"
|
||||
.Attribute.Rating}} border rounded-lg border-red-600/40 bg-red-600/20 {{end}} ">
|
||||
|
||||
<h3 class=" mb-3 text-lg font-bold uppercase border-b md:text-xl border-b-white/20">
|
||||
{{if eq "info" .Attribute.Rating}}
|
||||
🔵
|
||||
{{end}}
|
||||
{{if eq "good" .Attribute.Rating}}
|
||||
✅
|
||||
{{end}}
|
||||
{{if eq "warn" .Attribute.Rating}}
|
||||
⚠️
|
||||
{{end}}
|
||||
{{if eq "bad" .Attribute.Rating}}
|
||||
🛑
|
||||
{{end}}
|
||||
{{.Attribute.Title}}
|
||||
</h3>
|
||||
|
||||
<p class="max-w-lg">
|
||||
{{if ne .Attribute.Description ""}}
|
||||
{{.Attribute.Description | safe}}
|
||||
{{else}}
|
||||
{{.Attribute.Name}} does not have a description.
|
||||
{{end}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Services list -->
|
||||
<section class="flex flex-col items-center justify-center px-1 mx-2 mt-6">
|
||||
<h2 class="text-lg font-bold uppercase text-center">Services with this point:</h2>
|
||||
<div class="grid max-w-6xl grid-cols-1 gap-3 mt-2 md:grid-cols-2 lg:grid-cols-3 mx-auto">
|
||||
{{range .Services}}
|
||||
{{partial "partials/service_card" .}}
|
||||
{{end}}
|
||||
</div>
|
||||
</section>
|
@ -1,81 +1,83 @@
|
||||
<a target="_blank" href="{{.Announcement.Link}}"
|
||||
class="flex items-center justify-center max-w-sm p-2 mx-auto space-x-2 border rounded-lg bg-black/30 border-lime-900">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-lime-600" viewBox="0 0 24 24" stroke-width="1.5"
|
||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<circle cx="12" cy="12" r="9" />
|
||||
<line x1="12" y1="8" x2="12.01" y2="8" />
|
||||
<polyline points="11 12 12 12 12 16 13 16" />
|
||||
</svg>
|
||||
<div class="flex flex-col items-center justify-center text-center">
|
||||
<span class="font-bold">{{.Announcement.Title}}</span>
|
||||
<span class="text-xs lowercase">{{.Announcement.Body}}</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
<main class="py-4 text-lime-500">
|
||||
<div class="px-4 pt-2">
|
||||
<div class="mb-2 text-center bg-transparent md:grid">
|
||||
<p class="font-mono text-sm font-bold uppercase md:text-base">{{.RandomPitch}}</p>
|
||||
<p class="font-mono text-sm font-bold uppercase md:text-base">{{.RandomPitch}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- End Filters -->
|
||||
<form action="/">
|
||||
<input type="hidden" name="t" id="t" value="{{.Filters.Type}}"/>
|
||||
<input type="hidden" name="t" id="t" value="{{.Filters.Type}}" />
|
||||
<div class="flex items-center justify-center mt-4">
|
||||
<input class="text-xs bg-transparent border rounded-lg border-lime-500/60 text-lime-500 placeholder-white/30" placeholder="Search anything..." value="{{.Filters.Query}}" type="text" name="q" id="q">
|
||||
<input
|
||||
class="text-xs bg-transparent border rounded-lg border-lime-500/60 text-lime-500 placeholder-white/30"
|
||||
placeholder="Search anything..." value="{{.Filters.Query}}" type="text" name="q" id="q">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex items-center justify-center pt-2.5 space-x-2">
|
||||
<span class="flex flex-col items-center justify-center">
|
||||
<label class="text-xs uppercase" for="btc">btc</label>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox"
|
||||
{{if eq "on" .Filters.Btc}}checked{{end}}
|
||||
name="btc"
|
||||
id="btc"
|
||||
>
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox" {{if eq "on" .Filters.Btc}}checked{{end}} name="btc" id="btc">
|
||||
</span>
|
||||
<span class="flex flex-col items-center justify-center">
|
||||
<label class="text-xs uppercase" for="xmr">xmr</label>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox"
|
||||
{{if eq "on" .Filters.Xmr}}checked{{end}}
|
||||
name="xmr"
|
||||
id="xmr"
|
||||
>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox" {{if eq "on" .Filters.Xmr}}checked{{end}} name="xmr" id="xmr">
|
||||
</span>
|
||||
<span class="flex flex-col items-center justify-center">
|
||||
<label class="text-xs uppercase" for="ln">ln</label>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox"
|
||||
{{if eq "on" .Filters.Ln}}checked{{end}}
|
||||
name="ln"
|
||||
id="ln"
|
||||
>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox" {{if eq "on" .Filters.Ln}}checked{{end}} name="ln" id="ln">
|
||||
</span>
|
||||
<span class="flex flex-col items-center justify-center">
|
||||
<label class="text-xs uppercase" for="fiat">fiat</label>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox"
|
||||
{{if eq "on" .Filters.Fiat}}checked{{end}}
|
||||
name="fiat"
|
||||
id="fiat"
|
||||
>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox" {{if eq "on" .Filters.Fiat}}checked{{end}} name="fiat" id="fiat">
|
||||
</span>
|
||||
<span class="flex flex-col items-center justify-center">
|
||||
<label class="text-xs uppercase" for="cash">cash</label>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox"
|
||||
{{if eq "on" .Filters.Cash}}checked{{end}}
|
||||
name="cash"
|
||||
id="cash"
|
||||
>
|
||||
<input
|
||||
class="bg-transparent rounded-full outline-none appearance-none focus:ring-0 border-lime-500/60 text-lime-500"
|
||||
type="checkbox" {{if eq "on" .Filters.Cash}}checked{{end}} name="cash" id="cash">
|
||||
</span>
|
||||
<button class="p-1 text-xs font-bold uppercase border rounded-lg bg-none border-lime-500/60" type="submit">filter</button>
|
||||
<button class="p-1 text-xs font-bold uppercase border rounded-lg bg-none border-lime-500/60"
|
||||
type="submit">filter</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<div class="mt-3 text-center text-gray-500">
|
||||
<a href="/">
|
||||
<span class="p-1 {{if eq "" .Filters.Type}}border-b border-lime-500/60 text-lime-500{{end}} text-xs">All</span>
|
||||
<span
|
||||
class="p-1 {{if eq "" .Filters.Type}}border-b border-lime-500/60 text-lime-500{{end}} text-xs">All</span>
|
||||
</a>
|
||||
<a href="/?t=exchange">
|
||||
<span class="p-1 {{if eq "exchange" .Filters.Type}}border-b border-lime-500/60 text-lime-500{{end}} text-xs">Exchanges</span>
|
||||
<span class="p-1 {{if eq " exchange" .Filters.Type}}border-b border-lime-500/60 text-lime-500{{end}}
|
||||
text-xs">Exchanges</span>
|
||||
</a>
|
||||
<a href="/?t=service">
|
||||
<span class="p-1 {{if eq "service" .Filters.Type}}border-b border-lime-500/60 text-lime-500{{end}} text-xs">Services</span>
|
||||
<span class="p-1 {{if eq " service" .Filters.Type}}border-b border-lime-500/60 text-lime-500{{end}}
|
||||
text-xs">Services</span>
|
||||
</a>
|
||||
</div>
|
||||
<!-- Filters -->
|
||||
@ -85,7 +87,7 @@
|
||||
<section class="flex items-center justify-center px-3 pb-12 mt-4">
|
||||
<div class="grid max-w-6xl grid-cols-1 gap-3 md:grid-cols-3 lg:grid-cols-3">
|
||||
{{range .Services}}
|
||||
{{partial "partials/service_card" .}}
|
||||
{{partial "partials/service_card" .}}
|
||||
{{end}}
|
||||
</div>
|
||||
</section>
|
@ -1,49 +0,0 @@
|
||||
{{/* service_card.html */}}
|
||||
<a href="/service/{{.Name}}" class="w-full max-w-md">
|
||||
<div class="flex flex-col justify-between p-4 transition duration-500 bg-gray-700 border border-transparent rounded-lg shadow-lg backdrop-blur-md bg-opacity-30 hover:border-lime-600/70">
|
||||
<div>
|
||||
<div class="flex items-center">
|
||||
<img src="/api/v1/picture/{{.ID}}" alt="{{.Name}} logo" class="w-12 h-12 mr-4 rounded-full bg-white/10">
|
||||
<div class="flex flex-col items-center justify-center">
|
||||
<div class="text-xl font-bold text-white">
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="flex items-center justify-center capitalize">
|
||||
{{if .Verified}}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 mr-1 text-blue-400/80 discount-check-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z" stroke-width="0" fill="currentColor"></path>
|
||||
</svg>
|
||||
{{end}}
|
||||
{{.Name}}
|
||||
</span>
|
||||
|
||||
{{if isNew .Created}}
|
||||
<span class="px-2 py-1 text-xs font-bold uppercase border rounded border-white/30 bg-white/20 text-white/70">
|
||||
✨ NEW
|
||||
</span>
|
||||
{{end}}
|
||||
<span class="px-2 py-1 text-xs font-bold uppercase border rounded bg-lime-900 border-lime-800 text-white/70">
|
||||
{{.Score}}
|
||||
</span>
|
||||
</div>
|
||||
<span class="block pr-1 mt-2 text-xs font-normal text-white/60 text-opacity-60">{{shortText .Description | safe}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<div class="flex items-center justify-center text-xs">
|
||||
{{if eq .Type "exchange"}}
|
||||
<span class="px-2 py-1 mr-1 text-xs font-bold uppercase border rounded text-white/70 bg-zinc-900 border-zinc-700">
|
||||
{{.Type}}
|
||||
</span>
|
||||
{{else}}
|
||||
<span class="px-2 py-1 mr-1 text-xs font-bold uppercase border rounded text-white/70 bg-zinc-900 border-zinc-700">
|
||||
{{.Category}}
|
||||
</span>
|
||||
{{end}}
|
||||
{{partial "partials/service_icons" .}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
71
src/frontend/templates/partials/service_card.html
Normal file
71
src/frontend/templates/partials/service_card.html
Normal file
@ -0,0 +1,71 @@
|
||||
{{/* service_card.html */}}
|
||||
<a href="/service/{{.Name}}" class="w-full max-w-md">
|
||||
<div
|
||||
class="flex flex-col justify-between p-4 transition duration-500 bg-gray-700 border border-transparent rounded-lg shadow-lg backdrop-blur-md bg-opacity-30 hover:border-lime-600/70">
|
||||
<div>
|
||||
<div class="flex items-center">
|
||||
<img src="/api/g/picture/{{.ID}}" alt="{{.Name}} logo" class="w-12 h-12 mr-4 rounded-full bg-white/10">
|
||||
<div class="flex flex-col items-center justify-center">
|
||||
<div class="text-xl font-bold text-white">
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="flex items-center justify-center capitalize">
|
||||
{{if .Verified}}
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
class="w-5 h-5 mr-1 text-blue-400/80 discount-check-filled" width="24" height="24"
|
||||
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path
|
||||
d="M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z"
|
||||
stroke-width="0" fill="currentColor"></path>
|
||||
</svg>
|
||||
{{end}}
|
||||
{{.Name}}
|
||||
</span>
|
||||
|
||||
{{if isNew .Created}}
|
||||
<span
|
||||
class="px-2 py-1 text-xs font-bold uppercase border rounded border-white/30 bg-white/20 text-white/70">
|
||||
✨ NEW
|
||||
</span>
|
||||
{{end}}
|
||||
<span class='px-2 py-1 text-xs font-bold uppercase border rounded
|
||||
{{if ge .Score 9}}
|
||||
bg-green-900 border-green-800
|
||||
{{else if gt .Score 7}}
|
||||
bg-lime-700 border-lime-600
|
||||
{{else if gt .Score 5}}
|
||||
bg-yellow-800 border-yellow-700
|
||||
{{else if eq .Score 5}}
|
||||
bg-orange-900 border-orange-800
|
||||
{{else}}
|
||||
bg-red-900 border-red-800
|
||||
{{end}}
|
||||
text-white/70'>
|
||||
{{.Score}}
|
||||
</span>
|
||||
</div>
|
||||
<span class="block pr-1 mt-2 text-xs font-normal text-white/60 text-opacity-60">{{shortText
|
||||
.Description | safe}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<div class="flex items-center justify-center text-xs">
|
||||
{{if eq .Type "exchange"}}
|
||||
<span
|
||||
class="px-2 py-1 mr-1 text-xs font-bold uppercase border rounded text-white/70 bg-zinc-900 border-zinc-700">
|
||||
{{.Type}}
|
||||
</span>
|
||||
{{else}}
|
||||
<span
|
||||
class="px-2 py-1 mr-1 text-xs font-bold uppercase border rounded text-white/70 bg-zinc-900 border-zinc-700">
|
||||
{{.Category}}
|
||||
</span>
|
||||
{{end}}
|
||||
{{partial "partials/service_icons" .}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
@ -6,9 +6,13 @@
|
||||
|
||||
<!-- Services list -->
|
||||
<section class="flex items-center justify-center p-12 px-3 pt-4 m-4">
|
||||
{{if .Services}}
|
||||
<div class="grid max-w-6xl grid-cols-1 gap-3 md:grid-cols-3 lg:grid-cols-3">
|
||||
{{range .Services}}
|
||||
{{partial "partials/service_card" .}}
|
||||
{{end}}
|
||||
</div>
|
||||
{{else}}
|
||||
<h2 class="my-8 text-xl font-bold text-center">No pending services.</h2>
|
||||
{{end}}
|
||||
</section>
|
@ -22,7 +22,7 @@
|
||||
|
||||
<!-- Service Header -->
|
||||
<div class="flex items-center justify-center space-x-4">
|
||||
<img class="rounded-full w-14 h-14 bg-white/25" src="/api/v1/picture/{{.Service.ID}}" alt="">
|
||||
<img class="rounded-full w-14 h-14 bg-white/25" src="/api/g/picture/{{.Service.ID}}" alt="">
|
||||
<span class="flex items-center justify-center capitalize">
|
||||
<span class="text-3xl font-bold">{{.Service.Name}}</span>
|
||||
{{if .Service.Verified}}
|
Loading…
Reference in New Issue
Block a user