- 토큰 전송: Base와 Solana 간 토큰 이동
- 임의의 크로스체인 메시지 전송
- 두 흐름 결합 (임의 호출과 함께 전송)
- 랩핑된 토큰 배포: 어느 체인에서든 가능
작동 방식
Base에서
Base 브릿지 컨트랙트는 Solana로 토큰을 전송할 때 토큰을 잠그거나 소각하고, Solana에서 토큰을 수신할 때 토큰을 민팅하거나 잠금 해제합니다. Bridge 컨트랙트 자체는 나가는 메시지로부터 머클 트리를 구성합니다. 검증자는 약 ~300개의 최종 확정된 블록마다 머클 루트를 확인하고 Solana로 전달합니다. 그런 다음 메시지가 트리에 존재함을 증명하여 Solana에서 전송을 완료합니다.Base 네이티브 토큰은 Solana로 브릿징할 때 잠기고, Solana 네이티브 토큰은 소각됩니다.
Solana 네이티브 토큰은 Base로 브릿징할 때 민팅되고, Base 네이티브 토큰은 잠금 해제됩니다.
- Bridge Contract: 나가는 전송 처리
- CrossChainERC20: 크로스체인 전송을 위한 민팅/소각 가능 토큰
- BridgeValidator: 오라클 서명으로 메시지 검증
- Twin Contract: Solana에서 오는 호출을 실행하기 위한 Base 위의 개인 스마트 컨트랙트
Solana에서
Solana 브릿지 프로그램은 토큰을 잠그거나 소각하고 이벤트를 발생시켜 토큰 전송을 처리합니다. 메시징의 경우, 검증자가 이 이벤트를 Base로 전달하여 Twin 컨트랙트를 통해 실행됩니다. 핵심 프로그램 (Solana Mainnet-Beta):- Bridge Program: 나가는 전송 및 메시지 커밋 처리.
- Base Relayer Program: Base에서 가스를 선불로 지불할 수 있는 선택적 릴레이어.
릴레이어 프로그램은 핵심 브릿지의 일부가 아닙니다. Solana → Base 방향에서 Solana 사용자를 대신하여 Base 가스 수수료를 지불할 수 있는 선택적 편의 레이어입니다.사용자는 여전히 Solana 트랜잭션에
PayForRelay를 추가하여 가스 수수료를 지불해야 합니다.
사용자가 PayForRelay를 추가하지 않으면 릴레이어 프로그램이 가스 수수료를 지불하지 않습니다.브릿징 흐름
Solana → Base
Base에서 즉시 실행을 위한 선택적 릴레이어가 있는 푸시 기반
Base → Solana
완전한 커스터디와 함께 증명 기반 소각 및 잠금 해제
Terminally Onchain
브릿징 + 컨트랙트 호출을 위한 프로덕션 터미널 UI
Solana에서 Base로
흐름: SOL/SPL 잠금 → (선택 사항) 릴레이 비용 지불 → 검증자 승인 → Base에서 민팅 + 실행 Solana에서 Base 브릿지는 3단계가 필요한 풀 기반 모델을 사용합니다:- Solana에서 브릿지 시작 - Solana 볼트에 SOL 또는 네이티브 SPL 토큰 잠금
- 검증자가 메시지를 사전 승인할 때까지 대기 - 검증자가 브릿지 메시지를 확인하고 승인
- Base에서 메시지 실행 - 승인된 메시지가 Base에서 실행되어 SOL을 민팅하고 추가적인 임의 호출 실행
Solana에서 Base로 브릿징할 때, 네이티브 SOL/SPL이 잠기고 Base에서 ERC20 SOL이 민팅됩니다.
scripts/ 디렉토리에 있습니다:
자동 릴레이 예시
자동 릴레이로 SOL을 브릿징하는 방법을 보여주는 샘플 스크립트입니다solToBaseWithAutoRelay/index.ts
커스텀 SPL 토큰 랩핑
위 예시는 네이티브 SOL을 Base로 브릿징하는 방법을 보여줍니다. 커스텀 SPL 토큰을 브릿징하려면 CrossChainERC20Factory를 사용하여 Base에서 랩핑된 ERC20 표현을 만들어야 합니다.wrapSolTokenOnBase/index.ts
Base에서 Solana로
흐름: Base에서 ERC20 SOL 소각 → 최종성 대기 → 머클 증명 생성 → Solana에서 실행 Base에서 랩핑된 토큰을 소각하고, 메시지가 증명 가능해질 때까지 기다린 다음, Solana에서 증명을 실행하여 네이티브 자산을 잠금 해제합니다. 이 경로는 완전한 커스터디를 제공하며 증명자가 필요합니다.bridgeSolFromBaseToSolana/index.ts
유틸리티
저장소에는 Solana와 Base 주소 형식 간 변환, 트랜잭션 서명을 위한 Solana CLI 키페어 가져오기, Solana 트랜잭션 빌드 및 전송을 위한 유틸리티가 포함되어 있습니다.주소 변환
Base 컨트랙트용으로 Solana pubkey를 bytes32로 변환:example.ts
키페어 관리
트랜잭션 서명을 위한 Solana CLI 키페어 가져오기:example.ts
트랜잭션 빌딩
Solana 트랜잭션 빌드 및 전송:example.ts
Terminally Onchain 예시
Terminally Onchain은 커맨드 터미널 UI를 통해 브릿지를 노출하는 프로덕션 Next.js 앱입니다. 사용자는 Solana 지갑을 연결하고 Base에서 브릿지 및 컨트랙트 호출과 같은 명령을 입력합니다:- 명령 파싱: 터미널 파서가 자산, 목적지, 선택적 Base 호출(셀렉터 + 인수 + 값)을 분석합니다.
- 브릿지 스테이징:
queueBridge가 SPL 오버라이드를 검증하고,encodeFunctionData를 통해 Base 호출을 ABI 인코딩하며, 릴레이 오버라이드를 스테이징합니다. - 실행:
solanaBridge.bridge()가 목적지(ENS/Basename)를 분석하고, 잔액을 확인하며,realBridgeImplementation을 호출하여 Solana 트랜잭션에 서명하고 전송합니다. - 릴레이 + 호출: 릴레이 가스가 선불로 지불된 경우, Base 릴레이어는 ERC20 SOL이 민팅된 직후 사용자의 Twin 컨트랙트에서 첨부된 호출을 실행합니다.
src/lib/bridge.ts: 자산 분석(민트 주소 지원), 환경 인식 RPC 연결, 호출 첨부 지원.src/lib/realBridgeImplementation.ts: 환경별 PDA 및 가스 수신자를 사용하여PayForRelay+bridge_sol/bridge_spl명령으로 Solana 트랜잭션을 빌드합니다.src/components/MainContent.tsx: 명령 스테이징, 로그 뷰어, 임의 Base 호출을 위한 ABI 인코딩이 포함된 터미널 UI.src/components/WalletConnection.tsx: 연결된 Solana 지갑을 위해 Base Mainnet/Sepolia에서 결정론적 Twin 주소를 가져옵니다.
터미널 실행
Terminal
컨트랙트 주소
Base 메인넷
Solana 메인넷
Base Sepolia
Solana Devnet
리소스
Base Bridge 저장소
소스 코드, 컨트랙트, 프로그램, 스크립트
Solana 탐색기
Solana mainnet-beta 트랜잭션 모니터링
Base 탐색기
Base 메인넷 트랜잭션 모니터링
Discord 지원
Base 커뮤니티에서 도움 받기