Inspiration
Wireguard VPN and NEAR Protocol use the same cryptographic curve, making them a natural fit to demonstrate how to apply blockchain based authentication to real world applications.
What it does
The project creates an NFTc (NFT Configuration) minter where VPN providers can mint sets of signed NFTc that provide a self contained VPN configuration and subscription. Upon receiving the NFTc, a NEAR-compatible VPN client reads the configuration data from the NFTc and configures the connection automatically. VPN Servers can verify the user subscription in a RESTful manner upon connection, without having to keep a client database. The cryptographic keys can later be changed on both ends as often as necessary seamlessly and without any configuration, just sending the NFTc to new blockchain addresses.
How we built it
We used NEAR-API-JS and some tutorial code for the NFTc minter. Next we will work on the VPN client, that will be a modified version of Boringtun (a userland fork of Wireguard written in Rust) connecting via NEAR RPC .
Challenges we ran into
Finding a suitable environment for this idea, until we found NEAR. The design of how the NFTc are signed with the server private key was particularly challenging as we could not find a completely satisfactory way for the OS native VPN client to interface with the wallet.
Accomplishments that we're proud of
Using NFT for real world purposes. Minting the first NFTc set with a full custom VPN configuration.
What we learned
To make a NFT first you need to make a NFT making machine! :)
What's next for Cableguard VPN Authentication based non Non-Fungible Tokens
- Update the login method to FullAccess
- Complete the modification of the VPN client.
- Create a Point of Sale so VPN providers can sell their VPN subscriptions.
- Create Verification nodes so VPN providers can verify third party NFTc and provide cross-services.
- Create a VPN provider finder so users can quickly and easily find a suitable VPN server.
Built With
- javascript
- near-api-js
- node.js
- rust

Log in or sign up for Devpost to join the conversation.