Skip to content
TAL3NT

TAL3NT

The Web3 Freelance Platorm

Created on 1st August 2025

TAL3NT

TAL3NT

The Web3 Freelance Platorm

The problem TAL3NT solves

Innovation in Traditional Markets:
I built TAL3NT to tackle the biggest problems I've seen in freelancing - trust and payment security. While platforms like Upwork rely on slow, expensive dispute processes, my escrow system uses smart contracts to automatically protect both clients and freelancers. No more waiting weeks for payments or dealing with unreliable clients.
Key Technical Achievements:

Smart Contract Escrow: I implemented automated fund management that eliminates payment disputes and cuts out unnecessary middleman fees through blockchain technology
NFT Credential System: Every completed job mints an NFT that becomes permanent proof of work. Freelancers finally own their portfolio and can carry their reputation anywhere
Mini App Architecture: I designed a lightweight interface that makes Web3 feel as easy as any regular app - no crypto expertise required

What Makes It "Top New":

Solving Real Problems: I'm addressing genuine pain points in the $400B+ freelance economy - late payments, fake portfolios, and trust issues that hurt real people's livelihoods
Web3 Native Benefits: Unlike traditional platforms where your profile disappears if you leave, freelancers truly own their work history through NFTs that live on the blockchain
Accessible Innovation: I've made complex Web3 concepts simple enough for any freelancer or business owner to use

Market Impact Potential:

My platform only charges 5% transaction fees compared to traditional platforms that take 20%+
I'm creating new economic possibilities where freelancers can showcase, trade, or leverage their work NFTs
This is just the beginning of building a truly decentralized freelance ecosystem where creators have real ownership

Challenges I ran into

Because this project is built for everyone and I know base is for everyone I tried to make it a multichain system so that builders on other ecosystem can easily come on board and still make good use of this. Implementing that gave me an issue but with the good documentation on the base docs helped a lot

Smart Contract Address(es)

// SPDX-License-Identifier: MIT
import "@openzeppelin/contracts/utils/Strings.sol";

pragma solidity ^0.8.28;
/// @title ERC-721 Metadata Update Extension
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
*

interfaceId

. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
interface IERC721 is IERC165 {
/
*
* @dev Emitted when

tokenId

token is transferred from

from

to

to

.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

/** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon * a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC-721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or * {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon * a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 tokenId) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the address zero. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view re

Other Onchain Proof

https://basescan.org/tx/0xf84d4ef468823a158bf8d173eacbe170b3ff8397ccfd4ccd589e6779781a308a

Tracks Applied (1)

Top 5 New Mini Apps

Mini App Architecture: I designed a lightweight interface that makes Web3 feel as easy as any regular app - no crypto ex...Read More

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio