Skip to main content

Token Standards

Urblock supports 10 token standards covering fungible tokens, NFTs, security tokens, and specialized use cases.

When to Use Which Standard

Do you need on-chain compliance (KYC/AML)?
├── Yes → ERC-3643 (T-REX)
└── No
├── Fungible token?
│ ├── Need governance voting? → ERC-20 Votes
│ ├── Need payment callbacks? → ERC-1363
│ ├── Need lowest gas costs? → ERC-20 Solady
│ └── Standard fungible → ERC-20
├── Non-fungible token?
│ ├── Must be non-transferable? → SBT
│ ├── Need lowest gas costs? → ERC-721 Solady
│ └── Standard NFT → ERC-721
└── Mixed fungible + NFT?
├── Need lowest gas costs? → ERC-1155 Solady
└── Standard multi-token → ERC-1155

Quick Reference

StandardTypeKey FeatureUse Case
ERC20FungibleStandard fungibleCurrencies, utility tokens
ERC20_VOTESFungibleVoting + delegationGovernance tokens, DAOs
ERC721NFTUnique tokensCollectibles, art, real estate
ERC1155MultiFungible + NFTGames, mixed collections
ERC3643SecurityOn-chain complianceRegulated securities, RWA
SBTNFTNon-transferableCredentials, reputation
ERC1363FungibleCallback on transferPayments, subscriptions
ERC20_SOLADYFungibleGas-optimized ~40%High-volume tokens
ERC721_SOLADYNFTGas-optimized ~45%Large NFT collections
ERC1155_SOLADYMultiGas-optimized ~50%Gaming items

Fungible Tokens

ERC-20

The standard fungible token. Features: mint, burn, pause, transfer, approve.

await urblock.tokens.create({
name: "My Token", symbol: "MTK",
standard: "ERC20",
network: "polygon_amoy",
initial_supply: "1000000000000000000000000",
features: { mintable: true, burnable: true, pausable: true },
idempotency_key: "erc20-001",
});

ERC-20 Votes

ERC-20 with vote delegation for governance. Includes EIP-2612 Permit for gasless approvals. Required for Governor-based governance.

await urblock.tokens.create({
name: "DAO Token", symbol: "DAO",
standard: "ERC20_VOTES",
network: "polygon_amoy",
initial_supply: "1000000000000000000000000",
idempotency_key: "votes-001",
});

ERC-1363

Payable token — triggers a callback on the receiver when transferred, enabling "approve and call" in a single transaction.

await urblock.tokens.create({
name: "Payable Token", symbol: "PAY",
standard: "ERC1363",
network: "polygon_amoy",
initial_supply: "1000000000000000000000000",
idempotency_key: "erc1363-001",
});

Non-Fungible Tokens

ERC-721

Standard NFT with enumeration, URI storage, royalties (ERC-2981), and access control.

await urblock.tokens.create({
name: "Art Collection", symbol: "ART",
standard: "ERC721",
network: "polygon_amoy",
features: { mintable: true, burnable: true, pausable: true, royalty: true },
default_royalty: { receiver: "0x...", fee_basis_points: 500 },
idempotency_key: "erc721-001",
});

SBT (EIP-5192)

Soulbound Token — a non-transferable NFT. locked() always returns true. Transfers are blocked at the contract level.

await urblock.tokens.create({
name: "Certificate", symbol: "CERT",
standard: "SBT",
network: "polygon_amoy",
features: { mintable: true },
idempotency_key: "sbt-001",
});

Multi-Token

ERC-1155

Multi-token standard supporting both fungible and non-fungible token types in a single contract. Native batch operations.

await urblock.tokens.create({
name: "Game Items", symbol: "ITEM",
standard: "ERC1155",
network: "polygon_amoy",
features: { mintable: true, burnable: true, pausable: true },
idempotency_key: "erc1155-001",
});

Security Tokens

ERC-3643 (T-REX)

Regulated security token with on-chain compliance enforcement. Requires identity registry, compliance modules, and trusted issuers.

await urblock.tokens.create({
name: "Security Fund", symbol: "SEC",
standard: "ERC3643",
network: "polygon_amoy",
required_claim_topics: [1, 7],
idempotency_key: "erc3643-001",
});

Gas-Optimized (Solady)

Solady variants are ABI-compatible with their standard counterparts but use assembly-optimized implementations for lower gas costs.

OriginalSoladyGas Savings
ERC20ERC20_SOLADY~40%
ERC721ERC721_SOLADY~45%
ERC1155ERC1155_SOLADY~50%
// Same API, less gas
await urblock.tokens.create({
name: "Efficient Token", symbol: "EFF",
standard: "ERC20_SOLADY",
network: "polygon_amoy",
initial_supply: "1000000000000000000000000",
idempotency_key: "solady-001",
});

Feature Flags

When deploying, you can enable/disable features (set at deploy, immutable):

FeatureDescriptionAvailable For
mintableAllow minting new tokensAll standards
burnableAllow burning tokensAll standards
pausableAllow pausing transfersAll standards
royaltyERC-2981 royaltiesERC-721, ERC-1155
features: {
mintable: true,
burnable: true,
pausable: true,
royalty: true,
}

Next Steps