Infrastructure for powerful web3 products at scale

Developers and Fortune 100 companies use Syndicate’s APIs and smart contracts to build scalable, delightful, web3 products with their existing stack faster and easier.

the Syndicate tech stack

Easy to use

APIs to build exceptional web3 experiences

Your Web3-Powered Application

Syndicate APIs + Webhooks

the Syndicate tech stack

Effortless

Advanced web3 capabilities in a few lines of code

Without Syndicate (~90 lines)
1const MINT_TXS_TO_RUN = 50
2const chain = polygonMumbai
3const privateKey = generatePrivateKey()
4const account = privateKeyToAccount(privateKey)
5
6function encrypt(text: string, key: string) {
7 const iv = crypto.randomBytes(16);
8 const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
9 let encrypted = cipher.update(text, 'utf8', 'hex');
10 encrypted += cipher.final('hex');
11 const authTag = cipher.getAuthTag().toString('hex');
12 return {
13 iv: iv.toString('hex'),
14 encryptedData: encrypted,
15 authTag: authTag,
16 };
17}
18
19function decrypt(encryptedObj, key) {
20 const decipher = crypto.createDecipheriv(
21 'aes-256-gcm',
22 key,
23 Buffer.from(encryptedObj.iv, 'hex')
24 );
25 decipher.setAuthTag(Buffer.from(encryptedObj.authTag, 'hex'));
26 let decrypted = decipher.update(
27 encryptedObj.encryptedData,
28 'hex',
29 'utf8'
30 );
31 decrypted += decipher.final('utf8');
32 return decrypted;
33}
34
35await db.create({
36 address: account.address,
37 privateKey: encrypt(privateKey, "SECRET"),
38 nonce: 0
39})
40
41const { privateKey: walletPrivateKey, nonce } = await db.find({
42 where: { address: '0x2Fc617E933a52713247CE25730f6695920B3befe' }
43})
44const walletAccount = privateKeyToAccount(decrypt(walletPrivateKey, "SECRET"))
45const client = createPublicClient({
46 chain,
47 transport: http("https://rpc.alchemy.com")
48})
49const wallet = createWalletClient({
50 chain,
51 transport: http("https://rpc.alchemy.com")
52})
53
54let nextNonce = nonce
55for (let i = 0; i < MINT_TXS_TO_RUN; i++) {
56 const { request } = await client.simulateContract({
57 abi,
58 account: walletAccount,
59 address: "0xB4e8589B747410858E227E68503E0142Ded1Aa3F",
60 functionName: 'mintTo',
61 args: ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"]
62 })
63 const hash = await wallet.writeContract(request)
64 const transaction = await client.getTransactionReceipt({
65 hash
66 })
67 if (transaction.status === 'success') {
68 await db.update({
69 where: { address: walletAccount.address },
70 data: {
71 nonce: nextNonce
72 }
73 })
74 nextNonce++
75 } else if (transaction.status === 'reverted') {
76 const { request: retryRequest } = await client.simulateContract({
77 abi,
78 account: walletAccount,
79 address: "0xB4e8589B747410858E227E68503E0142Ded1Aa3F",
80 functionName: 'mintTo',
81 args: ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"]
82 })
83 const retryHash = await wallet.writeContract(retryRequest)
84 const retryTx = await client.getTransactionReceipt({
85 hash: retryHash
86 })
87 if (retryTx.status === 'success') {
88 await db.update({
89 where: { address: walletAccount.address },
90 data: {
91 nonce: nextNonce
92 }
93 })
94 nextNonce++
95 }
96 }
97}
With Syndicate
1import { SyndicateClient } from "@syndicateio/syndicate-node";
2
3const syndicate = new SyndicateClient({ token })
4
5const tx = await syndicate.transact.sendTransaction({
6 projectId,
7 contractAddress,
8 chainId,
9 functionSignature,
10 args: {
11 ...
12 },
13})

powerful

Infrastructure built for all developers

Cloud managed wallets, gas & transactions for developers
Free yourself from the stress of managing keys, gas, wallets, and transactions with simple REST APIs—so you can focus on building the best product.
Secure Transaction Wallets API
the Syndicate tech stack
Fire-and-forget transactions at 100x scale
Get data on any EVM chain quickly, idempotently, and consistently—while handling nonce conflicts, gas spikes, reorgs, dropped transactions, and more.
Transaction Cloud API
the Syndicate tech stack
Fully programmable smart contract wallets for users
Enable programmable smart contract wallets and transactions for your users—without them needing to manage keys, sign transactions, or pay for gas.
Programmable User Wallets API
the Syndicate tech stack
Smart contracts that evolve & grow with products
Use our battle-tested smart contract architecture that can grow with your product—eliminating the need for costly migrations in the future.
ERC-721M/20M Docs
the Syndicate tech stack
And much more
Access our latest tools for metadata, attestations, security, real-time notifications, multi-chain NFTs, cross-chain deployments, and more.
Get started for free in 5 min
the Syndicate tech stack

Syndicate

Transaction Cloud

A screen of transactions using Syndicate's TCP API

Simple REST APIs for transactions at 100x scale

Send 5K+ transactions per second that will always get on-chain — while handling nonce conflict, gas spikes, re-orgs, dropped transactions, and more.

Transaction Broadcasting Cloud

Send unlimited transactions to any EVM chain—Syndicate handles all of the complexity

Scalable Wallets & Managed Gas

Wallets that adapt to traffic volume—increasing throughput and reducing gas costs

Real-Time Transaction Alerts

Build highly responsive apps that instantly react to chain state—eliminating indexer delays

Cryptographic Signing & Attestations

Break into the multi-chain world using Syndicate signatures that validate state across EVMs

On-Chain Metadata Service

Tokens on mainnet, and NFT metadata on L2s—achieve scale without sacrificing composability

Send a transaction in 5 mins

Syndicate

Dynamic, Modular Smart Contracts

Smart contracts that can evolve & grow with products

Use Syndicate’s battle-tested smart contract architecture that can grow with your product—eliminating costly migrations.

Modular Architecture

Leverage Syndicate’s battle-tested architecture to upgrade any element of your token's logic

Infinite Customizations

Use one of Syndicate’s 25+ formally verified smart contract modules—or write your own

Dynamic Modifications

Upgrade your contract as your product grows—avoid lock-ins and costly migrations

Advanced Permissions

Specify fine-grained permissions to protect your smart contract, product, and users

Designed for Scale

Optimize throughput and data consistency by integrating your contract with Syndicate’s APIs

ERC-721M/20M Docs

Backed by

Top investors & companies

a16z logoIdeo logoElectric Capital logoTable Management logoCoinbase logoKleiner Perkins logoSouth Park Commons logoVariant logoCoinFund logoSound logoCircle logoLedger logo

And founders & operators at

Google logoSquare logoVisa logoTwitter logoStripe logoFacebook logoInstacart logoInstagram logoAdobe logoOpendoor logoDoordash logoZoom logo

And 200+ more

Get all of the latest Syndicate news & updates

Sign up for our newsletter to stay updated on the latest developments, releases, and more

The next wave of web3

Build for the next wave of web3 with Syndicate

Integrate Syndicate and send your first on-chain transaction in under 5 minutes.

Get started for free
© Syndicate 2023