Skip to main content

Base Ecosystem Integration

Horizon Protocol is built natively on Base L2 with deep integrations across the Coinbase/Base ecosystem.

Why Base?

We chose Base as our primary chain for:

  • Low transaction costs - Affordable mission escrow operations
  • Fast finality - Quick settlement for real-world coordination
  • Coinbase ecosystem - Access to CDP, Paymaster, OnchainKit
  • Growing user base - Established L2 with strong adoption
  • EVM compatibility - Standard Solidity tooling

Coinbase Developer Platform (CDP)

Embedded Wallets

Users can create wallets via:

  • Email signup - No seed phrase required
  • Social login - Google, Apple, etc.
  • Phone verification - SMS-based recovery
// CDP-powered wallet creation
const wallet = await cdpClient.evm.createAccount({
name: `horizon-${userId}`,
});

Transaction Sponsorship (Paymaster)

Gas fees are sponsored for key operations:

OperationSponsoredUser Pays
Rating attestations (EAS)✅ Yes$0
Achievement NFT minting✅ Yes$0
Mission creation❌ NoGas fee
Mission acceptance❌ NoGas fee

This enables seamless UX where users can rate and earn achievements without holding ETH.

Webhooks

Real-time event streaming from CDP:

  • erc20_transfer - USDC payments
  • transaction - Mission state changes
  • wallet_activity - User wallet events
  • onramp_transaction_completed - Fiat onboarding
  • offramp_transaction_completed - Fiat offramp
// CDP webhook handler
async processEvent(event: CdpWebhookEvent) {
switch (event.type) {
case 'erc20_transfer':
await this.handleErc20Transfer(event);
break;
case 'onramp_transaction_completed':
// User successfully bought crypto
break;
}
}

Basenames Integration

Native support for .base.eth names:

Reverse Resolution

// Resolve address to Basename
const result = await basenameService.resolveAddress('0x...');
// Returns: { name: 'alice.base.eth', avatar: '...' }

Forward Resolution

// Resolve Basename to address
const address = await basenameService.resolveName('alice.base.eth');
// Returns: '0x...'

Identity Display

Users with Basenames get:

  • Name displayed instead of 0x address
  • Avatar from Basename profile
  • ENS fallback if no Basename

EAS (Ethereum Attestation Service)

On-chain attestations on Base for:

Reputation Ratings

Every rating creates an immutable EAS attestation:

// Rating schema
bytes32 missionId,
address rater,
address ratee,
uint8 score, // 1-5
string comment,
uint256 timestamp

Explorer: EAS Scan Base

Benefits

  • Portable reputation - Works across any dApp reading EAS
  • Verifiable - Anyone can check attestation validity
  • Permanent - Cannot be deleted or modified
  • Gasless - Sponsored via CDP Paymaster

USDC Payments

All mission escrow uses native USDC on Base:

NetworkUSDC Address
Base Mainnet0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Base Sepolia0x036CbD53842c5426634e7929541eC2318f3dCF7e

Why USDC?

  • Stable value - No volatility during mission execution
  • Familiar - Users understand dollar amounts
  • Liquid - Easy onramp/offramp via Coinbase
  • Trustworthy - Circle-issued, regulated

Talent Protocol Integration

Builder reputation via Talent Protocol:

Builder Score

Users with Talent profiles get:

LevelScore RangeXP Multiplier
Novice0-241.0x (no bonus)
Apprentice25-491.05x (+5%)
Practitioner50-741.10x (+10%)
Advanced75-891.20x (+20%)
Expert90-991.35x (+35%)
Master1001.50x (+50%)

Developer Leaderboard

Separate leaderboard for builders ranked by:

  • Builder Score
  • Completed missions
  • Earned achievements
  • Guild contributions

Mission Eligibility

Posters can require minimum Builder Score:

{
"requirements": {
"minBuilderScore": 50,
"minBuilderLevel": "practitioner"
}
}

Contract Deployments

Base Sepolia (Testnet)

ContractAddress
MissionFactory0xee9234954b134c39c17a75482da78e46b16f466c
PaymentRouter0x94fb7908257ec36f701d2605b51eefed4326ddf5
GuildFactory0xfeae3538a4a1801e47b6d16104aa8586edb55f00
ReputationAttestations0xedae9682a0fb6fb3c18d6865461f67db7d748002
DisputeResolver0xb00ac4278129928aecc72541b0bcd69d94c1691e
HorizonAchievements0x568e0e3102bfa1f4045d3f62559c0f9823b469bc

Base Mainnet

Mainnet deployment in progress. See Protocol Overview for updates.


OnchainKit Integration

The Horizon Mini App uses @coinbase/onchainkit for Base-native features:

import { OnchainKitProvider } from '@coinbase/onchainkit';
import {
ConnectWallet,
Wallet,
WalletDropdown,
} from '@coinbase/onchainkit/wallet';
import {
Transaction,
TransactionButton,
} from '@coinbase/onchainkit/transaction';

Components Used

ComponentPurpose
ConnectWalletWallet connection UI
WalletDropdownAccount management
TransactionOne-click transactions
TransactionButtonGasless claim buttons
IdentityENS/Basename display
AvatarProfile pictures

Smart Wallet Support

Full support for Coinbase Smart Wallet (ERC-4337):

  • Passkey authentication - Biometric login without seed phrases
  • Account abstraction - Users don't need to manage gas
  • Session keys - Smooth multi-transaction UX
  • Recovery options - Social recovery built-in
// Mobile app configured for Smart Wallet
const walletConfig = {
options: 'smartWalletOnly',
// Paymaster for sponsored transactions
paymasterUrl: process.env.CDP_PAYMASTER_URL,
};

Farcaster Integration

Social features powered by Farcaster:

Frame Support

The Mini App renders as a Farcaster Frame:

// layout.tsx meta tags
'fc:frame': 'vNext',
'fc:frame:image': '/og-image.png',
'fc:frame:button:1': 'Open Horizon',
'fc:frame:button:1:action': 'link',

Share to Warpcast

One-tap sharing of missions to Farcaster:

const farcasterUrl = `https://warpcast.com/~/compose?text=${shareText}&embeds[]=${shareUrl}`;

Social Graph

Friend activity feed based on Farcaster connections (in progress).


Future Integrations

Planned additions:

  • Base Bridge - Cross-chain asset support for multi-chain missions